From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak M Subject: =?utf-8?q?=5BPATCH=5D_drm/i915=3A_CABC_support_for_ba?= =?utf-8?q?cklight_control?= Date: Mon, 14 Sep 2015 15:23:14 +0530 Message-ID: <1442224394-6297-1-git-send-email-m.deepak@intel.com> References: <20150914094136.GA3383@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id B18FA6E812 for ; Mon, 14 Sep 2015 02:49:19 -0700 (PDT) In-Reply-To: <20150914094136.GA3383@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: intel-gfx@lists.freedesktop.org Cc: Deepak M List-Id: intel-gfx@lists.freedesktop.org SW4gQ0FCQyAoQ29udGVudCBBZGFwdGl2ZSBCcmlnaHRuZXNzIENvbnRyb2wpIGNvbnRlbnQgZ3Jl eSBsZXZlbApzY2FsZSBjYW4gYmUgaW5jcmVhc2VkIHdoaWxlIHNpbXVsdGFuZW91c2x5IGRlY3Jl YXNpbmcKYnJpZ2h0bmVzcyBvZiB0aGUgYmFja2xpZ2h0IHRvIGFjaGlldmUgc2FtZSBwZXJjZWl2 ZWQgYnJpZ2h0bmVzcy4KClRoZSBDQUJDIGlzIG5vdCBzdGFuZGFyZGl6ZWQgYW5kIHBhbmVsIHZl bmRvcnMgYXJlIGZyZWUgdG8gZm9sbG93CnRoZWlyIGltcGxlbWVudGF0aW9uLiBUaGUgQ0FCQyBp bXBsZW1lbnRhaW9uIGhlcmUgYXNzdW1lcyB0aGF0IHRoZQpwYW5lbHMgdXNlIHN0YW5kYXJkIFNX IHJlZ2lzdGVyIGZvciBjb250cm9sLgoKSW4gdGhpcyBkZXNpZ24gdGhlcmUgd2lsbCBiZSBubyBQ V00gc2lnbmFsIGZyb20gdGhlIFNvQyBhbmQgRENTCmNvbW1hbmRzIGFyZSBzZW50IHRvIGVuYWJs ZSBhbmQgY29udHJvbCB0aGUgYmFja2xpZ2h0IGJyaWdodG5lc3MuCgp2MjoKLSBDcmVhdGVkIGEg bmV3IGJhY2tsaWdodCBkcml2ZXIgZm9yIGNhYmMsIHdoaWNoIHdpbGwgYmUgcmVnaXN0ZXJlZAog IG9ubHkgd2hlbiBpdCBjYWJjIGlzIHN1cHBvcnRlZCBieSBwYW5lbC4gKERhbmllbCBWZXR0ZXIp CnYzOgotIFVzZSBmb3JfZWFjaF9kc2lfcG9ydCBtYWNybyBmb3IgaGFuZGxpbmcgcG9ydCBDIGFs c28gKEdhdXJhdikKLSBSZWJhc2UKClNpZ25lZC1vZmYtYnk6IERlZXBhayBNIDxtLmRlZXBha0Bp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICB8ICAg IDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAgICB8ICAgMTggKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMgfCAgMzEwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NhYmMu aCB8ICAgNDYgKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICAgfCAg IDIzICsrLQogaW5jbHVkZS92aWRlby9taXBpX2Rpc3BsYXkuaCAgICAgICAgICB8ICAgIDggKwog NiBmaWxlcyBjaGFuZ2VkLCAzOTkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NhYmMuaAoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvTWFrZWZpbGUKaW5kZXggNDRkMjkwYS4uZDg3YzY5MCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZp bGUKQEAgLTgyLDYgKzgyLDcgQEAgaTkxNS15ICs9IGR2b19jaDcwMTcubyBcCiAJICBpbnRlbF9k c2kubyBcCiAJICBpbnRlbF9kc2lfcGFuZWxfdmJ0Lm8gXAogCSAgaW50ZWxfZHNpX3BsbC5vIFwK KwkgIGludGVsX2RzaV9jYWJjLm8gXAogCSAgaW50ZWxfZHZvLm8gXAogCSAgaW50ZWxfaGRtaS5v IFwKIAkgIGludGVsX2kyYy5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKaW5kZXggNzgxYzI2 Ny4uMWQ5OGVkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKQEAgLTM1LDYgKzM1LDcgQEAK ICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVsX2Rydi5oIgogI2luY2x1ZGUg ImludGVsX2RzaS5oIgorI2luY2x1ZGUgImludGVsX2RzaV9jYWJjLmgiCiAKIHN0YXRpYyBjb25z dCBzdHJ1Y3QgewogCXUxNiBwYW5lbF9pZDsKQEAgLTM5OCw3ICszOTksMTAgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHNpX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJaW50 ZWxfZHNpX3BvcnRfZW5hYmxlKGVuY29kZXIpOwogCX0KIAotCWludGVsX3BhbmVsX2VuYWJsZV9i YWNrbGlnaHQoaW50ZWxfZHNpLT5hdHRhY2hlZF9jb25uZWN0b3IpOworCWlmIChkZXZfcHJpdi0+ dmJ0LmRzaS5jb25maWctPmNhYmNfc3VwcG9ydGVkKQorCQljYWJjX2VuYWJsZV9iYWNrbGlnaHQo aW50ZWxfZHNpLT5hdHRhY2hlZF9jb25uZWN0b3IpOworCWVsc2UKKwkJaW50ZWxfcGFuZWxfZW5h YmxlX2JhY2tsaWdodChpbnRlbF9kc2ktPmF0dGFjaGVkX2Nvbm5lY3Rvcik7CiB9CiAKIHN0YXRp YyB2b2lkIGludGVsX2RzaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQpAQCAtNDU4LDEyICs0NjIsMTcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2VuYWJsZV9ub3Ao c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAKIHN0YXRpYyB2b2lkIGludGVsX2RzaV9w cmVfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRl bF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHBvcnQgcG9y dDsKIAogCURSTV9ERUJVR19LTVMoIlxuIik7CiAKLQlpbnRlbF9wYW5lbF9kaXNhYmxlX2JhY2ts aWdodChpbnRlbF9kc2ktPmF0dGFjaGVkX2Nvbm5lY3Rvcik7CisJaWYgKGRldl9wcml2LT52YnQu ZHNpLmNvbmZpZy0+Y2FiY19zdXBwb3J0ZWQpCisJCWNhYmNfZGlzYWJsZV9iYWNrbGlnaHQoaW50 ZWxfZHNpLT5hdHRhY2hlZF9jb25uZWN0b3IpOworCWVsc2UKKwkJaW50ZWxfcGFuZWxfZGlzYWJs ZV9iYWNrbGlnaHQoaW50ZWxfZHNpLT5hdHRhY2hlZF9jb25uZWN0b3IpOwogCiAJaWYgKGlzX3Zp ZF9tb2RlKGludGVsX2RzaSkpIHsKIAkJLyogU2VuZCBTaHV0ZG93biBjb21tYW5kIHRvIHRoZSBw YW5lbCBpbiBMUCBtb2RlICovCkBAIC0xMTMzLDcgKzExNDIsMTAgQEAgdm9pZCBpbnRlbF9kc2lf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCX0KIAogCWludGVsX3BhbmVsX2luaXQoJmlu dGVsX2Nvbm5lY3Rvci0+cGFuZWwsIGZpeGVkX21vZGUsIE5VTEwpOwotCWludGVsX3BhbmVsX3Nl dHVwX2JhY2tsaWdodChjb25uZWN0b3IsIElOVkFMSURfUElQRSk7CisJaWYgKGRldl9wcml2LT52 YnQuZHNpLmNvbmZpZy0+Y2FiY19zdXBwb3J0ZWQpCisJCWNhYmNfc2V0dXBfYmFja2xpZ2h0KGNv bm5lY3RvciwgSU5WQUxJRF9QSVBFKTsKKwllbHNlCisJCWludGVsX3BhbmVsX3NldHVwX2JhY2ts aWdodChjb25uZWN0b3IsIElOVkFMSURfUElQRSk7CiAKIAlyZXR1cm47CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2lfY2FiYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmMyZmNkOTUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k c2lfY2FiYy5jCkBAIC0wLDAgKzEsMzEwIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMDYtMjAx MCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRo aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0 d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQv b3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g d2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFy YWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAq IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBD T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF UgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP UiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBT T0ZUV0FSRS4KKyAqCisgKiBBdXRob3I6IERlZXBhayBNIDxtLmRlZXBha0BpbnRlbC5jb20+Cisg Ki8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBh cmFtLmg+CisjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZHNpLmgiCisj aW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kc2lfY2FiYy5oIgorI2luY2x1 ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4K Kworc3RhdGljIGlubGluZSBlbnVtIHBvcnQgZ2V0X2NhYmNfcG9ydChzdHJ1Y3QgaW50ZWxfZHNp ICppbnRlbF9kc2kpCit7CisJaWYgKGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09IENBQkNfUE9S VF9DKQorCQlyZXR1cm4gUE9SVF9DOworCWVsc2UKKwkJcmV0dXJuIFBPUlRfQTsKK30KKworaW50 IGNhYmNfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJ CWVudW0gcGlwZSB1bnVzZWQpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rv ci0+ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7CisJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gdG9faW50 ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7CisJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZp bnRlbF9jb25uZWN0b3ItPnBhbmVsOworCisJaWYgKGRldl9wcml2LT52YnQuYmFja2xpZ2h0LnBy ZXNlbnQpCisJCXBhbmVsLT5iYWNrbGlnaHQucHJlc2VudCA9IHRydWU7CisJZWxzZSB7CisJCURS TV9FUlJPUigibm8gYmFja2xpZ2h0IHByZXNlbnQgcGVyIFZCVFxuIik7CisJCXJldHVybiAwOwor CX0KKworCXBhbmVsLT5iYWNrbGlnaHQubWF4ID0gQ0FCQ19NQVhfVkFMVUU7CisJcGFuZWwtPmJh Y2tsaWdodC5sZXZlbCA9IENBQkNfTUFYX1ZBTFVFOworCisJcmV0dXJuIDA7Cit9CisKK3UzMiBj YWJjX2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQorewor CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2OworCXN0cnVjdCBp bnRlbF9kc2kgKmludGVsX2RzaSA9IE5VTEw7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVM TDsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7CisJc3RydWN0IG1pcGlf ZHNpX2RldmljZSAqZHNpX2RldmljZTsKKwl1OCBkYXRhWzJdID0gezB9OworCWVudW0gcG9ydCBw b3J0OworCXUzMiByZXQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICZkZXYtPm1vZGVf Y29uZmlnLmNydGNfbGlzdCwgaGVhZCkgeworCQlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2 LCBjcnRjLCBlbmNvZGVyKSB7CisJCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRf RFNJKSB7CisJCQkJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7 CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWYgKGludGVsX2RzaSAhPSBOVUxMKQorCQkJYnJl YWs7CisJfQorCisJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewor CQlpZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmspCisJCQlwb3J0ID0gZ2V0X2NhYmNfcG9ydChpbnRl bF9kc2kpOworCisJCWRzaV9kZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2 aWNlOworCQltaXBpX2RzaV9kY3NfcmVhZChkc2lfZGV2aWNlLCBNSVBJX0RDU19DQUJDX0xFVkVM X1JELCBkYXRhLCAyKTsKKworCQlpZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmsgJiYKKwkJCQkhKGlu dGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09IENBQkNfUE9SVF9BX0FORF9DKSkKKwkJCWJyZWFrOwor CX0KKworCXJldCA9IGRhdGFbMV07CisKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIGNhYmNfc2V0 X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkK K3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKKwlzdHJ1 Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBOVUxMOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IE5VTEw7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBOVUxMOworCXN0cnVjdCBt aXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7CisJdTggZGF0YVsyXSA9IHswfTsKKwllbnVtIHBv cnQgcG9ydDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcu Y3J0Y19saXN0LCBoZWFkKSB7CisJCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMs IGVuY29kZXIpIHsKKwkJCWlmIChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9EU0kpIHsK KwkJCQlpbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKKwkJCQli cmVhazsKKwkJCX0KKwkJfQorCQlpZiAoaW50ZWxfZHNpICE9IE5VTEwpCisJCQlicmVhazsKKwl9 CisKKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7CisJCWlmIChp bnRlbF9kc2ktPmR1YWxfbGluaykKKwkJCXBvcnQgPSBnZXRfY2FiY19wb3J0KGludGVsX2RzaSk7 CisKKwkJZHNpX2RldmljZSA9IGludGVsX2RzaS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7CisJ CWRhdGFbMV0gPSBsZXZlbDsKKwkJZGF0YVswXSA9IE1JUElfRENTX0NBQkNfTEVWRUxfV1I7CisJ CW1pcGlfZHNpX2Rjc193cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7CisKKwkJaWYg KGludGVsX2RzaS0+ZHVhbF9saW5rICYmCisJCQkhKGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09 IENBQkNfUE9SVF9BX0FORF9DKSkKKwkJCWJyZWFrOworCX0KK30KKwordm9pZCBjYWJjX2VuYWJs ZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2OworCXN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSA9IE5VTEw7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVMTDsKKwlz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7CisJc3RydWN0IGludGVsX3BhbmVs ICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRz aV9kZXZpY2U7CisJZW51bSBwb3J0IHBvcnQ7CisJdTggZGF0YVsyXSA9IHswfTsKKworCWxpc3Rf Zm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7 CisJCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKKwkJCWlm IChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9EU0kpIHsKKwkJCQlpbnRlbF9kc2kgPSBl bmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQor CQlpZiAoaW50ZWxfZHNpICE9IE5VTEwpCisJCQlicmVhazsKKwl9CisKKwlmb3JfZWFjaF9kc2lf cG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7CisJCWlmIChpbnRlbF9kc2ktPmR1YWxfbGlu aykKKwkJCXBvcnQgPSBnZXRfY2FiY19wb3J0KGludGVsX2RzaSk7CisKKwkJZHNpX2RldmljZSA9 IGludGVsX2RzaS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7CisJCWRhdGFbMF0gPSBNSVBJX0RD U19DQUJDX0NPTlRST0xfQlJJR0hUX1dSOworCQlkYXRhWzFdID0gQ0FCQ19CQUNLTElHSFQgfCBD QUJDX0RJTU1JTkdfRElTUExBWSB8IENBQkNfQkNUUkw7CisJCW1pcGlfZHNpX2Rjc193cml0ZV9i dWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7CisJCWRhdGFbMF0gPSBNSVBJX0RDU19DQUJDX0NP TlRST0xfV1I7CisJCWRhdGFbMV0gPSBDQUJDX1NUSUxMX1BJQ1RVUkU7CisJCW1pcGlfZHNpX2Rj c193cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7CisKKwkJaWYgKGludGVsX2RzaS0+ ZHVhbF9saW5rICYmCisJCQkJIShpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BPUlRf QV9BTkRfQykpCisJCQlicmVhazsKKwl9CisKKwljYWJjX3NldF9iYWNrbGlnaHQoY29ubmVjdG9y LCBwYW5lbC0+YmFja2xpZ2h0LmxldmVsKTsKK30KKwordm9pZCBjYWJjX2Rpc2FibGVfYmFja2xp Z2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRl bF9kc2kgPSBOVUxMOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IE5VTEw7CisJc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIgPSBOVUxMOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRz aV9kZXZpY2U7CisJZW51bSBwb3J0IHBvcnQ7CisJdTggZGF0YVsyXSA9IHswfTsKKworCWxpc3Rf Zm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7 CisJCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKKwkJCWlm IChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9EU0kpIHsKKwkJCQlpbnRlbF9kc2kgPSBl bmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQor CQlpZiAoaW50ZWxfZHNpICE9IE5VTEwpCisJCQlicmVhazsKKwl9CisKKwljYWJjX3NldF9iYWNr bGlnaHQoY29ubmVjdG9yLCAwKTsKKworCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2Rz aS0+cG9ydHMpIHsKKwkJaWYgKGludGVsX2RzaS0+ZHVhbF9saW5rKQorCQkJcG9ydCA9IGdldF9j YWJjX3BvcnQoaW50ZWxfZHNpKTsKKwkJZHNpX2RldmljZSA9IGludGVsX2RzaS0+ZHNpX2hvc3Rz W3BvcnRdLT5kZXZpY2U7CisKKwkJZGF0YVsxXSA9IENBQkNfT0ZGOworCQlkYXRhWzBdID0gTUlQ SV9EQ1NfQ0FCQ19DT05UUk9MX1dSOworCQltaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKGRzaV9k ZXZpY2UsIGRhdGEsIDIpOworCQlkYXRhWzBdID0gTUlQSV9EQ1NfQ0FCQ19DT05UUk9MX0JSSUdI VF9XUjsKKwkJbWlwaV9kc2lfZGNzX3dyaXRlX2J1ZmZlcihkc2lfZGV2aWNlLCBkYXRhLCAyKTsK KworCQlpZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmsgJiYKKwkJCQkhKGludGVsX2RzaS0+ZGxfY2Fi Y19wb3J0ID09IENBQkNfUE9SVF9BX0FORF9DKSkKKwkJCWJyZWFrOworCX0KK30KK3N0YXRpYyBp bnQgY2FiY19iYWNrbGlnaHRfZGV2aWNlX3VwZGF0ZV9zdGF0dXMoc3RydWN0IGJhY2tsaWdodF9k ZXZpY2UgKmJkKQoreworCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGJsX2dl dF9kYXRhKGJkKTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRl djsKKworCWRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRl eCwgTlVMTCk7CisJRFJNX0RFQlVHX0tNUygidXBkYXRpbmcgaW50ZWxfYmFja2xpZ2h0LCBicmln aHRuZXNzPSVkLyVkXG4iLAorCQkJYmQtPnByb3BzLmJyaWdodG5lc3MsIGJkLT5wcm9wcy5tYXhf YnJpZ2h0bmVzcyk7CisKKwljYWJjX3NldF9iYWNrbGlnaHQoY29ubmVjdG9yLCBiZC0+cHJvcHMu YnJpZ2h0bmVzcyk7CisKKwlkcm1fbW9kZXNldF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuY29u bmVjdGlvbl9tdXRleCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYWJjX2JhY2ts aWdodF9kZXZpY2VfZ2V0X2JyaWdodG5lc3Moc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJkKQor eworCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGJsX2dldF9kYXRhKGJkKTsK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCByZXQ7 CisKKwlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CisJZHJtX21vZGVzZXRfbG9jaygm ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCBOVUxMKTsKKworCXJldCA9IGNhYmNf Z2V0X2JhY2tsaWdodChjb25uZWN0b3IpOworCisJZHJtX21vZGVzZXRfdW5sb2NrKCZkZXYtPm1v ZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9w cml2KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmFja2xpZ2h0 X29wcyBjYWJjX2JhY2tsaWdodF9kZXZpY2Vfb3BzID0geworCS51cGRhdGVfc3RhdHVzID0gY2Fi Y19iYWNrbGlnaHRfZGV2aWNlX3VwZGF0ZV9zdGF0dXMsCisJLmdldF9icmlnaHRuZXNzID0gY2Fi Y19iYWNrbGlnaHRfZGV2aWNlX2dldF9icmlnaHRuZXNzLAorfTsKKworaW50IGNhYmNfYmFja2xp Z2h0X2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7 CisJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOworCXN0cnVj dCBiYWNrbGlnaHRfcHJvcGVydGllcyBwcm9wczsKKworCWlmIChXQVJOX09OKHBhbmVsLT5iYWNr bGlnaHQuZGV2aWNlKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpZiAoIXBhbmVsLT5iYWNrbGln aHQucHJlc2VudCkgeworCQlEUk1fRVJST1IoIk5vIGJhY2tsaWdodCBwcmVzZW50XG4iKTsKKwkJ cmV0dXJuIDA7CisJfQorCisJV0FSTl9PTihwYW5lbC0+YmFja2xpZ2h0Lm1heCA9PSAwKTsKKwor CW1lbXNldCgmcHJvcHMsIDAsIHNpemVvZihwcm9wcykpOworCXByb3BzLnR5cGUgPSBCQUNLTElH SFRfRklSTVdBUkU7CisJcHJvcHMubWF4X2JyaWdodG5lc3MgPSBwYW5lbC0+YmFja2xpZ2h0Lm1h eDsKKwlwcm9wcy5icmlnaHRuZXNzID0gcHJvcHMubWF4X2JyaWdodG5lc3M7CisKKwkvKgorCSAq IE5vdGU6IHVzaW5nIHRoZSBzYW1lIG5hbWUgaW5kZXBlbmRlbnQgb2YgdGhlIGNvbm5lY3RvciBw cmV2ZW50cworCSAqIHJlZ2lzdHJhdGlvbiBvZiBtdWx0aXBsZSBiYWNrbGlnaHQgZGV2aWNlcyBp biB0aGUgZHJpdmVyLgorCSAqLworCXBhbmVsLT5iYWNrbGlnaHQuZGV2aWNlID0KKwkJYmFja2xp Z2h0X2RldmljZV9yZWdpc3RlcigiaW50ZWxfYmFja2xpZ2h0IiwKKwkJCQljb25uZWN0b3ItPmJh c2Uua2RldiwKKwkJCQljb25uZWN0b3IsCisJCQkJJmNhYmNfYmFja2xpZ2h0X2RldmljZV9vcHMs ICZwcm9wcyk7CisKKwlpZiAoSVNfRVJSKHBhbmVsLT5iYWNrbGlnaHQuZGV2aWNlKSkgeworCQlE Uk1fRVJST1IoIkZhaWxlZCB0byByZWdpc3RlciBiYWNrbGlnaHQ6ICVsZFxuIiwKKwkJCQlQVFJf RVJSKHBhbmVsLT5iYWNrbGlnaHQuZGV2aWNlKSk7CisJCXBhbmVsLT5iYWNrbGlnaHQuZGV2aWNl ID0gTlVMTDsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJRFJNX0RFQlVHX0tNUygiQ29ubmVj dG9yICVzIGJhY2tsaWdodCBzeXNmcyBpbnRlcmZhY2UgcmVnaXN0ZXJlZFxuIiwKKwkJCWNvbm5l Y3Rvci0+YmFzZS5uYW1lKTsKKworCXJldHVybiAwOworfQorCit2b2lkIGNhYmNfYmFja2xpZ2h0 X2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sK KwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7CisKKwlpZiAo cGFuZWwtPmJhY2tsaWdodC5kZXZpY2UpIHsKKwkJYmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVy KHBhbmVsLT5iYWNrbGlnaHQuZGV2aWNlKTsKKwkJcGFuZWwtPmJhY2tsaWdodC5kZXZpY2UgPSBO VUxMOworCX0KK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9j YWJjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxYTc5ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisg KiBDb3B5cmlnaHQgwqkgMjAxMyBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv biBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1 YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8g cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBk byBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGlu ZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVz IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhF IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ TkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g VEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisg KiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJ TSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP RiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBP UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAq IERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3I6IERlZXBhayBNIDxtLmRl ZXBha0BpbnRlbC5jb20+CisgKi8KKworZXh0ZXJuIGludCBjYWJjX2JhY2tsaWdodF9kZXZpY2Vf cmVnaXN0ZXIoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKK2V4dGVybiB2b2lk IGNhYmNfYmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3Rvcik7Cit2b2lkIGNhYmNfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCk7Cit1MzIgY2FiY19nZXRfYmFja2xpZ2h0KHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cit2b2lkIGNhYmNfZW5hYmxlX2JhY2tsaWdo dChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOwordm9pZCBjYWJjX2Rpc2FibGVf YmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7CitpbnQgY2FiY19z ZXR1cF9iYWNrbGlnaHQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBl IHVudXNlZCk7CisKKyNkZWZpbmUgQ0FCQ19PRkYJCQkoMCA8PCAwKQorI2RlZmluZSBDQUJDX1VT RVJfSU5URVJGQUNFX0lNQUdFCSgxIDw8IDApCisjZGVmaW5lIENBQkNfU1RJTExfUElDVFVSRQkJ KDIgPDwgMCkKKyNkZWZpbmUgQ0FCQ19WSURFT19NT0RFCQkJKDMgPDwgMCkKKworI2RlZmluZSBD QUJDX0JBQ0tMSUdIVAkJCSgxIDw8IDIpCisjZGVmaW5lIENBQkNfRElNTUlOR19ESVNQTEFZCQko MSA8PCAzKQorI2RlZmluZSBDQUJDX0JDVFJMCQkJKDEgPDwgNSkKKworI2RlZmluZSBDQUJDX1BP UlRfQQkJCTB4MDAKKyNkZWZpbmUgQ0FCQ19QT1JUX0MJCQkweDAxCisjZGVmaW5lIENBQkNfUE9S VF9BX0FORF9DCQkweDAyCisjZGVmaW5lIENBQkNfTUFYX1ZBTFVFCQkJMHhmZgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BhbmVsLmMKaW5kZXggZTJhYjNmNi4uZmYyZTU4NiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wYW5lbC5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxl cGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9wd20uaD4KICNpbmNsdWRlICJpbnRlbF9kcnYuaCIK KyNpbmNsdWRlICJpbnRlbF9kc2lfY2FiYy5oIgogCiAjZGVmaW5lIENSQ19QTUlDX1BXTV9QRVJJ T0RfTlMJMjEzMzMKIApAQCAtMTU4NiwxNSArMTU4NywyOSBAQCB2b2lkIGludGVsX3BhbmVsX2Zp bmkoc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCkKIHZvaWQgaW50ZWxfYmFja2xpZ2h0X3JlZ2lz dGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldi0+bW9kZV9j b25maWcuY29ubmVjdG9yX2xpc3QsIGJhc2UuaGVhZCkKLQkJaW50ZWxfYmFja2xpZ2h0X2Rldmlj ZV9yZWdpc3Rlcihjb25uZWN0b3IpOworCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAm ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwKKwkJCQkJYmFzZS5oZWFkKSB7CisJCWlm IChjb25uZWN0b3ItPmVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RTSSAmJgorCQkJZGV2 X3ByaXYtPnZidC5kc2kuY29uZmlnLT5jYWJjX3N1cHBvcnRlZCkKKwkJCWNhYmNfYmFja2xpZ2h0 X2RldmljZV9yZWdpc3Rlcihjb25uZWN0b3IpOworCQllbHNlCisJCQlpbnRlbF9iYWNrbGlnaHRf ZGV2aWNlX3JlZ2lzdGVyKGNvbm5lY3Rvcik7CisJfQogfQogCiB2b2lkIGludGVsX2JhY2tsaWdo dF91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRl di0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGJhc2UuaGVhZCkKLQkJaW50ZWxfYmFja2xp Z2h0X2RldmljZV91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShj b25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LAorCQkJCQliYXNlLmhl YWQpIHsKKwkJaWYgKGNvbm5lY3Rvci0+ZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFNJ ICYmCisJCQlkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWctPmNhYmNfc3VwcG9ydGVkKQorCQkJY2Fi Y19iYWNrbGlnaHRfZGV2aWNlX3VucmVnaXN0ZXIoY29ubmVjdG9yKTsKKwkJZWxzZQorCQkJaW50 ZWxfYmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7CisJfQogfQpkaWZmIC0t Z2l0IGEvaW5jbHVkZS92aWRlby9taXBpX2Rpc3BsYXkuaCBiL2luY2x1ZGUvdmlkZW8vbWlwaV9k aXNwbGF5LmgKaW5kZXggZGRjYzhjYS4uNWI4ZWVlYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS92aWRl by9taXBpX2Rpc3BsYXkuaAorKysgYi9pbmNsdWRlL3ZpZGVvL21pcGlfZGlzcGxheS5oCkBAIC0x MTcsNiArMTE3LDE0IEBAIGVudW0gewogCU1JUElfRENTX0dFVF9TQ0FOTElORQkJPSAweDQ1LAog CU1JUElfRENTX1JFQURfRERCX1NUQVJUCQk9IDB4QTEsCiAJTUlQSV9EQ1NfUkVBRF9EREJfQ09O VElOVUUJPSAweEE4LAorCU1JUElfRENTX0NBQkNfTEVWRUxfUkQgICAgICAgICAgPSAweDUyLAor CU1JUElfRENTX0NBQkNfTUlOX0JSSUdIVE5FU1NfUkQgPSAweDVGLAorCU1JUElfRENTX0NBQkNf Q09OVFJPTF9SRCAgICAgICAgPSAweDU2LAorCU1JUElfRENTX0NBQkNfQ09OVFJPTF9CUklHSFRf UkQgPSAweDU0LAorCU1JUElfRENTX0NBQkNfTEVWRUxfV1IgICAgICAgICAgPSAweDUxLAorCU1J UElfRENTX0NBQkNfTUlOX0JSSUdIVE5FU1NfV1IgPSAweDVFLAorCU1JUElfRENTX0NBQkNfQ09O VFJPTF9XUiAgICAgICAgPSAweDU1LAorCU1JUElfRENTX0NBQkNfQ09OVFJPTF9CUklHSFRfV1Ig PSAweDUzLAogfTsKIAogLyogTUlQSSBEQ1MgcGl4ZWwgZm9ybWF0cyAqLwotLSAKMS43LjkuNQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK