From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2 2/3] drm/i915/bxt: add revision id for A1 stepping and use it Date: Wed, 21 Oct 2015 11:58:12 +0300 Message-ID: <87zizcwqcb.fsf@intel.com> References: <1445343722-3312-1-git-send-email-jani.nikula@intel.com> <1445343722-3312-2-git-send-email-jani.nikula@intel.com> <20151021064228.GD13786@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id A34E36ED71 for ; Wed, 21 Oct 2015 01:54:42 -0700 (PDT) In-Reply-To: <20151021064228.GD13786@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMSBPY3QgMjAxNSwgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90 ZToKPiBPbiBUdWUsIE9jdCAyMCwgMjAxNSBhdCAwMzoyMjowMVBNICswMzAwLCBKYW5pIE5pa3Vs YSB3cm90ZToKPj4gUHJlZmVyIGluY2x1c2l2ZSByYW5nZXMgZm9yIHJldmlzaW9uIGNoZWNrcyBy YXRoZXIgdGhhbiAiYmVsb3cgQjAiLiBQZXIKPj4gc3BlY3MgQTIgaXMgbm90IHVzZWQsIHNvIHJl dmlkIDw9IEExIG1hdGNoZXMgcmV2aWQgPCBCMC4KPj4gCj4+IEFja2VkLWJ5OiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBK YW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8IDEgKwo+PiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgMiArLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgMiArLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGRpLmMgICAgICAgICAgIHwgMiArLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYyAgICAgICAgICAgIHwgMiArLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aGRtaS5jICAgICAgICAgIHwgMiArLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMgICAgICAgICAgIHwgOCArKysrLS0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyAgICAgICAgICAgIHwgNiArKystLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYyAgICB8IDYgKysrLS0tCj4+ICA5IGZpbGVzIGNoYW5nZWQsIDE2IGluc2Vy dGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQo+PiAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ IGluZGV4IGYyMjIxMTQ5ODFjMC4uMjhlNzFjMzJjMGQ1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPj4gQEAgLTI1MDEsNiArMjUwMSw3IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFi bGUgewo+PiAgI2RlZmluZSBTS0xfUkVWSURfRjAJCTB4NQo+PiAgCj4+ICAjZGVmaW5lIEJYVF9S RVZJRF9BMAkJMHgwCj4+ICsjZGVmaW5lIEJYVF9SRVZJRF9BMQkJMHgxCj4KPiBFeGNlcHQgdGhh dCBJIGNhbid0IGNoZWNrIHRoaXMgdmFsdWUgaGVyZSBvbiB0aGUgc2VyaWVzOgo+Cj4gUmV2aWV3 ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgpQdXNoZWQgdGhl bSBhbGwuIFRoYW5rcyBmb3IgdGhlIHJldmlldyBhbmQgYWNrcy4KCkJSLApKYW5pLgoKPgo+PiAg I2RlZmluZSBCWFRfUkVWSURfQjAJCTB4Mwo+PiAgI2RlZmluZSBCWFRfUkVWSURfQzAJCTB4OQo+ PiAgCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+PiBpbmRleCBlNTcwNjFhYzAyMTkuLjQwOGVk NmY4ZTMzYyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+IEBAIC0zODI2LDcgKzM4 MjYsNyBAQCBpbnQgaTkxNV9nZW1fc2V0X2NhY2hpbmdfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKPj4gIAkJICogY2FjaGVsaW5lLCB3aGVyZWFzIG5vcm1hbGx5IHN1 Y2ggY2FjaGVsaW5lcyB3b3VsZCBnZXQKPj4gIAkJICogaW52YWxpZGF0ZWQuCj4+ICAJCSAqLwo+ PiAtCQlpZiAoSVNfQlJPWFRPTihkZXYpICYmIElOVEVMX1JFVklEKGRldikgPCBCWFRfUkVWSURf QjApCj4+ICsJCWlmIChJU19CUk9YVE9OKGRldikgJiYgSU5URUxfUkVWSUQoZGV2KSA8PSBCWFRf UkVWSURfQTEpCj4+ICAJCQlyZXR1cm4gLUVOT0RFVjsKPj4gIAo+PiAgCQlsZXZlbCA9IEk5MTVf Q0FDSEVfTExDOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNf c3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5j Cj4+IGluZGV4IDAzNmI0MmJhZTgyNy4uODYzYWE1YzgyNDY2IDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4+IEBAIC0xNjEsNyArMTYxLDcgQEAg c3RhdGljIGludCBob3N0Mmd1Y19zYW1wbGVfZm9yY2V3YWtlKHN0cnVjdCBpbnRlbF9ndWMgKmd1 YywKPj4gIAlkYXRhWzBdID0gSE9TVDJHVUNfQUNUSU9OX1NBTVBMRV9GT1JDRVdBS0U7Cj4+ICAJ LyogV2FSc0Rpc2FibGVDb2Fyc2VQb3dlckdhdGluZzpza2wsYnh0ICovCj4+ICAJaWYgKCFpbnRl bF9lbmFibGVfcmM2KGRldl9wcml2LT5kZXYpIHx8Cj4+IC0JICAgIChJU19CUk9YVE9OKGRldikg JiYgKElOVEVMX1JFVklEKGRldikgPCBCWFRfUkVWSURfQjApKSB8fAo+PiArCSAgICAoSVNfQlJP WFRPTihkZXYpICYmIChJTlRFTF9SRVZJRChkZXYpIDw9IEJYVF9SRVZJRF9BMSkpIHx8Cj4+ICAJ ICAgIChJU19TS0xfR1QzKGRldikgJiYgKElOVEVMX1JFVklEKGRldikgPD0gU0tMX1JFVklEX0Uw KSkgfHwKPj4gIAkgICAgKElTX1NLTF9HVDQoZGV2KSAmJiAoSU5URUxfUkVWSUQoZGV2KSA8PSBT S0xfUkVWSURfRTApKSkKPj4gIAkJZGF0YVsxXSA9IDA7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jCj4+IGluZGV4IGIyNWU5OWE0MzJmYi4uYjgwZTBmNWVjNWRjIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZGkuYwo+PiBAQCAtMzI0Nyw3ICszMjQ3LDcgQEAgdm9pZCBpbnRlbF9kZGlf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCkKPj4gIAkJICogT24g QlhUIEEwL0ExLCBzdyBuZWVkcyB0byBhY3RpdmF0ZSBERElBIEhQRCBsb2dpYyBhbmQKPj4gIAkJ ICogaW50ZXJydXB0cyB0byBjaGVjayB0aGUgZXh0ZXJuYWwgcGFuZWwgY29ubmVjdGlvbi4KPj4g IAkJICovCj4+IC0JCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSAmJiAoSU5URUxfUkVWSUQoZGV2 KSA8IEJYVF9SRVZJRF9CMCkKPj4gKwkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpICYmIChJTlRF TF9SRVZJRChkZXYpIDw9IEJYVF9SRVZJRF9BMSkKPj4gIAkJCQkJICYmIHBvcnQgPT0gUE9SVF9C KQo+PiAgCQkJZGV2X3ByaXYtPmhvdHBsdWcuaXJxX3BvcnRbUE9SVF9BXSA9IGludGVsX2RpZ19w b3J0Owo+PiAgCQllbHNlCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiBpbmRleCAwOWJkZDk0 Y2EzYmEuLjkyNDEzZTVkMjE1YyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+IEBA IC02MDg3LDcgKzYwODcsNyBAQCBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPj4gIAkJYnJlYWs7Cj4+ICAJY2FzZSBQT1JU X0I6Cj4+ICAJCWludGVsX2VuY29kZXItPmhwZF9waW4gPSBIUERfUE9SVF9COwo+PiAtCQlpZiAo SVNfQlJPWFRPTihkZXZfcHJpdikgJiYgKElOVEVMX1JFVklEKGRldikgPCBCWFRfUkVWSURfQjAp KQo+PiArCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikgJiYgKElOVEVMX1JFVklEKGRldikgPD0g QlhUX1JFVklEX0ExKSkKPj4gIAkJCWludGVsX2VuY29kZXItPmhwZF9waW4gPSBIUERfUE9SVF9B Owo+PiAgCQlicmVhazsKPj4gIAljYXNlIFBPUlRfQzoKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk bWkuYwo+PiBpbmRleCA5ZWFmYTE5MWNlZTIuLjM1YzZlMjExYmFmNSAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkbWkuYwo+PiBAQCAtMjAzOSw3ICsyMDM5LDcgQEAgdm9pZCBpbnRlbF9o ZG1pX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0LAo+PiAgCQkgKiBPbiBCWFQgQTAvQTEsIHN3IG5lZWRzIHRvIGFjdGl2YXRlIERESUEgSFBE IGxvZ2ljIGFuZAo+PiAgCQkgKiBpbnRlcnJ1cHRzIHRvIGNoZWNrIHRoZSBleHRlcm5hbCBwYW5l bCBjb25uZWN0aW9uLgo+PiAgCQkgKi8KPj4gLQkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpICYm IChJTlRFTF9SRVZJRChkZXYpIDwgQlhUX1JFVklEX0IwKSkKPj4gKwkJaWYgKElTX0JST1hUT04o ZGV2X3ByaXYpICYmIChJTlRFTF9SRVZJRChkZXYpIDw9IEJYVF9SRVZJRF9BMSkpCj4+ICAJCQlp bnRlbF9lbmNvZGVyLT5ocGRfcGluID0gSFBEX1BPUlRfQTsKPj4gIAkJZWxzZQo+PiAgCQkJaW50 ZWxfZW5jb2Rlci0+aHBkX3BpbiA9IEhQRF9QT1JUX0I7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCj4+IGluZGV4IDg4ZTEyYmRmNzllMi4uMGY1YTFkNjNiNTFkIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYwo+PiBAQCAtMTk3Miw3ICsxOTcyLDcgQEAgc3RhdGljIGludCBsb2dp Y2FsX3JlbmRlcl9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gIAkJcmluZy0+ aW5pdF9odyA9IGdlbjhfaW5pdF9yZW5kZXJfcmluZzsKPj4gIAlyaW5nLT5pbml0X2NvbnRleHQg PSBnZW44X2luaXRfcmNzX2NvbnRleHQ7Cj4+ICAJcmluZy0+Y2xlYW51cCA9IGludGVsX2Zpbmlf cGlwZV9jb250cm9sOwo+PiAtCWlmIChJU19CUk9YVE9OKGRldikgJiYgSU5URUxfUkVWSUQoZGV2 KSA8IEJYVF9SRVZJRF9CMCkgewo+PiArCWlmIChJU19CUk9YVE9OKGRldikgJiYgSU5URUxfUkVW SUQoZGV2KSA8PSBCWFRfUkVWSURfQTEpIHsKPj4gIAkJcmluZy0+Z2V0X3NlcW5vID0gYnh0X2Ff Z2V0X3NlcW5vOwo+PiAgCQlyaW5nLT5zZXRfc2Vxbm8gPSBieHRfYV9zZXRfc2Vxbm87Cj4+ICAJ fSBlbHNlIHsKPj4gQEAgLTIwMjQsNyArMjAyNCw3IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9ic2Rf cmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAJCUdUX0NPTlRFWFRfU1dJVENI X0lOVEVSUlVQVCA8PCBHRU44X1ZDUzFfSVJRX1NISUZUOwo+PiAgCj4+ICAJcmluZy0+aW5pdF9o dyA9IGdlbjhfaW5pdF9jb21tb25fcmluZzsKPj4gLQlpZiAoSVNfQlJPWFRPTihkZXYpICYmIElO VEVMX1JFVklEKGRldikgPCBCWFRfUkVWSURfQjApIHsKPj4gKwlpZiAoSVNfQlJPWFRPTihkZXYp ICYmIElOVEVMX1JFVklEKGRldikgPD0gQlhUX1JFVklEX0ExKSB7Cj4+ICAJCXJpbmctPmdldF9z ZXFubyA9IGJ4dF9hX2dldF9zZXFubzsKPj4gIAkJcmluZy0+c2V0X3NlcW5vID0gYnh0X2Ffc2V0 X3NlcW5vOwo+PiAgCX0gZWxzZSB7Cj4+IEBAIC0yMDc5LDcgKzIwNzksNyBAQCBzdGF0aWMgaW50 IGxvZ2ljYWxfYmx0X3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgCQlHVF9D T05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9CQ1NfSVJRX1NISUZUOwo+PiAgCj4+ICAJ cmluZy0+aW5pdF9odyA9IGdlbjhfaW5pdF9jb21tb25fcmluZzsKPj4gLQlpZiAoSVNfQlJPWFRP TihkZXYpICYmIElOVEVMX1JFVklEKGRldikgPCBCWFRfUkVWSURfQjApIHsKPj4gKwlpZiAoSVNf QlJPWFRPTihkZXYpICYmIElOVEVMX1JFVklEKGRldikgPD0gQlhUX1JFVklEX0ExKSB7Cj4+ICAJ CXJpbmctPmdldF9zZXFubyA9IGJ4dF9hX2dldF9zZXFubzsKPj4gIAkJcmluZy0+c2V0X3NlcW5v ID0gYnh0X2Ffc2V0X3NlcW5vOwo+PiAgCX0gZWxzZSB7Cj4+IEBAIC0yMTA5LDcgKzIxMDksNyBA QCBzdGF0aWMgaW50IGxvZ2ljYWxfdmVib3hfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4+ICAJCUdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBHRU44X1ZFQ1NfSVJRX1NI SUZUOwo+PiAgCj4+ICAJcmluZy0+aW5pdF9odyA9IGdlbjhfaW5pdF9jb21tb25fcmluZzsKPj4g LQlpZiAoSVNfQlJPWFRPTihkZXYpICYmIElOVEVMX1JFVklEKGRldikgPCBCWFRfUkVWSURfQjAp IHsKPj4gKwlpZiAoSVNfQlJPWFRPTihkZXYpICYmIElOVEVMX1JFVklEKGRldikgPD0gQlhUX1JF VklEX0ExKSB7Cj4+ICAJCXJpbmctPmdldF9zZXFubyA9IGJ4dF9hX2dldF9zZXFubzsKPj4gIAkJ cmluZy0+c2V0X3NlcW5vID0gYnh0X2Ffc2V0X3NlcW5vOwo+PiAgCX0gZWxzZSB7Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwo+PiBpbmRleCBkZjIyYjljNzViMmIuLjc3MWVlZmI3YzdlZiAxMDA2 NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4+IEBAIC00Mzg2LDcgKzQzODYsNyBAQCBzdGF0 aWMgdm9pZCBnZW42X3NldF9ycHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTggdmFsKQo+PiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ ICAKPj4gIAkvKiBXYUdzdkRpc2FibGVUdXJibzogV29ya2Fyb3VuZCB0byBkaXNhYmxlIHR1cmJv IG9uIEJYVCBBKiAqLwo+PiAtCWlmIChJU19CUk9YVE9OKGRldikgJiYgKElOVEVMX1JFVklEKGRl dikgPCBCWFRfUkVWSURfQjApKQo+PiArCWlmIChJU19CUk9YVE9OKGRldikgJiYgKElOVEVMX1JF VklEKGRldikgPD0gQlhUX1JFVklEX0ExKSkKPj4gIAkJcmV0dXJuOwo+PiAgCj4+ICAJV0FSTl9P TighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spKTsKPj4gQEAgLTQ3MTAs NyArNDcxMCw3IEBAIHN0YXRpYyB2b2lkIGdlbjlfZW5hYmxlX3JwcyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+PiAgCWdlbjZfaW5pdF9ycHNfZnJlcXVlbmNpZXMoZGV2KTsKPj4gIAo+PiAgCS8q IFdhR3N2RGlzYWJsZVR1cmJvOiBXb3JrYXJvdW5kIHRvIGRpc2FibGUgdHVyYm8gb24gQlhUIEEq ICovCj4+IC0JaWYgKElTX0JST1hUT04oZGV2KSAmJiAoSU5URUxfUkVWSUQoZGV2KSA8IEJYVF9S RVZJRF9CMCkpIHsKPj4gKwlpZiAoSVNfQlJPWFRPTihkZXYpICYmIChJTlRFTF9SRVZJRChkZXYp IDw9IEJYVF9SRVZJRF9BMSkpIHsKPj4gIAkJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2 X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwo+PiAgCQlyZXR1cm47Cj4+ICAJfQo+PiBAQCAtNDc5Niw3 ICs0Nzk2LDcgQEAgc3RhdGljIHZvaWQgZ2VuOV9lbmFibGVfcmM2KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4+ICAJICogM2I6IEVuYWJsZSBDb2Fyc2UgUG93ZXIgR2F0aW5nIG9ubHkgd2hlbiBS QzYgaXMgZW5hYmxlZC4KPj4gIAkgKiBXYVJzRGlzYWJsZUNvYXJzZVBvd2VyR2F0aW5nOnNrbCxi eHQgLSBSZW5kZXIvTWVkaWEgUEcgbmVlZCB0byBiZSBkaXNhYmxlZCB3aXRoIFJDNi4KPj4gIAkg Ki8KPj4gLQlpZiAoKElTX0JST1hUT04oZGV2KSAmJiAoSU5URUxfUkVWSUQoZGV2KSA8IEJYVF9S RVZJRF9CMCkpIHx8Cj4+ICsJaWYgKChJU19CUk9YVE9OKGRldikgJiYgKElOVEVMX1JFVklEKGRl dikgPD0gQlhUX1JFVklEX0ExKSkgfHwKPj4gIAkgICAgKChJU19TS0xfR1QzKGRldikgfHwgSVNf U0tMX0dUNChkZXYpKSAmJiAoSU5URUxfUkVWSUQoZGV2KSA8PSBTS0xfUkVWSURfRTApKSkKPj4g IAkJSTkxNV9XUklURShHRU45X1BHX0VOQUJMRSwgMCk7Cj4+ICAJZWxzZQo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4+IGluZGV4IGE0OTI3MDUyNWEzOC4uZDY3NjUx MmFhM2M4IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4+ IEBAIC05MjYsMTQgKzkyNiwxNCBAQCBzdGF0aWMgaW50IGdlbjlfaW5pdF93b3JrYXJvdW5kcyhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+PiAgCj4+ICAJaWYgKChJU19TS1lMQUtFKGRl dikgJiYgKElOVEVMX1JFVklEKGRldikgPT0gU0tMX1JFVklEX0EwIHx8Cj4+ICAJICAgIElOVEVM X1JFVklEKGRldikgPT0gU0tMX1JFVklEX0IwKSkgfHwKPj4gLQkgICAgKElTX0JST1hUT04oZGV2 KSAmJiBJTlRFTF9SRVZJRChkZXYpIDwgQlhUX1JFVklEX0IwKSkgewo+PiArCSAgICAoSVNfQlJP WFRPTihkZXYpICYmIElOVEVMX1JFVklEKGRldikgPD0gQlhUX1JFVklEX0ExKSkgewo+PiAgCQkv KiBXYURpc2FibGVEZ01pcnJvckZpeEluSGFsZlNsaWNlQ2hpY2tlbjU6c2tsLGJ4dCAqLwo+PiAg CQlXQV9DTFJfQklUX01BU0tFRChHRU45X0hBTEZfU0xJQ0VfQ0hJQ0tFTjUsCj4+ICAJCQkJICBH RU45X0RHX01JUlJPUl9GSVhfRU5BQkxFKTsKPj4gIAl9Cj4+ICAKPj4gIAlpZiAoKElTX1NLWUxB S0UoZGV2KSAmJiBJTlRFTF9SRVZJRChkZXYpIDw9IFNLTF9SRVZJRF9CMCkgfHwKPj4gLQkgICAg KElTX0JST1hUT04oZGV2KSAmJiBJTlRFTF9SRVZJRChkZXYpIDwgQlhUX1JFVklEX0IwKSkgewo+ PiArCSAgICAoSVNfQlJPWFRPTihkZXYpICYmIElOVEVMX1JFVklEKGRldikgPD0gQlhUX1JFVklE X0ExKSkgewo+PiAgCQkvKiBXYVNldERpc2FibGVQaXhNYXNrQ2FtbWluZ0FuZFJod29JbkNvbW1v blNsaWNlQ2hpY2tlbjpza2wsYnh0ICovCj4+ICAJCVdBX1NFVF9CSVRfTUFTS0VEKEdFTjdfQ09N TU9OX1NMSUNFX0NISUNLRU4xLAo+PiAgCQkJCSAgR0VOOV9SSFdPX09QVElNSVpBVElPTl9ESVNB QkxFKTsKPj4gQEAgLTk2Miw3ICs5NjIsNyBAQCBzdGF0aWMgaW50IGdlbjlfaW5pdF93b3JrYXJv dW5kcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+PiAgCj4+ICAJLyogV2FEaXNhYmxl TWFza0Jhc2VkQ2FtbWluZ0luUkNDOnNrbCxieHQgKi8KPj4gIAlpZiAoKElTX1NLWUxBS0UoZGV2 KSAmJiBJTlRFTF9SRVZJRChkZXYpID09IFNLTF9SRVZJRF9DMCkgfHwKPj4gLQkgICAgKElTX0JS T1hUT04oZGV2KSAmJiBJTlRFTF9SRVZJRChkZXYpIDwgQlhUX1JFVklEX0IwKSkKPj4gKwkgICAg KElTX0JST1hUT04oZGV2KSAmJiBJTlRFTF9SRVZJRChkZXYpIDw9IEJYVF9SRVZJRF9BMSkpCj4+ ICAJCVdBX1NFVF9CSVRfTUFTS0VEKFNMSUNFX0VDT19DSElDS0VOMCwKPj4gIAkJCQkgIFBJWEVM X01BU0tfQ0FNTUlOR19ESVNBQkxFKTsKPj4gIAo+PiAtLSAKPj4gMi4xLjQKPj4gCj4+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IEludGVsLWdmeCBt YWlsaW5nIGxpc3QKPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4KPiAtLSAK PiBEYW5pZWwgVmV0dGVyCj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4g aHR0cDovL2Jsb2cuZmZ3bGwuY2gKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2Ug VGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK