From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak M Subject: [PATCH 4/5] drm/i915: Add DCS control for Panel PWM Date: Tue, 29 Mar 2016 20:13:20 +0530 Message-ID: <1459262601-20132-4-git-send-email-m.deepak@intel.com> References: <1459262601-20132-1-git-send-email-m.deepak@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 ESMTP id 46FDD89711 for ; Tue, 29 Mar 2016 14:43:52 +0000 (UTC) In-Reply-To: <1459262601-20132-1-git-send-email-m.deepak@intel.com> 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 , Jani Nikula , Yetunde Adebisi , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org SWYgdGhlIHNvdXJjZSBvZiB0aGUgYmFja2xpZ2h0IFBXTSBpcyBmcm9tIHRoZQpwYW5lbCB0aGVu IHRoZSBQV00gY2FuIGJlIGNvbnRyb2xsZWQgYnkgRENTCmNvbW1hbmQsIHRoaXMgcGF0Y2ggYWRk cyB0aGUgc3VwcG9ydCB0bwplbmFibGUvZGlzYmFsZSBwYW5lbCBQV00sIGNvbnRyb2wgYmFja2xp Z2h0IGxldmVsCmV0Yy4uLgoKdjI6IE1vdmluZyB0aGUgQ0FCQyBia2wgZnVuY3Rpb25zIHRvIG5l dyBmaWxlLihKYW5pKQoKdjM6IFJlYmFzZQoKdjQ6IFJlYmFzZQoKdjU6IFVzZSBtaXBpX2RzaV9k Y3Nfd3JpdGUoKSBpbnN0ZWFkIG9mIG1pcGlfZHNpX2Rjc193cml0ZV9idWZmZXIoKSAoSmFuaSkK ICAgIE1vdmUgRENTIG1hY3JvYHMgdG8gaW5jbHVkZS92aWRlby9taXBpX2Rpc3BsYXkuaCAoSmFu aSkKCnY2OiBSZW5hbWUgdGhlIGZpbGUgdG8gaW50ZWxfZHNpX2Rjc19iYWNrbGlnaHQuYwogICAg UmVtb3ZpbmcgdGhlIENBQkMgb3BlcmF0aW9ucwoKQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3Vs YUBpbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4K Q2M6IFlldHVuZGUgQWRlYmlzaSA8eWV0dW5kZXguYWRlYmlzaUBpbnRlbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERlZXBhayBNIDxtLmRlZXBha0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oICAgICAgICAgICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHNpLmMgICAgICAgICAgICAgICB8ICAyNCArKystCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2kuaCAgICAgICAgICAgICAgIHwgICA0ICsKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RzaV9kY3NfYmFja2xpZ2h0LmMgfCAxNjAgKysrKysrKysrKysrKysrKysrKysr KysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyAgICAgICAgICAgICB8ICAg NCArCiA3IGZpbGVzIGNoYW5nZWQsIDE5MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9kY3NfYmFj a2xpZ2h0LmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IDdmZmI1MWIuLjNmNmEzY2YgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L01ha2VmaWxlCkBAIC04Myw2ICs4Myw3IEBAIGk5MTUteSArPSBkdm9fY2g3MDE3Lm8g XAogCSAgaW50ZWxfZHBfbXN0Lm8gXAogCSAgaW50ZWxfZHAubyBcCiAJICBpbnRlbF9kc2kubyBc CisJICBpbnRlbF9kc2lfZGNzX2JhY2tsaWdodC5vIFwKIAkgIGludGVsX2RzaV9wYW5lbF92YnQu byBcCiAJICBpbnRlbF9kc2lfcGxsLm8gXAogCSAgaW50ZWxfZHZvLm8gXApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKaW5kZXggMzAzMjFlNi4uN2Q2MTE4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CkBAIC0zNDkxLDcgKzM0OTEsNiBAQCB2b2lkIGludGVsX3NiaV93cml0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUxNiByZWcsIHUzMiB2YWx1ZSwKIAkJICAgICBlbnVtIGlu dGVsX3NiaV9kZXN0aW5hdGlvbiBkZXN0aW5hdGlvbik7CiB1MzIgdmx2X2ZsaXNkc2lfcmVhZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiByZWcpOwogdm9pZCB2bHZfZmxp c2RzaV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiByZWcsIHUz MiB2YWwpOwotCiBpbnQgaW50ZWxfZ3B1X2ZyZXEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBpbnQgdmFsKTsKIGludCBpbnRlbF9mcmVxX29wY29kZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmlu ZGV4IDAyYTc0YjAuLjA2MDNjOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xMzMw LDYgKzEzMzAsOCBAQCB2b2lkIGludGVsX2RwX21zdF9lbmNvZGVyX2NsZWFudXAoc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpOwogLyogaW50ZWxfZHNpLmMgKi8KIHZv aWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKKy8qIGludGVsX2Rz aV9wYW5lbF9wd20uYyAqLworaW50IGludGVsX2RzaV9wYW5lbF9wd21faW5pdF9iYWNrbGlnaHRf ZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKTsKIAogLyogaW50 ZWxfZHZvLmMgKi8KIHZvaWQgaW50ZWxfZHZvX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCmluZGV4IDQ1NjY3NmMuLjFiYTc1N2EgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RzaS5jCkBAIC0xMjA5LDEwICsxMjA5LDMwIEBAIHZvaWQgaW50ZWxfZHNp X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAllbHNlCiAJCWludGVsX2VuY29kZXItPmNy dGNfbWFzayA9IEJJVChQSVBFX0IpOwogCi0JaWYgKGRldl9wcml2LT52YnQuZHNpLmNvbmZpZy0+ ZHVhbF9saW5rKQorCWlmIChkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWctPmR1YWxfbGluaykgewog CQlpbnRlbF9kc2ktPnBvcnRzID0gQklUKFBPUlRfQSkgfCBCSVQoUE9SVF9DKTsKLQllbHNlCisK KwkJLyoKKwkJICogQmFzZWQgb24gdGhlIFZCVCB2YWx1ZSBhc3NpZ24gdGhlIHBvcnRzIG9uCisJ CSAqIHdoaWNoIFBhbmVsIFBXTSBPbi9PRkYgRENTIGNvb21hbmRzIG5lZWRzIHRvIGJlIHNlbnQK KwkJICovCisJCXN3aXRjaCAoZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5kbF9wYW5lbF9wd21f cG9ydHMpIHsKKwkJY2FzZSBQQU5FTF9QV01fUE9SVF9BOgorCQkJaW50ZWxfZHNpLT5wYW5lbF9w d21fZGNzX3BvcnRzID0gQklUKFBPUlRfQSk7CisJCQlicmVhazsKKwkJY2FzZSBQQU5FTF9QV01f UE9SVF9DOgorCQkJaW50ZWxfZHNpLT5wYW5lbF9wd21fZGNzX3BvcnRzID0gQklUKFBPUlRfQyk7 CisJCQlicmVhazsKKwkJY2FzZSBQQU5FTF9QV01fUE9SVF9BX0FORF9DOgorCQkJaW50ZWxfZHNp LT5wYW5lbF9wd21fZGNzX3BvcnRzID0gQklUKFBPUlRfQSkgfCBCSVQoUE9SVF9DKTsKKwkJCWJy ZWFrOworCQlkZWZhdWx0OgorCQkJaW50ZWxfZHNpLT5wYW5lbF9wd21fZGNzX3BvcnRzID0gQklU KFBPUlRfQSkgfCBCSVQoUE9SVF9DKTsKKwkJfQorCX0gZWxzZSB7CiAJCWludGVsX2RzaS0+cG9y dHMgPSBCSVQocG9ydCk7CisJCWludGVsX2RzaS0+cGFuZWxfcHdtX2Rjc19wb3J0cyA9IEJJVChw b3J0KTsKKwl9CiAKIAkvKiBDcmVhdGUgYSBEU0kgaG9zdCAoYW5kIGEgZGV2aWNlKSBmb3IgZWFj aCBwb3J0LiAqLwogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKaW5kZXggZjU0NzQ4ZC4uZGNkMjI2NSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHNpLmgKQEAgLTM0LDYgKzM0LDEwIEBACiAjZGVmaW5lIERTSV9EVUFMX0xJ TktfRlJPTlRfQkFDSwkxCiAjZGVmaW5lIERTSV9EVUFMX0xJTktfUElYRUxfQUxUCQkyCiAKKyNk ZWZpbmUgUEFORUxfUFdNX1BPUlRfQQkJMHgwMAorI2RlZmluZSBQQU5FTF9QV01fUE9SVF9DCQkw eDAxCisjZGVmaW5lIFBBTkVMX1BXTV9QT1JUX0FfQU5EX0MJCTB4MDIKKwogc3RydWN0IGludGVs X2RzaV9ob3N0OwogCiBzdHJ1Y3QgaW50ZWxfZHNpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RzaV9kY3NfYmFja2xpZ2h0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2lfZGNzX2JhY2tsaWdodC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjRkN2YwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2lfZGNzX2JhY2tsaWdodC5jCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICogQ29weXJp Z2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVi eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICog Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg KHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVz dHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8g dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl LAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1 YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5l eHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJz dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBS RVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFV VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFH RVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5H UyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yOiBEZWVwYWsgTSA8bS5kZWVwYWsgYXQg aW50ZWwuY29tPgorICovCisKKyNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRl bF9kc2kuaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlz cGxheS5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KKworI2RlZmluZSBQQU5FTF9Q V01fQktMX0VOCQkoMSA8PCAyKQorI2RlZmluZSBQQU5FTF9QV01fRElTUF9ESU1NSU5HCQkoMSA8 PCAzKQorI2RlZmluZSBQQU5FTF9QV01fQkNUUkwJCQkoMSA8PCA1KQorCisjZGVmaW5lIFBBTkVM X1BXTV9NQVhfVkFMVUUJCTB4RkYKKworc3RhdGljIHUzMiBwYW5lbF9wd21fZ2V0X2JhY2tsaWdo dChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7CisJc3RydWN0IGludGVsX2RzaSAq aW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CisJc3RydWN0IG1p cGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsKKwl1OCBkYXRhOworCWVudW0gcG9ydCBwb3J0Owor CisJLyogRklYTUUgTmVlZCB0byB0YWtlIGNhcmUgb2YgMTYgYml0IGJyaWdodG5lc3MgbGV2ZWwg Ki8KKwkvKgorCSAqIFNlbmRpbmcgdGhlIERDUyBjb21tYW5kcyB0byB0aGUgcG9ydHMgdG8gd2hp Y2ggUGFuZWwgUFdNCisJICogT24vT2ZmIGNvbW1hbmRzIHdlcmUgc2VuZAorCSAqLworCWZvcl9l YWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cGFuZWxfcHdtX2Rjc19wb3J0cykgeworCQlk c2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsKKwkJbWlwaV9k c2lfZGNzX3JlYWQoZHNpX2RldmljZSwgTUlQSV9EQ1NfR0VUX0RJU1BMQVlfQlJJR0hUTkVTUywK KwkJCQkJJmRhdGEsIHNpemVvZihkYXRhKSk7CisJCWJyZWFrOworCX0KKworCXJldHVybiBkYXRh OworfQorCitzdGF0aWMgdm9pZCBwYW5lbF9wd21fc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRl bF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKKwlzdHJ1Y3QgbWlwaV9k c2lfZGV2aWNlICpkc2lfZGV2aWNlOworCXU4IGRhdGE7CisJZW51bSBwb3J0IHBvcnQ7CisKKwkv KiBGSVhNRSBOZWVkIHRvIHRha2UgY2FyZSBvZiAxNiBiaXQgYnJpZ2h0bmVzcyBsZXZlbCAqLwor CS8qCisJICogU2VuZGluZyB0aGUgRENTIGNvbW1hbmRzIHRvIHRoZSBwb3J0cyB0byB3aGljaCBQ YW5lbCBQV00KKwkgKiBPbi9PZmYgY29tbWFuZHMgd2VyZSBzZW5kCisJICovCisJZm9yX2VhY2hf ZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wYW5lbF9wd21fZGNzX3BvcnRzKSB7CisJCWRzaV9k ZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2aWNlOworCQlkYXRhID0gbGV2 ZWw7CisJCW1pcGlfZHNpX2Rjc193cml0ZShkc2lfZGV2aWNlLCBNSVBJX0RDU19TRVRfRElTUExB WV9CUklHSFRORVNTLAorCQkJCQkmZGF0YSwgc2l6ZW9mKGRhdGEpKTsKKwl9Cit9CisKK3N0YXRp YyB2b2lkIHBhbmVsX3B3bV9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpCit7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0 b3ItPmVuY29kZXI7CisJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVs X2RzaSgmZW5jb2Rlci0+YmFzZSk7CisJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2Rldmlj ZTsKKwllbnVtIHBvcnQgcG9ydDsKKwl1OCBkYXRhOworCisJcGFuZWxfcHdtX3NldF9iYWNrbGln aHQoY29ubmVjdG9yLCAwKTsKKworCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+ cGFuZWxfcHdtX2Rjc19wb3J0cykgeworCQlkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9z dHNbcG9ydF0tPmRldmljZTsKKwkJZGF0YSAmPSB+UEFORUxfUFdNX0JLTF9FTjsgLyogVHVybiBP ZmYgQmFja2xpZ2h0ICovCisJCWRhdGEgJj0gflBBTkVMX1BXTV9ESVNQX0RJTU1JTkc7IC8qIERp c3BsYXkgRGltbWluZyBPZmYgKi8KKwkJZGF0YSAmPSB+UEFORUxfUFdNX0JDVFJMOyAvKiBCcmln aHRuZXNzIGNvbnRyb2wgQmxvY2sgT2ZmICovCisJCW1pcGlfZHNpX2Rjc193cml0ZShkc2lfZGV2 aWNlLCBNSVBJX0RDU19XUklURV9DT05UUk9MX0RJU1BMQVksCisJCQkJCSZkYXRhLCBzaXplb2Yo ZGF0YSkpOworCX0KK30KKworc3RhdGljIHZvaWQgcGFuZWxfcHdtX2VuYWJsZV9iYWNrbGlnaHQo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyID0gY29ubmVjdG9yLT5lbmNvZGVyOworCXN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOworCXN0cnVjdCBpbnRl bF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2 aWNlICpkc2lfZGV2aWNlOworCWVudW0gcG9ydCBwb3J0OworCXU4IGRhdGE7CisKKwlmb3JfZWFj aF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBhbmVsX3B3bV9kY3NfcG9ydHMpIHsKKwkJZHNp X2RldmljZSA9IGludGVsX2RzaS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7CisJCWRhdGEgPSBQ QU5FTF9QV01fQktMX0VOIC8qIFR1cm4gb24gYmFja2xpZ2h0ICovCisJCQl8IFBBTkVMX1BXTV9E SVNQX0RJTU1JTkcgLyogRGlzcGxheSBEaW1taW5nIE9uICovCisJCQl8IFBBTkVMX1BXTV9CQ1RS TDsgLyogQnJpZ2h0bmVzcyBjb250cm9sIEJsb2NrIE9uICovCisJCW1pcGlfZHNpX2Rjc193cml0 ZShkc2lfZGV2aWNlLCBNSVBJX0RDU19XUklURV9DT05UUk9MX0RJU1BMQVksCisJCQkJCSZkYXRh LCBzaXplb2YoZGF0YSkpOworCX0KKworCXBhbmVsX3B3bV9zZXRfYmFja2xpZ2h0KGNvbm5lY3Rv ciwgcGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7Cit9CisKK3N0YXRpYyBpbnQgcGFuZWxfcHdtX3Nl dHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCisJCWVudW0g cGlwZSB1bnVzZWQpCit7CisJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3It PnBhbmVsOworCisJcGFuZWwtPmJhY2tsaWdodC5tYXggPSBQQU5FTF9QV01fTUFYX1ZBTFVFOwor CS8qIEFzc2lnbmluZyB0aGUgTUFYIHZhbHVlIGR1cmluZyB0aGUgc2V0dXAgKi8KKwlwYW5lbC0+ YmFja2xpZ2h0LmxldmVsID0gUEFORUxfUFdNX01BWF9WQUxVRTsKKworCXJldHVybiAwOworfQor CitpbnQgaW50ZWxfZHNpX3BhbmVsX3B3bV9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGludGVsX2Nvbm5lY3Rvci0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciA9IGludGVsX2Nvbm5lY3Rvci0+ZW5jb2RlcjsKKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBh bmVsID0gJmludGVsX2Nvbm5lY3Rvci0+cGFuZWw7CisKKwkvKgorCSAqIENvbnRpbnVlIGluaXRh bGl6aW5nIG9ubHkgaWYgdGhlIFBXTSBzb3VyY2UgaXMKKwkgKiBmcm9tIHRoZSBwYW5lbAorCSAq LworCWlmIChkZXZfcHJpdi0+dmJ0LmJhY2tsaWdodC5wd21fcGluICE9CisJCQlCTENfQ09OVFJP TF9QSU5fUEFORUxfUFdNKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmIChXQVJOX09OKGVuY29k ZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0RTSSkpCisJCXJldHVybiAtRUlOVkFMOworCisJcGFu ZWwtPmJhY2tsaWdodC5zZXR1cCA9IHBhbmVsX3B3bV9zZXR1cF9iYWNrbGlnaHQ7CisJcGFuZWwt PmJhY2tsaWdodC5lbmFibGUgPSBwYW5lbF9wd21fZW5hYmxlX2JhY2tsaWdodDsKKwlwYW5lbC0+ YmFja2xpZ2h0LmRpc2FibGUgPSBwYW5lbF9wd21fZGlzYWJsZV9iYWNrbGlnaHQ7CisJcGFuZWwt PmJhY2tsaWdodC5zZXQgPSBwYW5lbF9wd21fc2V0X2JhY2tsaWdodDsKKwlwYW5lbC0+YmFja2xp Z2h0LmdldCA9IHBhbmVsX3B3bV9nZXRfYmFja2xpZ2h0OworCisJcmV0dXJuIDA7Cit9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwppbmRleCA4Yzg5OTZmLi40NmNhMmRlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BhbmVsLmMKQEAgLTE3MTgsNiArMTcxOCwxMCBAQCBpbnRlbF9wYW5lbF9p bml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsKQogCQljb250YWlu ZXJfb2YocGFuZWwsIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IsIHBhbmVsKTsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwog CisJaWYgKGNvbm5lY3Rvci0+YmFzZS5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNU T1JfRFNJICYmCisJCWludGVsX2RzaV9wYW5lbF9wd21faW5pdF9iYWNrbGlnaHRfZnVuY3MoY29u bmVjdG9yKSA9PSAwKQorCQlyZXR1cm47CisKIAlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsK IAkJcGFuZWwtPmJhY2tsaWdodC5zZXR1cCA9IGJ4dF9zZXR1cF9iYWNrbGlnaHQ7CiAJCXBhbmVs LT5iYWNrbGlnaHQuZW5hYmxlID0gYnh0X2VuYWJsZV9iYWNrbGlnaHQ7Ci0tIAoxLjkuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==