From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH v3] drm/i915/icl: implement the tc/legacy HPD {dis, }connect flows Date: Fri, 17 Aug 2018 16:27:23 -0700 Message-ID: <1534548443.3698.9.camel@intel.com> References: <20180731234504.5553-1-paulo.r.zanoni@intel.com> <20180801173441.9789-1-paulo.r.zanoni@intel.com> <83F5C7385F545743AD4FB2A62F75B07347F42203@ORSMSX108.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 02F0189A8B for ; Fri, 17 Aug 2018 23:28:13 +0000 (UTC) In-Reply-To: <83F5C7385F545743AD4FB2A62F75B07347F42203@ORSMSX108.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Srivatsa, Anusha" , "intel-gfx@lists.freedesktop.org" Cc: "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org RW0gU2V4LCAyMDE4LTA4LTE3IMOgcyAwOToyNSAtMDcwMCwgU3JpdmF0c2EsIEFudXNoYSBlc2Ny ZXZldToKPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiBGcm9tOiBJbnRlbC1nZngg W21haWx0bzppbnRlbC1nZngtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmddIE9uCj4gPiBC ZWhhbGYgT2YKPiA+IFBhdWxvIFphbm9uaQo+ID4gU2VudDogV2VkbmVzZGF5LCBBdWd1c3QgMSwg MjAxOCAxMDozNSBBTQo+ID4gVG86IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ IENjOiBaYW5vbmksIFBhdWxvIFIgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT47IFZpdmksIFJv ZHJpZ28KPiA+IDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gU3ViamVjdDogW0ludGVsLWdm eF0gW1BBVENIIHYzXSBkcm0vaTkxNS9pY2w6IGltcGxlbWVudCB0aGUKPiA+IHRjL2xlZ2FjeSBI UEQge2RpcywKPiA+IH1jb25uZWN0IGZsb3dzCj4gPiAKPiA+IFVubGlrZSB0aGUgb3RoZXIgcG9y dHMsIFRDIHBvcnRzIGFyZSBub3QgYXZhaWxhYmxlIHRvIHVzZSBhcyBzb29uCj4gPiBhcyB3ZSBn ZXQgYQo+ID4gaG90cGx1Zy4gVGhlIFRDIFBIWXMgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIG11bHRp cGxlCj4gPiBjb250cm9sbGVyczogZGlzcGxheSwgVVNCLCBldGMuIEFzIGEgcmVzdWx0LCBoYW5k c2hha2luZyB0aHJvdWdoCj4gPiBGSUEgaXMgcmVxdWlyZWQKPiA+IGFyb3VuZCBjb25uZWN0IGFu ZCBkaXNjb25uZWN0IHRvIGNsZWFubHkgdHJhbnNmZXIgb3duZXJzaGlwIHdpdGgKPiA+IHRoZSBj b250cm9sbGVyCj4gPiBhbmQgc2V0IHRoZSB0eXBlLUMgcG93ZXIgc3RhdGUuCj4gPiAKPiA+IFRo aXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgZmxvdyBzZXF1ZW5jZXMgZGVzY3JpYmVkIGJ5IG91cgo+ ID4gc3BlY2lmaWNhdGlvbi4gV2Ugb3B0Cj4gPiB0byBncmFiIG93bmVyc2hpcCBvZiB0aGUgcG9y dHMgYXMgc29vbiBhcyB3ZSBnZXQgdGhlIGhvdHBsdWdzIGluCj4gPiBvcmRlciB0byBzaW1wbGlm eQo+ID4gdGhlIGludGVyYWN0aW9ucyBhbmQgYXZvaWQgc3VycHJpc2VzIGluIHRoZSB1c2VyIHNw YWNlIHNpZGUuIFdlIG1heQo+ID4gY29uc2lkZXIKPiA+IGNoYW5naW5nIHRoaXMgaW4gdGhlIGZ1 dHVyZSwgb25jZSB3ZSBpbXByb3ZlIG91ciB0ZXN0aW5nCj4gPiBjYXBhYmlsaXRpZXMgb24gdGhp cyBhcmVhLgo+ID4gCj4gPiB2MjoKPiA+ICogVGhpcyB1bmlmaWVzIHRoZSBEUCBhbmQgSERNSSBw YXRjaGVzIHNvIHdlIGNhbiBkaXNjdXNzIGV2ZXJ5dGhpbmcKPiA+ICAgYXQgb25jZSBzbyBwZW9w bGUgbG9va2luZyBhdCByYW5kb20gc2luZ2xlIHBhdGNoZXMgY2FuIGFjdHVhbGx5Cj4gPiAgIHVu ZGVyc3RhbmQgdGhlIGRpcmVjdGlvbi4KPiA+ICogSSBmb3VuZCBvdXQgdGhlIHNwZWMgd2FzIHVw ZGF0ZWQgYSB3aGlsZSBhZ28uIFRoZXJlJ3MgYSBzbWFsbAo+ID4gICBkaWZmZXJlbmNlIGluIHRo ZSBjb25uZWN0IGZsb3cgYW5kIHRoZSBwYXRjaCB3YXMgdXBkYXRlZCBmb3IKPiA+IHRoYXQuCj4g PiAqIE91ciBzcGVjIGFsc28gbm93IGdpdmVzIGEgZ29vZCBleHBsYW5hdGlvbiBvbiB3aGF0IGlz IHJlYWxseQo+ID4gICBoYXBwZW5pbmcuIEFzIGEgcmVzdWx0LCBjb21tZW50cyB3ZXJlIGFkZGVk Lgo+ID4gKiBBZGQgc29tZSBtb3JlIGNvbW1lbnRzIGFzIHJlcXVlc3RlZCBieSBSb2RyaWdvIChS b2RyaWdvKS4KPiA+IHYzOgo+ID4gKiBEb3duZ3JhZGUgYSBEUk1fRVJST1IgdGhhdCBzaG91bGRu J3QgZXZlciBoYXBwZW4gYnV0IHdlIGNhbid0IGFjdAo+ID4gICBvbiBpbiBjYXNlIGl0IGRvZXMg KENocmlzKS4KPiA+IAo+ID4gQlNwZWM6IDIxNzUwLCA0MjUwLgo+ID4gQ2M6IEFuaW1lc2ggTWFu bmEgPGFuaW1lc2gubWFubmFAaW50ZWwuY29tPgo+ID4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmln by52aXZpQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8u ci56YW5vbmlAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oICAgfCAgIDYgKysrCj4gPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAg fCAxMTAKPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgfCAgMTEgKystLQo+ID4gMyBmaWxlcyBjaGFu Z2VkLCAxMjMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaAo+ID4gaW5kZXggMWRhMWM3NzQzNzg1Li5hNWY0ZGZlOWViZGYgMTAw NjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBAQCAtMTA3NTAsNCArMTA3NTAsMTAg QEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7Cj4gPiAjZGVmaW5lICAgRFBfTEFORV9BU1NJR05NRU5U X01BU0sodGNfcG9ydCkJKDB4ZiA8PAo+ID4gKCh0Y19wb3J0KSAqIDgpKQo+ID4gI2RlZmluZSAg IERQX0xBTkVfQVNTSUdOTUVOVCh0Y19wb3J0LCB4KQkoKHgpIDw8ICgodGNfcG9ydCkKPiA+ICog OCkpCj4gPiAKPiA+ICsjZGVmaW5lIFBPUlRfVFhfREZMRVhEUFBNUwo+ID4gCV9NTUlPKDB4MTYz ODkwKQo+ID4gKyNkZWZpbmUgICBEUF9QSFlfTU9ERV9TVEFUVVNfQ09NUExFVEVEKHRjX3BvcnQp CQkoMQo+ID4gPDwKPiA+ICh0Y19wb3J0KSkKPiA+ICsKPiA+ICsjZGVmaW5lIFBPUlRfVFhfREZM RVhEUENTU1MKPiA+IAlfTU1JTygweDE2Mzg5NCkKPiA+ICsjZGVmaW5lICAgRFBfUEhZX01PREVf U1RBVFVTX05PVF9TQUZFKHRjX3BvcnQpCQkoMQo+ID4gPDwgKHRjX3BvcnQpKQo+ID4gKwo+ID4g I2VuZGlmIC8qIF9JOTE1X1JFR19IXyAqLwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ ID4gaW5kZXggZmVjMjFhYTNkYjkzLi44NmVkZWQ2MTM0NTYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCj4gPiBAQCAtNDgxOCw2ICs0ODE4LDEwNCBAQCBzdGF0aWMgdm9pZCBpY2xf dXBkYXRlX3RjX3BvcnRfdHlwZShzdHJ1Y3QKPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gCQkJICAgICAgdHlwZV9zdHIpOwo+ID4gfQo+ID4gCj4gPiArLyoKPiA+ICsgKiBUaGlz IGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIENvbm5lY3QgRmxvdwo+ ID4gK2Rlc2NyaWJlZCBieSBvdXIKPiA+ICsgKiBzcGVjaWZpY2F0aW9uLCBHZW4xMSBUeXBlQyBQ cm9ncmFtbWluZyBjaGFwdGVyLiBUaGUgcmVzdCBvZiB0aGUKPiA+IGZsb3cKPiA+ICsocmVhZGlu Zwo+ID4gKyAqIGxhbmVzLCBFRElELCBldGMpIGlzIGRvbmUgYXMgbmVlZGVkIGluIHRoZSB0eXBp Y2FsIHBsYWNlcy4KPiA+ICsgKgo+ID4gKyAqIFVubGlrZSB0aGUgb3RoZXIgcG9ydHMsIHR5cGUt QyBwb3J0cyBhcmUgbm90IGF2YWlsYWJsZSB0byB1c2UKPiA+IGFzCj4gPiArc29vbiBhcyB3ZQo+ ID4gKyAqIGdldCBhIGhvdHBsdWcuIFRoZSB0eXBlLUMgUEhZcyBjYW4gYmUgc2hhcmVkIGJldHdl ZW4gbXVsdGlwbGUKPiA+IGNvbnRyb2xsZXJzOgo+ID4gKyAqIGRpc3BsYXksIFVTQiwgZXRjLiBB cyBhIHJlc3VsdCwgaGFuZHNoYWtpbmcgdGhyb3VnaCBGSUEgaXMKPiA+IHJlcXVpcmVkCj4gPiAr YXJvdW5kCj4gPiArICogY29ubmVjdCBhbmQgZGlzY29ubmVjdCB0byBjbGVhbmx5IHRyYW5zZmVy IG93bmVyc2hpcCB3aXRoIHRoZQo+ID4gK2NvbnRyb2xsZXIgYW5kCj4gPiArICogc2V0IHRoZSB0 eXBlLUMgcG93ZXIgc3RhdGUuCj4gPiArICoKPiA+ICsgKiBXZSBjb3VsZCBvcHQgdG8gb25seSBk byB0aGUgY29ubmVjdCBmbG93IHdoZW4gd2UgYWN0dWFsbHkgdHJ5Cj4gPiB0byB1c2UKPiA+ICt0 aGUgQVVYCj4gPiArICogY2hhbm5lbHMgb3IgZG8gYSBtb2Rlc2V0LCB0aGVuIGltbWVkaWF0ZWx5 IHJ1biB0aGUgZGlzY29ubmVjdAo+ID4gZmxvdwo+ID4gK2FmdGVyCj4gPiArICogdXNhZ2UsIGJ1 dCB0aGVyZSBhcmUgc29tZSBpbXBsaWNhdGlvbnMgb24gdGhpcyBmb3IgYSBkeW5hbWljCj4gPiBl bnZpcm9ubWVudDoKPiA+ICsgKiB0aGluZ3MgbWF5IGdvIGF3YXkgb3IgY2hhbmdlIGJlaGluZCBv dXIgYmFja3MuIFNvIGZvciBub3cgb3VyCj4gPiBkcml2ZXIKPiA+ICtpcwo+ID4gKyAqIGFsd2F5 cyB0cnlpbmcgdG8gYWNxdWlyZSBvd25lcnNoaXAgb2YgdGhlIGNvbnRyb2xsZXIgYXMgc29vbiBh cwo+ID4gaXQKPiA+ICtnZXRzIGFuCj4gPiArICogaW50ZXJydXB0IChvciBwb2xscyBzdGF0ZSBh bmQgc2VlcyBhIHBvcnQgaXMgY29ubmVjdGVkKSBhbmQKPiA+IG9ubHkKPiA+ICtnaXZlcyBpdAo+ ID4gKyAqIGJhY2sgd2hlbiBpdCBzZWVzIGEgZGlzY29ubmVjdC4gSW1wbGVtZW50YXRpb24gb2Yg YSBtb3JlCj4gPiArZmluZS1ncmFpbmVkIG1vZGVsCj4gPiArICogd2lsbCByZXF1aXJlIGEgbG90 IG9mIGNvb3JkaW5hdGlvbiB3aXRoIHVzZXIgc3BhY2UgYW5kIHRob3JvdWdoCj4gPiArdGVzdGlu ZyBmb3IKPiA+ICsgKiB0aGUgZXh0cmEgcG9zc2libGUgY2FzZXMuCj4gPiArICovCj4gPiArc3Rh dGljIGJvb2wgaWNsX3RjX3BoeV9jb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiA+ICsJCQkgICAgICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydAo+ID4gKmRpZ19w b3J0KSB7Cj4gPiArCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZf cHJpdiwKPiA+IGRpZ19wb3J0LT5iYXNlLnBvcnQpOwo+ID4gKwl1MzIgdmFsOwo+ID4gKwo+ID4g KwlpZiAoZGlnX3BvcnQtPnRjX3R5cGUgIT0gVENfUE9SVF9MRUdBQ1kgJiYKPiA+ICsJICAgIGRp Z19wb3J0LT50Y190eXBlICE9IFRDX1BPUlRfVFlQRUMpCj4gPiArCQlyZXR1cm4gdHJ1ZTsKPiA+ ICsKPiA+ICsJdmFsID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFBNUyk7Cj4gPiArCWlmICgh KHZhbCAmIERQX1BIWV9NT0RFX1NUQVRVU19DT01QTEVURUQodGNfcG9ydCkpKSB7Cj4gPiArCQlE Uk1fREVCVUdfS01TKCJEUCBQSFkgZm9yIFRDIHBvcnQgJWQgbm90IHJlYWR5XG4iLAo+ID4gdGNf cG9ydCk7Cj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCX0KPiA+ICsKPiA+ICsJLyoKPiA+ICsJ ICogVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIG1hbnkgdGltZXMgaW4gYSByb3cgd2l0aG91 dAo+ID4gYW4gSFBEIGV2ZW50Cj4gPiArCSAqIGluIGJldHdlZW4sIHNvIHRyeSB0byBhdm9pZCB0 aGUgd3JpdGUgd2hlbiB3ZSBjYW4uCj4gPiArCSAqLwo+ID4gKwl2YWwgPSBJOTE1X1JFQUQoUE9S VF9UWF9ERkxFWERQQ1NTUyk7Cj4gPiArCWlmICghKHZhbCAmIERQX1BIWV9NT0RFX1NUQVRVU19O T1RfU0FGRSh0Y19wb3J0KSkpIHsKPiA+ICsJCXZhbCB8PSBEUF9QSFlfTU9ERV9TVEFUVVNfTk9U X1NBRkUodGNfcG9ydCk7Cj4gPiArCQlJOTE1X1dSSVRFKFBPUlRfVFhfREZMRVhEUENTU1MsIHZh bCk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJLyoKPiA+ICsJICogTm93IHdlIGhhdmUgdG8gcmUtY2hl Y2sgdGhlIGxpdmUgc3RhdGUsIGluIGNhc2UgdGhlCj4gPiBwb3J0IHJlY2VudGx5Cj4gPiArCSAq IGJlY2FtZSBkaXNjb25uZWN0ZWQuIE5vdCBuZWNlc3NhcnkgZm9yIGxlZ2FjeSBtb2RlLgo+ID4g KwkgKi8KPiA+ICsJaWYgKGRpZ19wb3J0LT50Y190eXBlID09IFRDX1BPUlRfVFlQRUMgJiYKPiA+ ICsJICAgICEoSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFNQKSAmCj4gPiBUQ19MSVZFX1NUQVRF X1RDKHRjX3BvcnQpKSkgewo+ID4gKwkJRFJNX0RFQlVHX0tNUygiVEMgUEhZICVkIHN1ZGRlbiBk aXNjb25uZWN0LlxuIiwKPiA+IHRjX3BvcnQpOwo+ID4gKwkJdmFsID0gSTkxNV9SRUFEKFBPUlRf VFhfREZMRVhEUENTU1MpOwo+ID4gKwkJdmFsICY9IH5EUF9QSFlfTU9ERV9TVEFUVVNfTk9UX1NB RkUodGNfcG9ydCk7Cj4gPiArCQlJOTE1X1dSSVRFKFBPUlRfVFhfREZMRVhEUENTU1MsIHZhbCk7 Cj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCX0KPiA+ICsKPiA+ICsJcmV0dXJuIHRydWU7Cj4g PiArfQo+ID4gKwo+ID4gKy8qCj4gPiArICogU2VlIHRoZSBjb21tZW50IGF0IHRoZSBjb25uZWN0 IGZ1bmN0aW9uLiBUaGlzIGltcGxlbWVudHMgdGhlCj4gPiArRGlzY29ubmVjdAo+ID4gKyAqIEZs b3cuCj4gPiArICovCj4gPiArc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9kaXNjb25uZWN0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlCj4gPiAqZGV2X3ByaXYsCj4gPiArCQkJCSAgc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydAo+ID4gKmRpZ19wb3J0KSB7Cj4gPiArCWVudW0gdGNfcG9ydCB0Y19wb3J0 ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwKPiA+IGRpZ19wb3J0LT5iYXNlLnBvcnQpOwo+ ID4gKwl1MzIgdmFsOwo+ID4gKwo+ID4gKwlpZiAoZGlnX3BvcnQtPnRjX3R5cGUgIT0gVENfUE9S VF9MRUdBQ1kgJiYKPiA+ICsJICAgIGRpZ19wb3J0LT50Y190eXBlICE9IFRDX1BPUlRfVFlQRUMp Cj4gCj4gCURvbuKAmXQgd2UgYWxzbyBuZWVkIHRvIGNoZWNrIGZvciBkaWdfcG9ydC0+dGNfdHlw ZSAhPQo+IFRDX1BPUlRfVEJUPwoKV2UgZG9uJ3QgbmVlZCB0byBydW4gdGhlc2Ugc3RlcHMgZm9y IFRCVCwgdGhlIFRCVCBzZXF1ZW5jZSBpcyBzaW1wbGVyLgpTZWUgdGhlIHNwZWMuCgoKPiA+ICsJ CXJldHVybjsKPiA+ICsKPiA+ICsJLyoKPiA+ICsJICogVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2Fs bGVkIG1hbnkgdGltZXMgaW4gYSByb3cgd2l0aG91dAo+ID4gYW4gSFBEIGV2ZW50Cj4gPiArCSAq IGluIGJldHdlZW4sIHNvIHRyeSB0byBhdm9pZCB0aGUgd3JpdGUgd2hlbiB3ZSBjYW4uCj4gPiAr CSAqLwo+ID4gKwl2YWwgPSBJOTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQQ1NTUyk7Cj4gPiArCWlm ICh2YWwgJiBEUF9QSFlfTU9ERV9TVEFUVVNfTk9UX1NBRkUodGNfcG9ydCkpIHsKPiA+ICsJCXZh bCAmPSB+RFBfUEhZX01PREVfU1RBVFVTX05PVF9TQUZFKHRjX3BvcnQpOwo+ID4gKwkJSTkxNV9X UklURShQT1JUX1RYX0RGTEVYRFBDU1NTLCB2YWwpOwo+ID4gKwl9Cj4gPiArfQo+ID4gKwo+ID4g Ky8qCj4gPiArICogVGhlIHR5cGUtQyBwb3J0cyBhcmUgZGlmZmVyZW50IGJlY2F1c2UgZXZlbiB3 aGVuIHRoZXkgYXJlCj4gPiBjb25uZWN0ZWQsCj4gPiArdGhleSBtYXkKPiA+ICsgKiBub3QgYmUg YXZhaWxhYmxlL3VzYWJsZSBieSB0aGUgZ3JhcGhpY3MgZHJpdmVyOiBzZWUgdGhlIGNvbW1lbnQK PiA+IG9uCj4gPiArICogaWNsX3RjX3BoeV9jb25uZWN0KCkuIFNvIGluIG91ciBkcml2ZXIgaW5z dGVhZCBvZiBhZGRpbmcgdGhlCj4gPiArYWRkaXRpb25hbAo+ID4gKyAqIGNvbmNlcHQgb2YgInVz YWJsZSIgYW5kIG1ha2UgZXZlcnl0aGluZyBjaGVjayBmb3IgImNvbm5lY3RlZAo+ID4gYW5kCj4g PiArdXNhYmxlIiB3ZQo+ID4gKyAqIGRlZmluZSBhIHBvcnQgYXMgImNvbm5lY3RlZCIgd2hlbiBp dCBpcyBub3Qgb25seSBjb25uZWN0ZWQsIGJ1dAo+ID4gYWxzbwo+ID4gK3doZW4gaXQKPiA+ICsg KiBpcyB1c2FibGUgYnkgdGhlIHJlc3Qgb2YgdGhlIGRyaXZlci4gVGhhdCBtYWludGFpbnMgdGhl IG9sZAo+ID4gK2Fzc3VtcHRpb24gdGhhdAo+ID4gKyAqIGNvbm5lY3RlZCBwb3J0cyBhcmUgdXNh YmxlLCBhbmQgYXZvaWRzIGV4cG9zaW5nIHRvIHRoZSB1c2Vycwo+ID4gb2JqZWN0cwo+ID4gK3Ro ZXkKPiA+ICsgKiBjYW4ndCByZWFsbHkgdXNlLgo+ID4gKyAqLwo+ID4gc3RhdGljIGJvb2wgaWNs X3RjX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiAqZGV2X3ByaXYs Cj4gPiAJCQkJICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Cj4gPiAqaW50ZWxfZGlnX3BvcnQp ICB7IEBACj4gPiAtNDgzNiwxMiArNDkzNCwxNyBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcG9ydF9j b25uZWN0ZWQoc3RydWN0Cj4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+IAlpc190 eXBlYyA9IGRwc3AgJiBUQ19MSVZFX1NUQVRFX1RDKHRjX3BvcnQpOwo+ID4gCWlzX3RidCA9IGRw c3AgJiBUQ19MSVZFX1NUQVRFX1RCVCh0Y19wb3J0KTsKPiA+IAo+ID4gLQlpZiAoIWlzX2xlZ2Fj eSAmJiAhaXNfdHlwZWMgJiYgIWlzX3RidCkKPiA+ICsJaWYgKCFpc19sZWdhY3kgJiYgIWlzX3R5 cGVjICYmICFpc190YnQpIHsKPiAKPiBJZiBpdCBpcyBub25lIG9mIHRoZSBhYm92ZSwgdGhlbiB3 aHkgbm90IGp1c3QgcmV0dXJuIGZhbHNlPwoKQmVjYXVzZSB3ZSBuZWVkIHRvIHJ1biB0aGUgZGlz Y29ubmVjdCBzZXF1ZW5jZSBpbiBjYXNlIHRoZSBwb3J0IHdhcwpwcmV2aW91c2x5IGNvbm5lY3Rl ZCBzbyB3ZSByZWxlYXNlIG93bmVyc2hpcCBvZiB0aGUgbGFuZXMuIFRoYXQncyB0aGUKdmVyeSBn b2FsIG9mIHRoaXMgcGF0Y2guCgpUaGFua3MsClBhdWxvCgoKPiAJCj4gQW51c2hhIAo+ID4gKwkJ aWNsX3RjX3BoeV9kaXNjb25uZWN0KGRldl9wcml2LCBpbnRlbF9kaWdfcG9ydCk7Cj4gPiAJCXJl dHVybiBmYWxzZTsKPiA+ICsJfQo+ID4gCj4gPiAJaWNsX3VwZGF0ZV90Y19wb3J0X3R5cGUoZGV2 X3ByaXYsIGludGVsX2RpZ19wb3J0LCBpc19sZWdhY3ksCj4gPiBpc190eXBlYywKPiA+IAkJCQlp c190YnQpOwo+ID4gCj4gPiArCWlmICghaWNsX3RjX3BoeV9jb25uZWN0KGRldl9wcml2LCBpbnRl bF9kaWdfcG9ydCkpCj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCj4gPiAJcmV0dXJuIHRydWU7 Cj4gPiB9Cj4gPiAKPiA+IEBAIC00ODY5LDYgKzQ5NzIsMTEgQEAgc3RhdGljIGJvb2wKPiA+IGlj bF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdAo+ID4gaW50ZWxfZW5jb2RlciAqZW5jb2Rl cikKPiA+ICAqIGludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQgLSBpcyB0aGUgc3BlY2lmaWVk IHBvcnQgY29ubmVjdGVkPwo+ID4gICogQGVuY29kZXI6IGludGVsX2VuY29kZXIKPiA+ICAqCj4g PiArICogSW4gY2FzZXMgd2hlcmUgdGhlcmUncyBhIGNvbm5lY3RvciBwaHlzaWNhbGx5IGNvbm5l Y3RlZCBidXQgaXQKPiA+IGNhbid0Cj4gPiArIGJlIHVzZWQKPiA+ICsgKiBieSBvdXIgaGFyZHdh cmUgd2UgYWxzbyByZXR1cm4gZmFsc2UsIHNpbmNlIHRoZSByZXN0IG9mIHRoZQo+ID4gZHJpdmVy Cj4gPiArIHNob3VsZAo+ID4gKyAqIHByZXR0eSBtdWNoIHRyZWF0IHRoZSBwb3J0IGFzIGRpc2Nv bm5lY3RlZC4gVGhpcyBpcyByZWxldmFudAo+ID4gZm9yCj4gPiArIHR5cGUtQwo+ID4gKyAqIChz dGFydGluZyBvbiBJQ0wpIHdoZXJlIHRoZXJlJ3Mgb3duZXJzaGlwIGludm9sdmVkLgo+ID4gKyAq Cj4gPiAgKiBSZXR1cm4gJXRydWUgaWYgcG9ydCBpcyBjb25uZWN0ZWQsICVmYWxzZSBvdGhlcndp c2UuCj4gPiAgKi8KPiA+IGJvb2wgaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+IGRpZmYgLS1naXQKPiA+IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk bWkuYwo+ID4gaW5kZXggODM2M2ZiZDE4ZWU4Li41NDgxOTllNTliNmMgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gQEAgLTE5MDUsMjEgKzE5MDUsMjYgQEAgaW50ZWxf aGRtaV9zZXRfZWRpZChzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+ID4gKmNvbm5lY3RvcikgIHN0YXRp YyBlbnVtCj4gPiBkcm1fY29ubmVjdG9yX3N0YXR1cyAgaW50ZWxfaGRtaV9kZXRlY3Qoc3RydWN0 Cj4gPiBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpICB7Cj4gPiAtCWVudW0g ZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzOwo+ID4gKwllbnVtIGRybV9jb25uZWN0b3Jfc3Rh dHVzIHN0YXR1cyA9Cj4gPiBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKPiA+IAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KTsK PiA+ICsJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPQo+ID4gaW50ZWxfYXR0YWNoZWRf aGRtaShjb25uZWN0b3IpOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9Cj4g PiAmaGRtaV90b19kaWdfcG9ydChpbnRlbF9oZG1pKS0+YmFzZTsKPiA+IAo+ID4gCURSTV9ERUJV R19LTVMoIltDT05ORUNUT1I6JWQ6JXNdXG4iLAo+ID4gCQkgICAgICBjb25uZWN0b3ItPmJhc2Uu aWQsIGNvbm5lY3Rvci0+bmFtZSk7Cj4gPiAKPiA+IAlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChk ZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0dNQlVTKTsKPiA+IAo+ID4gKwlpZiAoSVNfSUNFTEFLRShk ZXZfcHJpdikgJiYKPiA+ICsJICAgICFpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGVuY29k ZXIpKQo+ID4gKwkJZ290byBvdXQ7Cj4gPiArCj4gPiAJaW50ZWxfaGRtaV91bnNldF9lZGlkKGNv bm5lY3Rvcik7Cj4gPiAKPiA+IAlpZiAoaW50ZWxfaGRtaV9zZXRfZWRpZChjb25uZWN0b3IpKQo+ ID4gCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKPiA+IC0JZWxzZQo+ID4g LQkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7Cj4gPiAKPiA+ICtvdXQ6 Cj4gPiAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9HTUJV Uyk7Cj4gPiAKPiA+IAlyZXR1cm4gc3RhdHVzOwo+ID4gLS0KPiA+IDIuMTQuNAo+ID4gCj4gPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4g aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==