From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak M Subject: =?utf-8?q?=5BRFC_CABC_PATCH_v2_3/3=5D_drm/i915=3A_CAB?= =?utf-8?q?C_support_for_backlight_control?= Date: Fri, 24 Jul 2015 17:54:09 +0530 Message-ID: <1437740649-9168-1-git-send-email-m.deepak@intel.com> References: <20150706125106.GZ2156@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 4B01F6E760 for ; Fri, 24 Jul 2015 05:20:07 -0700 (PDT) In-Reply-To: <20150706125106.GZ2156@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 IG9ubHkgd2hlbiBpdCBjYWJjIGlzIHN1cHBvcnRlZCBieSBwYW5lbC4KICAoQWRkcmVzc2VkIGNv bW1lbnQgZnJvbSBEYW5pZWwgVmV0dGVyKQoKU2lnbmVkLW9mZi1ieTogRGVlcGFrIE0gPG0uZGVl cGFrQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAg IHwgICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgIHwgICAgMyAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAgICB8ICAgMTMgKysKIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMgfCAgMzQ5ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NhYmMuaCB8 ICAgNDUgKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICAgfCAgIDIy ICsrLQogaW5jbHVkZS92aWRlby9taXBpX2Rpc3BsYXkuaCAgICAgICAgICB8ICAgIDggKwogNyBm aWxlcyBjaGFuZ2VkLCA0MzYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NhYmMuaAoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvTWFrZWZpbGUKaW5kZXggZGUyMTk2NS4uYTczOTUzYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUK QEAgLTc1LDYgKzc1LDcgQEAgaTkxNS15ICs9IGR2b19jaDcwMTcubyBcCiAJICBpbnRlbF9kcF9t c3QubyBcCiAJICBpbnRlbF9kc2kubyBcCiAJICBpbnRlbF9kc2lfcGxsLm8gXAorCSAgaW50ZWxf ZHNpX2NhYmMubyBcCiAJICBpbnRlbF9kc2lfcGFuZWxfdmJ0Lm8gXAogCSAgaW50ZWxfZHZvLm8g XAogCSAgaW50ZWxfaGRtaS5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggM2YwYTg5 MC4uOWY4MDZkZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xMzE5LDcgKzEzMTks OCBAQCBleHRlcm4gc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmludGVsX2ZpbmRfcGFuZWxfZG93 bmNsb2NrKAogCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwogdm9pZCBpbnRl bF9iYWNrbGlnaHRfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGludGVs X2JhY2tsaWdodF91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCitleHRlcm4g aW50IGNhYmNfYmFja2xpZ2h0X2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpOworZXh0ZXJuIHZvaWQgY2FiY19iYWNrbGlnaHRfZGV2aWNlX3VucmVnaXN0 ZXIoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKIAogLyogaW50ZWxfcHNyLmMg Ki8KIHZvaWQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHNpLmMKaW5kZXggOTg5OThlOS4uOGYwMDZmMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHNpLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgog I2luY2x1ZGUgImludGVsX2Rydi5oIgogI2luY2x1ZGUgImludGVsX2RzaS5oIgorI2luY2x1ZGUg ImludGVsX2RzaV9jYWJjLmgiCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogCXUxNiBwYW5lbF9p ZDsKQEAgLTM3Niw2ICszNzcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZW5hYmxlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNv ZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRl bF9kc2koJmVuY29kZXItPmJhc2UpOworCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciA9IGludGVsX2RzaS0+YXR0YWNoZWRfY29ubmVjdG9yOwogCWVudW0gcG9ydCBwb3J0OwogCiAJ RFJNX0RFQlVHX0tNUygiXG4iKTsKQEAgLTM5Niw2ICszOTgsOSBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kc2lfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCiAJCWludGVsX2Rz aV9wb3J0X2VuYWJsZShlbmNvZGVyKTsKIAl9CisKKwlpZiAoZGV2X3ByaXYtPnZidC5kc2kuY29u ZmlnLT5jYWJjX3N1cHBvcnRlZCkKKwkJY2FiY19lbmFibGVfYmFja2xpZ2h0KGNvbm5lY3Rvcik7 CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQpAQCAtNDY5LDExICs0NzQsMTUgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNp X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNp ID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CisJc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yID0gaW50ZWxfZHNpLT5hdHRhY2hlZF9jb25uZWN0b3I7CiAJZW51bSBw b3J0IHBvcnQ7CiAJdTMyIHRlbXA7CiAKIAlEUk1fREVCVUdfS01TKCJcbiIpOwogCisJaWYgKGRl dl9wcml2LT52YnQuZHNpLmNvbmZpZy0+Y2FiY19zdXBwb3J0ZWQpCisJCWNhYmNfZGlzYWJsZV9i YWNrbGlnaHQoY29ubmVjdG9yKTsKKwogCWlmIChpc192aWRfbW9kZShpbnRlbF9kc2kpKSB7CiAJ CWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpCiAJCQl3YWl0X2Zvcl9k c2lfZmlmb19lbXB0eShpbnRlbF9kc2ksIHBvcnQpOwpAQCAtMTA5OSw2ICsxMTA4LDEwIEBAIHZv aWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWludGVsX3BhbmVs X2luaXQoJmludGVsX2Nvbm5lY3Rvci0+cGFuZWwsIGZpeGVkX21vZGUsIE5VTEwpOwogCisJaWYg KGRldl9wcml2LT52YnQuZHNpLmNvbmZpZy0+Y2FiY19zdXBwb3J0ZWQpCisJCWNhYmNfc2V0dXBf YmFja2xpZ2h0KGNvbm5lY3RvciwKKwkJCWludGVsX2VuY29kZXItPmNydGNfbWFzayA9PQorCQkJ CSgxIDw8IFBJUEVfQSkgPyBQSVBFX0EgOiBQSVBFX0IpOwogCXJldHVybjsKIAogZXJyOgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NhYmMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMmE3ODMyNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RzaV9jYWJjLmMKQEAgLTAsMCArMSwzNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkg MjAwNi0yMDEwIEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwK KyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0 CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUg SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT UyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1Mg SU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cisj aW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNp bmNsdWRlICJpbnRlbF9kc2kuaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImlu dGVsX2RzaV9jYWJjLmgiCisjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CisjaW5jbHVk ZSA8ZHJtL2RybV9taXBpX2RzaS5oPgorCitpbnQgY2FiY19zZXR1cF9iYWNrbGlnaHQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQllbnVtIHBpcGUgdW51c2VkKQoreworCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2OworCXN0cnVjdCBpbnRl bF9kc2kgKmludGVsX2RzaSA9IE5VTEw7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVMTDsK KwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7CisJc3RydWN0IGludGVsX3Bh bmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2Ug KmRzaV9kZXZpY2U7CisJdTggbGV2ZWw7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICZk ZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkgeworCQlmb3JfZWFjaF9lbmNvZGVyX29u X2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKSB7CisJCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRF TF9PVVRQVVRfRFNJKQorCQkJCWludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXIt PmJhc2UpOworCQl9CisJfQorCWRzaV9kZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1swXS0+ ZGV2aWNlOworCXBhbmVsLT5iYWNrbGlnaHQubWF4ID0gQ0FCQ19NQVhfVkFMVUU7CisJcGFuZWwt PmJhY2tsaWdodC5sZXZlbCA9IENBQkNfTUFYX1ZBTFVFOworCWxldmVsID0gQ0FCQ19NQVhfVkFM VUU7CisJcGFuZWwtPmJhY2tsaWdodC5lbmFibGVkID0gdHJ1ZTsKKwlyZXR1cm4gMDsKK30KKwor dTMyIGNhYmNfZ2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip Cit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7CisJc3Ry dWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gTlVMTDsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSBOVUxMOworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gTlVMTDsKKwlzdHJ1Y3Qg bWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOworCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwg PSAmY29ubmVjdG9yLT5wYW5lbDsKKwl1OCBkYXRhWzJdID0gezB9OworCWVudW0gcG9ydCBwb3J0 ID0gUE9SVF9BOworCXUzMiByZXQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICZkZXYt Pm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkgeworCQlmb3JfZWFjaF9lbmNvZGVyX29uX2Ny dGMoZGV2LCBjcnRjLCBlbmNvZGVyKSB7CisJCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9P VVRQVVRfRFNJKQorCQkJCWludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJh c2UpOworCQl9CisJfQorCWlmIChpbnRlbF9kc2ktPmR1YWxfbGluaykgeworCQlpZiAoaW50ZWxf ZHNpLT5kbF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0EgfHwKKwkJCQlpbnRlbF9kc2ktPmRsX2Nh YmNfcG9ydCA9PSBDQUJDX1BPUlRfQV9BTkRfQykKKwkJCXBvcnQgPSBQT1JUX0E7CisJCWVsc2Ug aWYgKGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09IENBQkNfUE9SVF9DKQorCQkJcG9ydCA9IFBP UlRfQzsKKwl9CisKKwlkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRl dmljZTsKKwltaXBpX2RzaV9kY3NfcmVhZChkc2lfZGV2aWNlLCBNSVBJX0RDU19DQUJDX0xFVkVM X1JELCBkYXRhLCAyKTsKKworCXJldCA9IChkYXRhWzFdICogcGFuZWwtPmJhY2tsaWdodC5tYXgp IC8gMjU1OworCXJldHVybiByZXQ7Cit9CisKK3ZvaWQgY2FiY19zZXRfYmFja2xpZ2h0KHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIGxldmVsKQoreworCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2OworCXN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSA9IE5VTEw7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVMTDsKKwlzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7CisJc3RydWN0IG1pcGlfZHNpX2RldmljZSAq ZHNpX2RldmljZTsKKwl1OCBkYXRhWzJdID0gezB9OworCWVudW0gcG9ydCBwb3J0ID0gUE9SVF9B OworCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKKwl1OCBj b3VudCA9IDE7CisJdTMyIGh3X2xldmVsOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAm ZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKKwkJZm9yX2VhY2hfZW5jb2Rlcl9v bl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikgeworCQkJaWYgKGVuY29kZXItPnR5cGUgPT0gSU5U RUxfT1VUUFVUX0RTSSkKKwkJCQlpbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVy LT5iYXNlKTsKKwkJfQorCX0KKworCWlmIChpbnRlbF9kc2ktPmR1YWxfbGluaykgeworCQlpZiAo aW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0EpCisJCQlwb3J0ID0gUE9SVF9B OworCQllbHNlIGlmIChpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BPUlRfQykKKwkJ CXBvcnQgPSBQT1JUX0M7CisJCWVsc2UgaWYgKGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09IENB QkNfUE9SVF9BX0FORF9DKQorCQkJcG9ydCA9IFBPUlRfQTsKKwl9CisKKwlpZiAoaW50ZWxfZHNp LT5kdWFsX2xpbmsgJiYgaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0KKwkJCUNBQkNfUE9SVF9B X0FORF9DKQorCQljb3VudCA9IDI7CisKKworCWh3X2xldmVsID0gbGV2ZWwgJSAocGFuZWwtPmJh Y2tsaWdodC5tYXggKyAxKTsKKwlod19sZXZlbCA9IChod19sZXZlbCAqIDI1NSkgLyBwYW5lbC0+ YmFja2xpZ2h0Lm1heDsKKwlwYW5lbC0+YmFja2xpZ2h0LmxldmVsID0gaHdfbGV2ZWw7CisKKwlk byB7CisJCWRzaV9kZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2aWNlOwor CQlkYXRhWzFdID0gaHdfbGV2ZWw7CisJCWRhdGFbMF0gPSBNSVBJX0RDU19DQUJDX0xFVkVMX1dS OworCQltaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKGRzaV9kZXZpY2UsIGRhdGEsIDIpOworCQlp ZiAoY291bnQgPT0gMikKKwkJCXBvcnQgPSBQT1JUX0M7CisJfSB3aGlsZSAoLS1jb3VudCA+IDAp OworfQorCit2b2lkIGNhYmNfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFz ZS5kZXY7CisJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gTlVMTDsKKwlzdHJ1Y3QgZHJt X2NydGMgKmNydGMgPSBOVUxMOworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gTlVM TDsKKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7CisJc3Ry dWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsKKwllbnVtIHBvcnQgcG9ydCA9IFBPUlRf QTsKKwl1OCBkYXRhWzJdID0gezB9OworCXU4IGNvdW50ID0gMTsKKworCWxpc3RfZm9yX2VhY2hf ZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7CisJCWZvcl9l YWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKKwkJCWlmIChlbmNvZGVy LT50eXBlID09IElOVEVMX09VVFBVVF9EU0kpCisJCQkJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVs X2RzaSgmZW5jb2Rlci0+YmFzZSk7CisJCX0KKwl9CisKKwlpZiAoaW50ZWxfZHNpLT5kdWFsX2xp bmspIHsKKwkJaWYgKGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09IENBQkNfUE9SVF9BKQorCQkJ cG9ydCA9IFBPUlRfQTsKKwkJZWxzZSBpZiAoaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0gQ0FC Q19QT1JUX0MpCisJCQlwb3J0ID0gUE9SVF9DOworCQllbHNlIGlmIChpbnRlbF9kc2ktPmRsX2Nh YmNfcG9ydCA9PSBDQUJDX1BPUlRfQV9BTkRfQykKKwkJCXBvcnQgPSBQT1JUX0E7CisJfQorCisJ aWYgKGludGVsX2RzaS0+ZHVhbF9saW5rICYmIGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09CisJ CQlDQUJDX1BPUlRfQV9BTkRfQykKKwkJY291bnQgPSAyOworCisJZG8geworCQlkc2lfZGV2aWNl ID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsKKworCisJCWRhdGFbMF0gPSBN SVBJX0RDU19DQUJDX0NPTlRST0xfQlJJR0hUX1dSOworCQlkYXRhWzFdID0gQ0FCQ19CQUNLTElH SFQgfCBDQUJDX0RJTU1JTkdfRElTUExBWSB8IENBQkNfQkNUUkw7CisJCW1pcGlfZHNpX2Rjc193 cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7CisJCWRhdGFbMF0gPSBNSVBJX0RDU19D QUJDX0NPTlRST0xfV1I7CisJCWRhdGFbMV0gPSBDQUJDX1ZJREVPX01PREU7CisJCW1pcGlfZHNp X2Rjc193cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7CisKKwkJaWYgKGNvdW50ID09 IDIpCisJCQlwb3J0ID0gUE9SVF9DOworCX0gd2hpbGUgKC0tY291bnQgPiAwKTsKKworCWNhYmNf c2V0X2JhY2tsaWdodChjb25uZWN0b3IsIHBhbmVsLT5iYWNrbGlnaHQubGV2ZWwpOworfQorCit2 b2lkIGNhYmNfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owor CXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IE5VTEw7CisJc3RydWN0IGRybV9jcnRjICpj cnRjID0gTlVMTDsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7CisJc3Ry dWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsKKwllbnVtIHBvcnQgcG9ydCA9IFBPUlRf QTsKKwl1OCBkYXRhWzJdID0gezB9OworCXU4IGNvdW50ID0gMTsKKworCWxpc3RfZm9yX2VhY2hf ZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7CisJCWZvcl9l YWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKKwkJCWlmIChlbmNvZGVy LT50eXBlID09IElOVEVMX09VVFBVVF9EU0kpCisJCQkJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVs X2RzaSgmZW5jb2Rlci0+YmFzZSk7CisJCX0KKwl9CisKKwlpZiAoaW50ZWxfZHNpLT5kdWFsX2xp bmspIHsKKwkJaWYgKGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09IENBQkNfUE9SVF9BKQorCQkJ cG9ydCA9IFBPUlRfQTsKKwkJZWxzZSBpZiAoaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0gQ0FC Q19QT1JUX0MpCisJCQlwb3J0ID0gUE9SVF9DOworCQllbHNlIGlmIChpbnRlbF9kc2ktPmRsX2Nh YmNfcG9ydCA9PSBDQUJDX1BPUlRfQV9BTkRfQykKKwkJCXBvcnQgPSBQT1JUX0E7CisJfQorCisJ aWYgKGludGVsX2RzaS0+ZHVhbF9saW5rICYmIGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09CisJ CQlDQUJDX1BPUlRfQV9BTkRfQykKKwkJY291bnQgPSAyOworCisJZG8geworCQlkc2lfZGV2aWNl ID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsKKworCQljYWJjX3NldF9iYWNr bGlnaHQoY29ubmVjdG9yLCAwKTsKKwkJZGF0YVsxXSA9IENBQkNfT0ZGOworCQlkYXRhWzBdID0g TUlQSV9EQ1NfQ0FCQ19DT05UUk9MX1dSOworCQltaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKGRz aV9kZXZpY2UsIGRhdGEsIDIpOworCQlkYXRhWzBdID0gTUlQSV9EQ1NfQ0FCQ19DT05UUk9MX0JS SUdIVF9XUjsKKwkJbWlwaV9kc2lfZGNzX3dyaXRlX2J1ZmZlcihkc2lfZGV2aWNlLCBkYXRhLCAy KTsKKworCQlpZiAoY291bnQgPT0gMikKKwkJCXBvcnQgPSBQT1JUX0M7CisJfSB3aGlsZSAoLS1j b3VudCA+IDApOworfQorCitzdGF0aWMgaW50IGNhYmNfYmFja2xpZ2h0X2RldmljZV91cGRhdGVf c3RhdHVzKHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpiZCkKK3sKKwlzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IgPSBibF9nZXRfZGF0YShiZCk7CisJc3RydWN0IGludGVsX3BhbmVs ICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj b25uZWN0b3ItPmJhc2UuZGV2OworCisJZHJtX21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZp Zy5jb25uZWN0aW9uX211dGV4LCBOVUxMKTsKKwlEUk1fREVCVUdfS01TKCJ1cGRhdGluZyBpbnRl bF9iYWNrbGlnaHQsIGJyaWdodG5lc3M9JWQvJWRcbiIsCisJCQliZC0+cHJvcHMuYnJpZ2h0bmVz cywgYmQtPnByb3BzLm1heF9icmlnaHRuZXNzKTsKKwljYWJjX3NldF9iYWNrbGlnaHQoY29ubmVj dG9yLCBiZC0+cHJvcHMuYnJpZ2h0bmVzcyk7CisKKwkvKgorCSAqIEFsbG93IGZsaXBwaW5nIGJs X3Bvd2VyIGFzIGEgc3ViLXN0YXRlIG9mIGVuYWJsZWQuIFNhZGx5IHRoZQorCSAqIGJhY2tsaWdo dCBjbGFzcyBkZXZpY2UgZG9lcyBub3QgbWFrZSBpdCBlYXN5IHRvIHRvIGRpZmZlcmVudGlhdGUK KwkgKiBiZXR3ZWVuIGNhbGxiYWNrcyBmb3IgYnJpZ2h0bmVzcyBhbmQgYmxfcG93ZXIsIHNvIG91 ciBiYWNrbGlnaHRfcG93ZXIKKwkgKiBjYWxsYmFjayBuZWVkcyB0byB0YWtlIHRoaXMgaW50byBh Y2NvdW50LgorCSAqLworCWlmIChwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZWQpIHsKKwkJaWYgKHBh bmVsLT5iYWNrbGlnaHRfcG93ZXIpIHsKKwkJCWJvb2wgZW5hYmxlID0gYmQtPnByb3BzLnBvd2Vy ID09IEZCX0JMQU5LX1VOQkxBTksgJiYKKwkJCQliZC0+cHJvcHMuYnJpZ2h0bmVzcyAhPSAwOwor CQkJcGFuZWwtPmJhY2tsaWdodF9wb3dlcihjb25uZWN0b3IsIGVuYWJsZSk7CisJCX0KKwl9IGVs c2UgeworCQliZC0+cHJvcHMucG93ZXIgPSBGQl9CTEFOS19QT1dFUkRPV047CisJfQorCisJZHJt X21vZGVzZXRfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOworCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50IGNhYmNfYmFja2xpZ2h0X2RldmljZV9nZXRfYnJpZ2h0 bmVzcyhzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmQpCit7CisJc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yID0gYmxfZ2V0X2RhdGEoYmQpOworCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJaW50IHJldDsKKworCWludGVsX3J1bnRpbWVfcG1f Z2V0KGRldl9wcml2KTsKKwlkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5l Y3Rpb25fbXV0ZXgsIE5VTEwpOworCisJcmV0ID0gY2FiY19nZXRfYmFja2xpZ2h0KGNvbm5lY3Rv cik7CisKKwlkcm1fbW9kZXNldF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9t dXRleCk7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOworCisJcmV0dXJuIHJldDsK K30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBiYWNrbGlnaHRfb3BzIGNhYmNfYmFja2xpZ2h0X2Rl dmljZV9vcHMgPSB7CisJLnVwZGF0ZV9zdGF0dXMgPSBjYWJjX2JhY2tsaWdodF9kZXZpY2VfdXBk YXRlX3N0YXR1cywKKwkuZ2V0X2JyaWdodG5lc3MgPSBjYWJjX2JhY2tsaWdodF9kZXZpY2VfZ2V0 X2JyaWdodG5lc3MsCit9OworCitpbnQgY2FiY19iYWNrbGlnaHRfZGV2aWNlX3JlZ2lzdGVyKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfcGFuZWwg KnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7CisJc3RydWN0IGJhY2tsaWdodF9wcm9wZXJ0aWVz IHByb3BzOworCisJaWYgKFdBUk5fT04ocGFuZWwtPmJhY2tsaWdodC5kZXZpY2UpKQorCQlyZXR1 cm4gLUVOT0RFVjsKKworCWlmICghcGFuZWwtPmJhY2tsaWdodC5wcmVzZW50KQorCQlyZXR1cm4g MDsKKworCVdBUk5fT04ocGFuZWwtPmJhY2tsaWdodC5tYXggPT0gMCk7CisKKwltZW1zZXQoJnBy b3BzLCAwLCBzaXplb2YocHJvcHMpKTsKKwlwcm9wcy50eXBlID0gQkFDS0xJR0hUX0ZJUk1XQVJF OworCisJLyoKKwkgKiBOb3RlOiBFdmVyeXRoaW5nIHNob3VsZCB3b3JrIGV2ZW4gaWYgdGhlIGJh Y2tsaWdodCBkZXZpY2UgbWF4CisJICogcHJlc2VudGVkIHRvIHRoZSB1c2Vyc3BhY2UgaXMgYXJi aXRyYXJpbHkgY2hvc2VuLgorCSAqLworCXByb3BzLm1heF9icmlnaHRuZXNzID0gcGFuZWwtPmJh Y2tsaWdodC5tYXg7CisJcHJvcHMuYnJpZ2h0bmVzcyA9IHByb3BzLm1heF9icmlnaHRuZXNzOwor CisJaWYgKHBhbmVsLT5iYWNrbGlnaHQuZW5hYmxlZCkKKwkJcHJvcHMucG93ZXIgPSBGQl9CTEFO S19VTkJMQU5LOworCWVsc2UKKwkJcHJvcHMucG93ZXIgPSBGQl9CTEFOS19QT1dFUkRPV047CisK KwkvKgorCSAqIE5vdGU6IHVzaW5nIHRoZSBzYW1lIG5hbWUgaW5kZXBlbmRlbnQgb2YgdGhlIGNv bm5lY3RvciBwcmV2ZW50cworCSAqIHJlZ2lzdHJhdGlvbiBvZiBtdWx0aXBsZSBiYWNrbGlnaHQg ZGV2aWNlcyBpbiB0aGUgZHJpdmVyLgorCSAqLworCXBhbmVsLT5iYWNrbGlnaHQuZGV2aWNlID0K KwkJYmFja2xpZ2h0X2RldmljZV9yZWdpc3RlcigiaW50ZWxfYmFja2xpZ2h0IiwKKwkJCQljb25u ZWN0b3ItPmJhc2Uua2RldiwKKwkJCQljb25uZWN0b3IsCisJCQkJJmNhYmNfYmFja2xpZ2h0X2Rl dmljZV9vcHMsICZwcm9wcyk7CisKKwlpZiAoSVNfRVJSKHBhbmVsLT5iYWNrbGlnaHQuZGV2aWNl KSkgeworCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZWdpc3RlciBiYWNrbGlnaHQ6ICVsZFxuIiwK KwkJCQlQVFJfRVJSKHBhbmVsLT5iYWNrbGlnaHQuZGV2aWNlKSk7CisJCXBhbmVsLT5iYWNrbGln aHQuZGV2aWNlID0gTlVMTDsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJRFJNX0RFQlVHX0tN UygiQ29ubmVjdG9yICVzIGJhY2tsaWdodCBzeXNmcyBpbnRlcmZhY2UgcmVnaXN0ZXJlZFxuIiwK KwkJCWNvbm5lY3Rvci0+YmFzZS5uYW1lKTsKKworCXJldHVybiAwOworfQorCit2b2lkIGNhYmNf YmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7 CisKKwlpZiAocGFuZWwtPmJhY2tsaWdodC5kZXZpY2UpIHsKKwkJYmFja2xpZ2h0X2RldmljZV91 bnJlZ2lzdGVyKHBhbmVsLT5iYWNrbGlnaHQuZGV2aWNlKTsKKwkJcGFuZWwtPmJhY2tsaWdodC5k ZXZpY2UgPSBOVUxMOworCX0KK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaV9jYWJjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkMTM0ZjUKLS0tIC9kZXYvbnVsbAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5oCkBAIC0wLDAgKzEsNDUg QEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxMyBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgor ICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgor ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug KGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBh bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisg KgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg T0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5U IFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig T1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworZXh0ZXJuIGlu dCBjYWJjX2JhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yKTsKK2V4dGVybiB2b2lkIGNhYmNfYmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVy KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cit2b2lkIGNhYmNfc2V0X2JhY2ts aWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCk7Cit1MzIg Y2FiY19nZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cit2 b2lkIGNhYmNfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpOwordm9pZCBjYWJjX2Rpc2FibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3Rvcik7CitpbnQgY2FiY19zZXR1cF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yLCBlbnVtIHBpcGUgdW51c2VkKTsKKworI2RlZmluZSBDQUJDX09GRiAg ICAgICAgICAgICAgICAgICAgICAgKDAgPDwgMCkKKyNkZWZpbmUgQ0FCQ19VU0VSX0lOVEVSRkFD RV9JTUFHRSAgICAgICgxIDw8IDApCisjZGVmaW5lIENBQkNfU1RJTExfUElDVFVSRSAgICAgICAg ICAgICAoMiA8PCAwKQorI2RlZmluZSBDQUJDX1ZJREVPX01PREUgICAgICAgICAgICAgICAgICAg ICAgICAoMyA8PCAwKQorCisjZGVmaW5lIENBQkNfQkFDS0xJR0hUICAgICAgICAgICAgICAgICAo MSA8PCAyKQorI2RlZmluZSBDQUJDX0RJTU1JTkdfRElTUExBWSAgICAgICAgICAgKDEgPDwgMykK KyNkZWZpbmUgQ0FCQ19CQ1RSTCAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCisKKyNkZWZp bmUgQ0FCQ19QT1JUX0EgICAgICAgICAgICAgICAgICAgIDB4MDAKKyNkZWZpbmUgQ0FCQ19QT1JU X0MgICAgICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgQ0FCQ19QT1JUX0FfQU5EX0MgICAg ICAgICAgICAgIDB4MDIKKyNkZWZpbmUgQ0FCQ19NQVhfVkFMVUUJCSAgICAgICAweGZmCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwppbmRleCA1NWFhZDIzLi5jNzM0NDliIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BhbmVsLmMKQEAgLTE1MDIsMTUgKzE1MDIsMjkgQEAgdm9pZCBpbnRlbF9w YW5lbF9maW5pKHN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwpCiB2b2lkIGludGVsX2JhY2tsaWdo dF9yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYt Pm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBiYXNlLmhlYWQpCi0JCWludGVsX2JhY2tsaWdo dF9kZXZpY2VfcmVnaXN0ZXIoY29ubmVjdG9yKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5l Y3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsCisJCQkJCWJhc2UuaGVhZCkg eworCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9EU0kgJiYK KwkJCWRldl9wcml2LT52YnQuZHNpLmNvbmZpZy0+Y2FiY19zdXBwb3J0ZWQpCisJCQljYWJjX2Jh Y2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoY29ubmVjdG9yKTsKKwkJZWxzZQorCQkJaW50ZWxfYmFj a2xpZ2h0X2RldmljZV9yZWdpc3Rlcihjb25uZWN0b3IpOworCX0KIH0KIAogdm9pZCBpbnRlbF9i YWNrbGlnaHRfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0 b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBiYXNlLmhlYWQpCi0JCWludGVs X2JhY2tsaWdodF9kZXZpY2VfdW5yZWdpc3Rlcihjb25uZWN0b3IpOworCWxpc3RfZm9yX2VhY2hf ZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwKKwkJCQkJ YmFzZS5oZWFkKSB7CisJCWlmIChjb25uZWN0b3ItPmVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VU UFVUX0RTSSAmJgorCQkJZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5jYWJjX3N1cHBvcnRlZCkK KwkJCWNhYmNfYmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7CisJCWVsc2UK KwkJCWludGVsX2JhY2tsaWdodF9kZXZpY2VfdW5yZWdpc3Rlcihjb25uZWN0b3IpOworCX0KIH0K ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmlkZW8vbWlwaV9kaXNwbGF5LmggYi9pbmNsdWRlL3ZpZGVv L21pcGlfZGlzcGxheS5oCmluZGV4IGRkY2M4Y2EuLjViOGVlZWMgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvdmlkZW8vbWlwaV9kaXNwbGF5LmgKKysrIGIvaW5jbHVkZS92aWRlby9taXBpX2Rpc3BsYXku aApAQCAtMTE3LDYgKzExNywxNCBAQCBlbnVtIHsKIAlNSVBJX0RDU19HRVRfU0NBTkxJTkUJCT0g MHg0NSwKIAlNSVBJX0RDU19SRUFEX0REQl9TVEFSVAkJPSAweEExLAogCU1JUElfRENTX1JFQURf RERCX0NPTlRJTlVFCT0gMHhBOCwKKwlNSVBJX0RDU19DQUJDX0xFVkVMX1JEICAgICAgICAgID0g MHg1MiwKKwlNSVBJX0RDU19DQUJDX01JTl9CUklHSFRORVNTX1JEID0gMHg1RiwKKwlNSVBJX0RD U19DQUJDX0NPTlRST0xfUkQgICAgICAgID0gMHg1NiwKKwlNSVBJX0RDU19DQUJDX0NPTlRST0xf QlJJR0hUX1JEID0gMHg1NCwKKwlNSVBJX0RDU19DQUJDX0xFVkVMX1dSICAgICAgICAgID0gMHg1 MSwKKwlNSVBJX0RDU19DQUJDX01JTl9CUklHSFRORVNTX1dSID0gMHg1RSwKKwlNSVBJX0RDU19D QUJDX0NPTlRST0xfV1IgICAgICAgID0gMHg1NSwKKwlNSVBJX0RDU19DQUJDX0NPTlRST0xfQlJJ R0hUX1dSID0gMHg1MywKIH07CiAKIC8qIE1JUEkgRENTIHBpeGVsIGZvcm1hdHMgKi8KLS0gCjEu Ny45LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==