From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 7/9] drm/i915/cnl: Add HPD support for Port F. Date: Tue, 17 Oct 2017 15:28:53 +0300 Message-ID: <20171017122853.GS10981@intel.com> References: <20171016212939.29590-1-rodrigo.vivi@intel.com> <20171016212939.29590-7-rodrigo.vivi@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 237116E661 for ; Tue, 17 Oct 2017 12:28:57 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171016212939.29590-7-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org, Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBPY3QgMTYsIDIwMTcgYXQgMDI6Mjk6MzdQTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIENOUCBib2FyZHMgdGhhdCBhcmUgdXNpbmcgRERJIEYsCj4gYml0IDI1IChTREVf UE9SVEVfSE9UUExVR19TUFQpIGlzIHJlcHJlc2VudGluZwo+IHRoZSBEaWdpdGFsIFBvcnQgRiBo b3RwbHVnIGxpbmUgd2hlbiB0aGUgRGlnaXRhbAo+IFBvcnQgRiBob3RwbHVnIGRldGVjdCBpbnB1 dCBpcyBlbmFibGVkLgo+IAo+IHYyOiBSZXVzZSBhbGwgZXhpc3RlbnQgc3RydWN0dXJlIGluc3Rl YWQgb2YgYWRkaW5nIGEKPiBuZXcgSFBEX1BPUlRfRiBwb2ludGluZyB0byBwaW4gb2YgcG9ydCBF Lgo+IHYzOiBVc2UgSVNfQ05MX1dJVEhfUE9SVF9GIHNvIHdlIGNhbiBzdGFydCB1cHN0cmVhbWlu Zwo+ICAgICB0aGlzIHJpZ2h0IG5vdy4gSWYgdGhhdCBTS1UgZXZlciBnZXQgYSBwcm9wZXIgbmFt ZQo+ICAgICB3ZSBjb21lIGJhY2sgYW5kIHVwZGF0ZSBpdC4KPiAKPiBDYzogTWFuYXNpIE5hdmFy ZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiBDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8 ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZp IDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICAgICAgfCAgNyArKysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMgICAgICB8IDM1ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8ICA3ICsrKysrLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaG90cGx1Zy5jIHwgMTQgKysrKysrKysrKystLS0KPiAgNSBmaWxlcyBjaGFu Z2VkLCA0MSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiBpbmRleCA3NDczMmFmNWFmM2MuLjRlMWNlNzk1ZGQyYiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0zMDA3LDYgKzMwMDcsOCBAQCBpbnRlbF9pbmZvKGNvbnN0 IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQkJCSAoSU5URUxfREVWSUQo ZGV2X3ByaXYpICYgMHgwMEYwKSA9PSAweDAwQTApCj4gICNkZWZpbmUgSVNfQ0ZMX0dUMihkZXZf cHJpdikJKElTX0NPRkZFRUxBS0UoZGV2X3ByaXYpICYmIFwKPiAgCQkJCSAoZGV2X3ByaXYpLT5p bmZvLmd0ID09IDIpCj4gKyNkZWZpbmUgSVNfQ05MX1dJVEhfUE9SVF9GKGRldl9wcml2KQkoSVNf Q0FOTk9OTEFLRShkZXZfcHJpdikgJiYgXAo+ICsJCQkJIChJTlRFTF9ERVZJRChkZXZfcHJpdikg JiAweDAwMDQpID09IDB4MDAwNCkKPiAgCj4gICNkZWZpbmUgSVNfQUxQSEFfU1VQUE9SVChpbnRl bF9pbmZvKSAoKGludGVsX2luZm8pLT5pc19hbHBoYV9zdXBwb3J0KQo+ICAKPiBAQCAtMzI5MCw4 ICszMjkyLDkgQEAgdm9pZCBpbnRlbF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ICB2b2lkIGludGVsX2hwZF9pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgaW50ZWxfaHBkX2luaXRfd29yayhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGludGVsX2hwZF9jYW5jZWxfd29yayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IC1lbnVtIHBvcnQgaW50ZWxfaHBk X3Bpbl90b19wb3J0KGVudW0gaHBkX3BpbiBwaW4pOwo+IC1lbnVtIGhwZF9waW4gaW50ZWxfaHBk X3BpbihlbnVtIHBvcnQgcG9ydCk7Cj4gK2VudW0gcG9ydCBpbnRlbF9ocGRfcGluX3RvX3BvcnQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkJZW51bSBocGRfcGluIHBp bik7Cj4gK2VudW0gaHBkX3BpbiBpbnRlbF9ocGRfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpOwo+ICBib29sIGludGVsX2hwZF9kaXNhYmxlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBocGRfcGluIHBpbik7Cj4gIHZv aWQgaW50ZWxfaHBkX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVu dW0gaHBkX3BpbiBwaW4pOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBpbmRleCAyOWFk NjY0OWFjODcuLjZjOTBjM2ZmZTMwYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBA IC0xNTU2LDEwICsxNTU2LDExIEBAIHN0YXRpYyBib29sIGk5eHhfcG9ydF9ob3RwbHVnX2xvbmdf ZGV0ZWN0KGVudW0gcG9ydCBwb3J0LCB1MzIgdmFsKQo+ICAgKgo+ICAgKiBOb3RlIHRoYXQgdGhl IGNhbGxlciBpcyBleHBlY3RlZCB0byB6ZXJvIG91dCB0aGUgbWFza3MgaW5pdGlhbGx5Lgo+ICAg Ki8KPiAtc3RhdGljIHZvaWQgaW50ZWxfZ2V0X2hwZF9waW5zKHUzMiAqcGluX21hc2ssIHUzMiAq bG9uZ19tYXNrLAo+IC0JCQkgICAgIHUzMiBob3RwbHVnX3RyaWdnZXIsIHUzMiBkaWdfaG90cGx1 Z19yZWcsCj4gLQkJCSAgICAgY29uc3QgdTMyIGhwZFtIUERfTlVNX1BJTlNdLAo+IC0JCQkgICAg IGJvb2wgbG9uZ19wdWxzZV9kZXRlY3QoZW51bSBwb3J0IHBvcnQsIHUzMiB2YWwpKQo+ICtzdGF0 aWMgdm9pZCBpbnRlbF9nZXRfaHBkX3BpbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICsJCQkgICAgICAgdTMyICpwaW5fbWFzaywgdTMyICpsb25nX21hc2ssCj4gKwkJCSAg ICAgICB1MzIgaG90cGx1Z190cmlnZ2VyLCB1MzIgZGlnX2hvdHBsdWdfcmVnLAo+ICsJCQkgICAg ICAgY29uc3QgdTMyIGhwZFtIUERfTlVNX1BJTlNdLAo+ICsJCQkgICAgICAgYm9vbCBsb25nX3B1 bHNlX2RldGVjdChlbnVtIHBvcnQgcG9ydCwgdTMyIHZhbCkpCj4gIHsKPiAgCWVudW0gcG9ydCBw b3J0Owo+ICAJaW50IGk7Cj4gQEAgLTE1NzAsNyArMTU3MSw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2dldF9ocGRfcGlucyh1MzIgKnBpbl9tYXNrLCB1MzIgKmxvbmdfbWFzaywKPiAgCj4gIAkJKnBp bl9tYXNrIHw9IEJJVChpKTsKPiAgCj4gLQkJcG9ydCA9IGludGVsX2hwZF9waW5fdG9fcG9ydChp KTsKPiArCQlwb3J0ID0gaW50ZWxfaHBkX3Bpbl90b19wb3J0KGRldl9wcml2LCBpKTsKPiAgCQlp ZiAocG9ydCA9PSBQT1JUX05PTkUpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiBAQCAtMTk1Niw4ICsx OTU3LDkgQEAgc3RhdGljIHZvaWQgaTl4eF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCXUzMiBob3RwbHVnX3RyaWdnZXIgPSBob3RwbHVnX3N0 YXR1cyAmIEhPVFBMVUdfSU5UX1NUQVRVU19HNFg7Cj4gIAo+ICAJCWlmIChob3RwbHVnX3RyaWdn ZXIpIHsKPiAtCQkJaW50ZWxfZ2V0X2hwZF9waW5zKCZwaW5fbWFzaywgJmxvbmdfbWFzaywgaG90 cGx1Z190cmlnZ2VyLAo+IC0JCQkJCSAgIGhvdHBsdWdfdHJpZ2dlciwgaHBkX3N0YXR1c19nNHgs Cj4gKwkJCWludGVsX2dldF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNr LAo+ICsJCQkJCSAgIGhvdHBsdWdfdHJpZ2dlciwgaG90cGx1Z190cmlnZ2VyLAo+ICsJCQkJCSAg IGhwZF9zdGF0dXNfZzR4LAo+ICAJCQkJCSAgIGk5eHhfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0 KTsKPiAgCj4gIAkJCWludGVsX2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgcGluX21hc2ssIGxv bmdfbWFzayk7Cj4gQEAgLTE5NjksOCArMTk3MSw5IEBAIHN0YXRpYyB2b2lkIGk5eHhfaHBkX2ly cV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQl1MzIgaG90 cGx1Z190cmlnZ2VyID0gaG90cGx1Z19zdGF0dXMgJiBIT1RQTFVHX0lOVF9TVEFUVVNfSTkxNTsK PiAgCj4gIAkJaWYgKGhvdHBsdWdfdHJpZ2dlcikgewo+IC0JCQlpbnRlbF9nZXRfaHBkX3BpbnMo JnBpbl9tYXNrLCAmbG9uZ19tYXNrLCBob3RwbHVnX3RyaWdnZXIsCj4gLQkJCQkJICAgaG90cGx1 Z190cmlnZ2VyLCBocGRfc3RhdHVzX2k5MTUsCj4gKwkJCWludGVsX2dldF9ocGRfcGlucyhkZXZf cHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAo+ICsJCQkJCSAgIGhvdHBsdWdfdHJpZ2dlciwg aG90cGx1Z190cmlnZ2VyLAo+ICsJCQkJCSAgIGhwZF9zdGF0dXNfaTkxNSwKPiAgCQkJCQkgICBp OXh4X3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7Cj4gIAkJCWludGVsX2hwZF9pcnFfaGFuZGxl cihkZXZfcHJpdiwgcGluX21hc2ssIGxvbmdfbWFzayk7Cj4gIAkJfQo+IEBAIC0yMTcxLDcgKzIx NzQsNyBAQCBzdGF0aWMgdm9pZCBpYnhfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiAgCWlmICghaG90cGx1Z190cmlnZ2VyKQo+ICAJCXJldHVybjsK PiAgCj4gLQlpbnRlbF9nZXRfaHBkX3BpbnMoJnBpbl9tYXNrLCAmbG9uZ19tYXNrLCBob3RwbHVn X3RyaWdnZXIsCj4gKwlpbnRlbF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxv bmdfbWFzaywgaG90cGx1Z190cmlnZ2VyLAo+ICAJCQkgICBkaWdfaG90cGx1Z19yZWcsIGhwZCwK PiAgCQkJICAgcGNoX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7Cj4gIAo+IEBAIC0yMzE3LDgg KzIzMjAsOCBAQCBzdGF0aWMgdm9pZCBzcHRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCB1MzIgcGNoX2lpcikKPiAgCQlkaWdfaG90cGx1Z19yZWcgPSBJOTE1 X1JFQUQoUENIX1BPUlRfSE9UUExVRyk7Cj4gIAkJSTkxNV9XUklURShQQ0hfUE9SVF9IT1RQTFVH LCBkaWdfaG90cGx1Z19yZWcpOwo+ICAKPiAtCQlpbnRlbF9nZXRfaHBkX3BpbnMoJnBpbl9tYXNr LCAmbG9uZ19tYXNrLCBob3RwbHVnX3RyaWdnZXIsCj4gLQkJCQkgICBkaWdfaG90cGx1Z19yZWcs IGhwZF9zcHQsCj4gKwkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZs b25nX21hc2ssCj4gKwkJCQkgICBob3RwbHVnX3RyaWdnZXIsIGRpZ19ob3RwbHVnX3JlZywgaHBk X3NwdCwKPiAgCQkJCSAgIHNwdF9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOwo+ICAJfQo+ICAK PiBAQCAtMjMyOCw4ICsyMzMxLDggQEAgc3RhdGljIHZvaWQgc3B0X2lycV9oYW5kbGVyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpCj4gIAkJZGlnX2hvdHBs dWdfcmVnID0gSTkxNV9SRUFEKFBDSF9QT1JUX0hPVFBMVUcyKTsKPiAgCQlJOTE1X1dSSVRFKFBD SF9QT1JUX0hPVFBMVUcyLCBkaWdfaG90cGx1Z19yZWcpOwo+ICAKPiAtCQlpbnRlbF9nZXRfaHBk X3BpbnMoJnBpbl9tYXNrLCAmbG9uZ19tYXNrLCBob3RwbHVnMl90cmlnZ2VyLAo+IC0JCQkJICAg ZGlnX2hvdHBsdWdfcmVnLCBocGRfc3B0LAo+ICsJCWludGVsX2dldF9ocGRfcGlucyhkZXZfcHJp diwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAo+ICsJCQkJICAgaG90cGx1ZzJfdHJpZ2dlciwgZGln X2hvdHBsdWdfcmVnLCBocGRfc3B0LAo+ICAJCQkJICAgc3B0X3BvcnRfaG90cGx1ZzJfbG9uZ19k ZXRlY3QpOwo+ICAJfQo+ICAKPiBAQCAtMjM0OSw3ICsyMzUyLDcgQEAgc3RhdGljIHZvaWQgaWxr X2hwZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlk aWdfaG90cGx1Z19yZWcgPSBJOTE1X1JFQUQoRElHSVRBTF9QT1JUX0hPVFBMVUdfQ05UUkwpOwo+ ICAJSTkxNV9XUklURShESUdJVEFMX1BPUlRfSE9UUExVR19DTlRSTCwgZGlnX2hvdHBsdWdfcmVn KTsKPiAgCj4gLQlpbnRlbF9nZXRfaHBkX3BpbnMoJnBpbl9tYXNrLCAmbG9uZ19tYXNrLCBob3Rw bHVnX3RyaWdnZXIsCj4gKwlpbnRlbF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywg JmxvbmdfbWFzaywgaG90cGx1Z190cmlnZ2VyLAo+ICAJCQkgICBkaWdfaG90cGx1Z19yZWcsIGhw ZCwKPiAgCQkJICAgaWxrX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7Cj4gIAo+IEBAIC0yNTI2 LDcgKzI1MjksNyBAQCBzdGF0aWMgdm9pZCBieHRfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVBRChQ Q0hfUE9SVF9IT1RQTFVHKTsKPiAgCUk5MTVfV1JJVEUoUENIX1BPUlRfSE9UUExVRywgZGlnX2hv dHBsdWdfcmVnKTsKPiAgCj4gLQlpbnRlbF9nZXRfaHBkX3BpbnMoJnBpbl9tYXNrLCAmbG9uZ19t YXNrLCBob3RwbHVnX3RyaWdnZXIsCj4gKwlpbnRlbF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZw aW5fbWFzaywgJmxvbmdfbWFzaywgaG90cGx1Z190cmlnZ2VyLAo+ICAJCQkgICBkaWdfaG90cGx1 Z19yZWcsIGhwZCwKPiAgCQkJICAgYnh0X3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7Cj4gIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IGRlNmViZWFmMWMxYi4uNGQ1MjBjNmI3NjZh IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTQ1MjgsNiArNDUyOCw4IEBAIHN0 YXRpYyBib29sIHNwdF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiAgCWNhc2UgUE9SVF9BOgo+ICAJCWJpdCA9IFNERV9QT1JUQV9IT1RQ TFVHX1NQVDsKPiAgCQlicmVhazsKPiArCWNhc2UgUE9SVF9GOgo+ICsJCVdBUk5fT04oIUlTX0NO TF9XSVRIX1BPUlRfRihkZXZfcHJpdikpOwoKSSdkIGxpa2UgdG8gc2VlIHRoZXNlIGZ1bmN0aW9u cyB0byBiZSBjaGFuZ2VkIHRvIGp1c3QgbG9vayBhdAplbmNvZGVyLT5ocGRfcGluIGluc3RlYWQg b2YgLT5wb3J0LgoKQW5kIHdoaWxlIGF0IGl0IHlvdSBjb3VsZCBqdXN0IGFzIHdlbGwgY2hhbmdl IHRoZW0gdG8gdGFrZQonc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXInIGRpcmVjdGx5IGlu c3RlYWQgb2YgcGFzc2luZwppbiBkZXZfcHJpditkaWdfcG9ydC4KCj4gIAljYXNlIFBPUlRfRToK PiAgCQliaXQgPSBTREVfUE9SVEVfSE9UUExVR19TUFQ7Cj4gIAkJYnJlYWs7Cj4gQEAgLTQ2Mjcs NyArNDYyOSw3IEBAIHN0YXRpYyBib29sIGJ4dF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWVudW0gcG9ydCBwb3J0Owo+ICAJdTMy IGJpdDsKPiAgCj4gLQlwb3J0ID0gaW50ZWxfaHBkX3Bpbl90b19wb3J0KGludGVsX2VuY29kZXIt PmhwZF9waW4pOwo+ICsJcG9ydCA9IGludGVsX2hwZF9waW5fdG9fcG9ydChkZXZfcHJpdiwgaW50 ZWxfZW5jb2Rlci0+aHBkX3Bpbik7Cj4gIAlzd2l0Y2ggKHBvcnQpIHsKPiAgCWNhc2UgUE9SVF9B Ogo+ICAJCWJpdCA9IEJYVF9ERV9QT1JUX0hQX0RESUE7Cj4gQEAgLTU5NjUsOCArNTk2Nyw5IEBA IGludGVsX2RwX2luaXRfY29ubmVjdG9yX3BvcnRfaW5mbyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICppbnRlbF9kaWdfcG9ydCkKPiAgewo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw ID0gJmludGVsX2RpZ19wb3J0LT5kcDsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAKPiAtCWVuY29kZXItPmhwZF9w aW4gPSBpbnRlbF9ocGRfcGluKGludGVsX2RpZ19wb3J0LT5wb3J0KTsKPiArCWVuY29kZXItPmhw ZF9waW4gPSBpbnRlbF9ocGRfcGluKGRldl9wcml2LCBpbnRlbF9kaWdfcG9ydC0+cG9ydCk7Cj4g IAo+ICAJc3dpdGNoIChpbnRlbF9kaWdfcG9ydC0+cG9ydCkgewo+ICAJY2FzZSBQT1JUX0E6Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IGluZGV4IGU2ZjhmMzBjZTdiZC4uOWFhNjNjZmI3 ZmUwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IEBAIC0yMDIyLDcgKzIwMjIs NyBAQCB2b2lkIGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIAo+ICAJaWYgKFdBUk5fT04ocG9ydCA9PSBQT1JUX0Ep KQo+ICAJCXJldHVybjsKPiAtCWludGVsX2VuY29kZXItPmhwZF9waW4gPSBpbnRlbF9ocGRfcGlu KHBvcnQpOwo+ICsJaW50ZWxfZW5jb2Rlci0+aHBkX3BpbiA9IGludGVsX2hwZF9waW4oZGV2X3By aXYsIHBvcnQpOwo+ICAKPiAgCWlmIChIQVNfRERJKGRldl9wcml2KSkKPiAgCQlpbnRlbF9jb25u ZWN0b3ItPmdldF9od19zdGF0ZSA9IGludGVsX2RkaV9jb25uZWN0b3JfZ2V0X2h3X3N0YXRlOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMKPiBpbmRleCA4NzVkNWQyMThkNWMuLmRm YzY0ZTEzNTA2OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3Rw bHVnLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMKPiBAQCAt NzgsMTIgKzc4LDE0IEBACj4gIAo+ICAvKioKPiAgICogaW50ZWxfaHBkX3BvcnQgLSByZXR1cm4g cG9ydCBoYXJkIGFzc29jaWF0ZWQgd2l0aCBjZXJ0YWluIHBpbi4KPiArICogQGRldl9wcml2OiBw cml2YXRlIGRyaXZlciBkYXRhIHBvaW50ZXIKPiAgICogQHBpbjogdGhlIGhwZCBwaW4gdG8gZ2V0 IGFzc29jaWF0ZWQgcG9ydAo+ICAgKgo+ICAgKiBSZXR1cm4gcG9ydCB0aGF0IGlzIGFzc29jaWF0 YWRlIHdpdGggQHBpbiBhbmQgUE9SVF9OT05FIGlmIG5vIHBvcnQgaXMKPiAgICogaGFyZCBhc3Nv Y2lhdGVkIHdpdGggdGhhdCBAcGluLgo+ICAgKi8KPiAtZW51bSBwb3J0IGludGVsX2hwZF9waW5f dG9fcG9ydChlbnVtIGhwZF9waW4gcGluKQo+ICtlbnVtIHBvcnQgaW50ZWxfaHBkX3Bpbl90b19w b3J0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCWVudW0gaHBkX3Bp biBwaW4pCj4gIHsKPiAgCXN3aXRjaCAocGluKSB7Cj4gIAljYXNlIEhQRF9QT1JUX0E6Cj4gQEAg LTk1LDYgKzk3LDggQEAgZW51bSBwb3J0IGludGVsX2hwZF9waW5fdG9fcG9ydChlbnVtIGhwZF9w aW4gcGluKQo+ICAJY2FzZSBIUERfUE9SVF9EOgo+ICAJCXJldHVybiBQT1JUX0Q7Cj4gIAljYXNl IEhQRF9QT1JUX0U6Cj4gKwkJaWYgKElTX0NOTF9XSVRIX1BPUlRfRihkZXZfcHJpdikpCj4gKwkJ CXJldHVybiBQT1JUX0Y7CgpJIHRoaW5rIHdlJ2xsIGp1c3Qgd2FudCB0byByZXBsYWNlIHRoaXMg d2hvbGUgc3dpdGNoIHdpdGggc29tZXRoaW5nIGxpa2UKCmZvcl9lYWNoX2ludGVsX2VuY29kZXIo KSB7CglpZiAoZW5jb2Rlci0+aGRwX3BpbiA9PSBwaW4pCgkJcmV0dXJuIGVuY29kZXItPnBvcnQ7 Cn0KClRoYXQgd2lsbCBtYWtlIGl0IHdvcmsgd2l0aCBhbnkgcG9ydDwtPmhwZF9waW4gbWFwcGlu ZyBpbiB0aGUgZnV0dXJlLgoKCj4gIAkJcmV0dXJuIFBPUlRfRTsKPiAgCWRlZmF1bHQ6Cj4gIAkJ cmV0dXJuIFBPUlRfTk9ORTsgLyogbm8gcG9ydCBmb3IgdGhpcyBwaW4gKi8KPiBAQCAtMTAzLDEy ICsxMDcsMTMgQEAgZW51bSBwb3J0IGludGVsX2hwZF9waW5fdG9fcG9ydChlbnVtIGhwZF9waW4g cGluKQo+ICAKPiAgLyoqCj4gICAqIGludGVsX2hwZF9waW4gLSByZXR1cm4gcGluIGhhcmQgYXNz b2NpYXRlZCB3aXRoIGNlcnRhaW4gcG9ydC4KPiArICogQGRldl9wcml2OiBwcml2YXRlIGRyaXZl ciBkYXRhIHBvaW50ZXIKPiAgICogQHBvcnQ6IHRoZSBocGQgcG9ydCB0byBnZXQgYXNzb2NpYXRl ZCBwaW4KPiAgICoKPiAgICogUmV0dXJuIHBpbiB0aGF0IGlzIGFzc29jaWF0YWRlIHdpdGggQHBv cnQgYW5kIEhEUF9OT05FIGlmIG5vIHBpbiBpcwo+ICAgKiBoYXJkIGFzc29jaWF0ZWQgd2l0aCB0 aGF0IEBwb3J0Lgo+ICAgKi8KPiAtZW51bSBocGRfcGluIGludGVsX2hwZF9waW4oZW51bSBwb3J0 IHBvcnQpCj4gK2VudW0gaHBkX3BpbiBpbnRlbF9ocGRfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCgpXZSBzaG91bGQgcHJvYmFibHkgcmVuYW1l IHRoaXMgZnVuY3Rpb24gdG8gYmUgc29tZXRoaW5nCmludGVsX2RlZmF1bHRfaHBkX3BpbigpIHRv IHJlZmxlY3QgdGhlIGZhY3QgdGhpcyBpcyBqdXN0Cm91ciBkZWZhdWx0IHBvcnQtPmhwZF9waW4g bWFwcGluZy4gTWF5YmUgd2Ugc2hvdWxkIGFsc28gcHV0CmRpZ19wb3J0IG9yIHNvbWV0aGluZyB0 byB0aGUgbmFtZSBzaW5jZSB0aGlzIGRvZXNuJ3QgYXBwbHkgdG8Kb3RoZXIgZW5jb2RlciB0eXBl cy4KCkhtbS4gSSB0aG91Z2h0IFZCVCB3b3VsZCBwcm92aWRlIHVzIHdpdGggdGhlIGhwZCBwaW4g YXMgd2VsbCwgYnV0Cm5vdyBJIGRvbid0IHNlZSBhbnl0aGluZyBsaWtlIHRoYXQuIE1heWJlIEkg d2FzIG1pc3Rha2VuPyBJIGd1ZXNzCnRoYXQgbWlnaHQgaGFwcGVuIGF0IHNvbWUgcG9pbnQgYW55 d2F5LCBzbyBJIHRoaW5rIHRoZSByZW5hbWluZwp3b3VsZCBzdGlsbCBtYWtlIHRoaW5ncyBhIGJp dCBsZXNzIGNvbmZ1c2luZy4KCj4gIHsKPiAgCXN3aXRjaCAocG9ydCkgewo+ICAJY2FzZSBQT1JU X0E6Cj4gQEAgLTEyMSw2ICsxMjYsOSBAQCBlbnVtIGhwZF9waW4gaW50ZWxfaHBkX3BpbihlbnVt IHBvcnQgcG9ydCkKPiAgCQlyZXR1cm4gSFBEX1BPUlRfRDsKPiAgCWNhc2UgUE9SVF9FOgo+ICAJ CXJldHVybiBIUERfUE9SVF9FOwo+ICsJY2FzZSBQT1JUX0Y6Cj4gKwkJaWYgKElTX0NOTF9XSVRI X1BPUlRfRihkZXZfcHJpdikpCj4gKwkJCXJldHVybiBIUERfUE9SVF9FOwo+ICAJZGVmYXVsdDoK PiAgCQlNSVNTSU5HX0NBU0UocG9ydCk7Cj4gIAkJcmV0dXJuIEhQRF9OT05FOwo+IEBAIC00MTcs NyArNDI1LDcgQEAgdm9pZCBpbnRlbF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ICAJCWlmICghKEJJVChpKSAmIHBpbl9tYXNrKSkKPiAgCQkJY29u dGludWU7Cj4gIAo+IC0JCXBvcnQgPSBpbnRlbF9ocGRfcGluX3RvX3BvcnQoaSk7Cj4gKwkJcG9y dCA9IGludGVsX2hwZF9waW5fdG9fcG9ydChkZXZfcHJpdiwgaSk7Cj4gIAkJaXNfZGlnX3BvcnQg PSBwb3J0ICE9IFBPUlRfTk9ORSAmJgo+ICAJCQlkZXZfcHJpdi0+aG90cGx1Zy5pcnFfcG9ydFtw b3J0XTsKPiAgCj4gLS0gCj4gMi4xMy41CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK