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: Mon, 28 Mar 2016 15:09:57 +0530 Message-ID: <1459157997-4447-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 7566C6E3AC for ; Mon, 28 Mar 2016 09:39:59 +0000 (UTC) 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 aSkKCnY2OiBSZW5hbWUgdGhlIGZpbGUgdG8gaW50ZWxfZHNpX3BhbmVsX3B3bS5jCiAgICBSZW1v dmluZyB0aGUgQ0FCQyBvcGVyYXRpb25zCgpDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGlu dGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgpDYzog WWV0dW5kZSBBZGViaXNpIDx5ZXR1bmRleC5hZGViaXNpQGludGVsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4KLS0tCgpTaG91bGQgdGhpcyBiZWxvdyBj aGVjayBiZSBtb3ZlZCB0byBpbnRlbF9wYW5lbC5jIGJlZm9yZSBjYWxsaW5nIHRoZQppbnRlbF9k c2lfcGFuZWxfcHdtX2luaXRfYmFja2xpZ2h0X2Z1bmNzKCkgPz8KICAgICAgCgkgaWYgKGRldl9w cml2LT52YnQuYmFja2xpZ2h0LnB3bV9waW4gPT0KICAgICAgICAgICAgICAgICAgICAgICBCTENf Q09OVFJPTF9QSU5fUEFORUxfUFdNKQoKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAg ICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAg ICAgICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAg IHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jICAgICAgICAgICB8ICAy NCArKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmggICAgICAgICAgIHwgICA0 ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF9wd20uYyB8IDE2MCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFu ZWwuYyAgICAgICAgIHwgICA0ICsKIDcgZmlsZXMgY2hhbmdlZCwgMTkzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHNpX3BhbmVsX3B3bS5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv TWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCA3ZmZiNTFiLi45 MmFiYmVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtODMsNiArODMsNyBAQCBpOTE1LXkgKz0g ZHZvX2NoNzAxNy5vIFwKIAkgIGludGVsX2RwX21zdC5vIFwKIAkgIGludGVsX2RwLm8gXAogCSAg aW50ZWxfZHNpLm8gXAorCSAgaW50ZWxfZHNpX3BhbmVsX3B3bS5vIFwKIAkgIGludGVsX2RzaV9w YW5lbF92YnQubyBcCiAJICBpbnRlbF9kc2lfcGxsLm8gXAogCSAgaW50ZWxfZHZvLm8gXApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMzAzMjFlNi4uN2Q2MTE4ZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCkBAIC0zNDkxLDcgKzM0OTEsNiBAQCB2b2lkIGludGVsX3NiaV93cml0ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUxNiByZWcsIHUzMiB2YWx1ZSwKIAkJICAg ICBlbnVtIGludGVsX3NiaV9kZXN0aW5hdGlvbiBkZXN0aW5hdGlvbik7CiB1MzIgdmx2X2ZsaXNk c2lfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiByZWcpOwogdm9p ZCB2bHZfZmxpc2RzaV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUz MiByZWcsIHUzMiB2YWwpOwotCiBpbnQgaW50ZWxfZ3B1X2ZyZXEoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCBpbnQgdmFsKTsKIGludCBpbnRlbF9mcmVxX29wY29kZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCmluZGV4IDAyYTc0YjAuLjA2MDNjOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CkBAIC0xMzMwLDYgKzEzMzAsOCBAQCB2b2lkIGludGVsX2RwX21zdF9lbmNvZGVyX2NsZWFudXAo c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpOwogLyogaW50ZWxfZHNp LmMgKi8KIHZvaWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKKy8q IGludGVsX2RzaV9wYW5lbF9wd20uYyAqLworaW50IGludGVsX2RzaV9wYW5lbF9wd21faW5pdF9i YWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKTsK IAogLyogaW50ZWxfZHZvLmMgKi8KIHZvaWQgaW50ZWxfZHZvX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCmluZGV4IDQ1NjY3NmMuLjFiYTc1N2Eg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCkBAIC0xMjA5LDEwICsxMjA5LDMwIEBAIHZvaWQg aW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAllbHNlCiAJCWludGVsX2Vu Y29kZXItPmNydGNfbWFzayA9IEJJVChQSVBFX0IpOwogCi0JaWYgKGRldl9wcml2LT52YnQuZHNp LmNvbmZpZy0+ZHVhbF9saW5rKQorCWlmIChkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWctPmR1YWxf bGluaykgewogCQlpbnRlbF9kc2ktPnBvcnRzID0gQklUKFBPUlRfQSkgfCBCSVQoUE9SVF9DKTsK LQllbHNlCisKKwkJLyoKKwkJICogQmFzZWQgb24gdGhlIFZCVCB2YWx1ZSBhc3NpZ24gdGhlIHBv cnRzIG9uCisJCSAqIHdoaWNoIFBhbmVsIFBXTSBPbi9PRkYgRENTIGNvb21hbmRzIG5lZWRzIHRv IGJlIHNlbnQKKwkJICovCisJCXN3aXRjaCAoZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5kbF9w YW5lbF9wd21fcG9ydHMpIHsKKwkJY2FzZSBQQU5FTF9QV01fUE9SVF9BOgorCQkJaW50ZWxfZHNp LT5wYW5lbF9wd21fZGNzX3BvcnRzID0gQklUKFBPUlRfQSk7CisJCQlicmVhazsKKwkJY2FzZSBQ QU5FTF9QV01fUE9SVF9DOgorCQkJaW50ZWxfZHNpLT5wYW5lbF9wd21fZGNzX3BvcnRzID0gQklU KFBPUlRfQyk7CisJCQlicmVhazsKKwkJY2FzZSBQQU5FTF9QV01fUE9SVF9BX0FORF9DOgorCQkJ aW50ZWxfZHNpLT5wYW5lbF9wd21fZGNzX3BvcnRzID0gQklUKFBPUlRfQSkgfCBCSVQoUE9SVF9D KTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJaW50ZWxfZHNpLT5wYW5lbF9wd21fZGNzX3Bv cnRzID0gQklUKFBPUlRfQSkgfCBCSVQoUE9SVF9DKTsKKwkJfQorCX0gZWxzZSB7CiAJCWludGVs X2RzaS0+cG9ydHMgPSBCSVQocG9ydCk7CisJCWludGVsX2RzaS0+cGFuZWxfcHdtX2Rjc19wb3J0 cyA9IEJJVChwb3J0KTsKKwl9CiAKIAkvKiBDcmVhdGUgYSBEU0kgaG9zdCAoYW5kIGEgZGV2aWNl KSBmb3IgZWFjaCBwb3J0LiAqLwogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+ cG9ydHMpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKaW5kZXggZjU0NzQ4ZC4uZGNkMjI2NSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKQEAgLTM0LDYgKzM0LDEwIEBACiAjZGVmaW5lIERT SV9EVUFMX0xJTktfRlJPTlRfQkFDSwkxCiAjZGVmaW5lIERTSV9EVUFMX0xJTktfUElYRUxfQUxU CQkyCiAKKyNkZWZpbmUgUEFORUxfUFdNX1BPUlRfQQkJMHgwMAorI2RlZmluZSBQQU5FTF9QV01f UE9SVF9DCQkweDAxCisjZGVmaW5lIFBBTkVMX1BXTV9QT1JUX0FfQU5EX0MJCTB4MDIKKwogc3Ry dWN0IGludGVsX2RzaV9ob3N0OwogCiBzdHJ1Y3QgaW50ZWxfZHNpIHsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF9wd20uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RzaV9wYW5lbF9wd20uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi40ZDdmMGViCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHNpX3BhbmVsX3B3bS5jCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICogQ29weXJpZ2h0 IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29w eSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAor ICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz b25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQK KyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFu dGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhP UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg T1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJ TiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yOiBEZWVwYWsgTSA8bS5kZWVwYWsgYXQgaW50 ZWwuY29tPgorICovCisKKyNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9k c2kuaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxh eS5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KKworI2RlZmluZSBQQU5FTF9QV01f QktMX0VOCQkoMSA8PCAyKQorI2RlZmluZSBQQU5FTF9QV01fRElTUF9ESU1NSU5HCQkoMSA8PCAz KQorI2RlZmluZSBQQU5FTF9QV01fQkNUUkwJCQkoMSA8PCA1KQorCisjZGVmaW5lIFBBTkVMX1BX TV9NQVhfVkFMVUUJCTB4RkYKKworc3RhdGljIHUzMiBwYW5lbF9wd21fZ2V0X2JhY2tsaWdodChz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7CisJc3RydWN0IGludGVsX2RzaSAqaW50 ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CisJc3RydWN0IG1pcGlf ZHNpX2RldmljZSAqZHNpX2RldmljZTsKKwl1OCBkYXRhOworCWVudW0gcG9ydCBwb3J0OworCisJ LyogRklYTUUgTmVlZCB0byB0YWtlIGNhcmUgb2YgMTYgYml0IGJyaWdodG5lc3MgbGV2ZWwgKi8K KwkvKgorCSAqIFNlbmRpbmcgdGhlIERDUyBjb21tYW5kcyB0byB0aGUgcG9ydHMgdG8gd2hpY2gg UGFuZWwgUFdNCisJICogT24vT2ZmIGNvbW1hbmRzIHdlcmUgc2VuZAorCSAqLworCWZvcl9lYWNo X2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cGFuZWxfcHdtX2Rjc19wb3J0cykgeworCQlkc2lf ZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsKKwkJbWlwaV9kc2lf ZGNzX3JlYWQoZHNpX2RldmljZSwgTUlQSV9EQ1NfR0VUX0RJU1BMQVlfQlJJR0hUTkVTUywKKwkJ CQkJJmRhdGEsIHNpemVvZihkYXRhKSk7CisJCWJyZWFrOworCX0KKworCXJldHVybiBkYXRhOwor fQorCitzdGF0aWMgdm9pZCBwYW5lbF9wd21fc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKKwlzdHJ1Y3QgbWlwaV9kc2lf ZGV2aWNlICpkc2lfZGV2aWNlOworCXU4IGRhdGE7CisJZW51bSBwb3J0IHBvcnQ7CisKKwkvKiBG SVhNRSBOZWVkIHRvIHRha2UgY2FyZSBvZiAxNiBiaXQgYnJpZ2h0bmVzcyBsZXZlbCAqLworCS8q CisJICogU2VuZGluZyB0aGUgRENTIGNvbW1hbmRzIHRvIHRoZSBwb3J0cyB0byB3aGljaCBQYW5l bCBQV00KKwkgKiBPbi9PZmYgY29tbWFuZHMgd2VyZSBzZW5kCisJICovCisJZm9yX2VhY2hfZHNp X3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wYW5lbF9wd21fZGNzX3BvcnRzKSB7CisJCWRzaV9kZXZp Y2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2aWNlOworCQlkYXRhID0gbGV2ZWw7 CisJCW1pcGlfZHNpX2Rjc193cml0ZShkc2lfZGV2aWNlLCBNSVBJX0RDU19TRVRfRElTUExBWV9C UklHSFRORVNTLAorCQkJCQkmZGF0YSwgc2l6ZW9mKGRhdGEpKTsKKwl9Cit9CisKK3N0YXRpYyB2 b2lkIHBhbmVsX3B3bV9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpCit7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0b3It PmVuY29kZXI7CisJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2Rz aSgmZW5jb2Rlci0+YmFzZSk7CisJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsK KwllbnVtIHBvcnQgcG9ydDsKKwl1OCBkYXRhOworCisJcGFuZWxfcHdtX3NldF9iYWNrbGlnaHQo Y29ubmVjdG9yLCAwKTsKKworCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cGFu ZWxfcHdtX2Rjc19wb3J0cykgeworCQlkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNb cG9ydF0tPmRldmljZTsKKwkJZGF0YSAmPSB+UEFORUxfUFdNX0JLTF9FTjsgLyogVHVybiBPZmYg QmFja2xpZ2h0ICovCisJCWRhdGEgJj0gflBBTkVMX1BXTV9ESVNQX0RJTU1JTkc7IC8qIERpc3Bs YXkgRGltbWluZyBPZmYgKi8KKwkJZGF0YSAmPSB+UEFORUxfUFdNX0JDVFJMOyAvKiBCcmlnaHRu ZXNzIGNvbnRyb2wgQmxvY2sgT2ZmICovCisJCW1pcGlfZHNpX2Rjc193cml0ZShkc2lfZGV2aWNl LCBNSVBJX0RDU19XUklURV9DT05UUk9MX0RJU1BMQVksCisJCQkJCSZkYXRhLCBzaXplb2YoZGF0 YSkpOworCX0KK30KKworc3RhdGljIHZvaWQgcGFuZWxfcHdtX2VuYWJsZV9iYWNrbGlnaHQoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyID0gY29ubmVjdG9yLT5lbmNvZGVyOworCXN0cnVjdCBpbnRlbF9kc2kgKmludGVs X2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOworCXN0cnVjdCBpbnRlbF9w YW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNl ICpkc2lfZGV2aWNlOworCWVudW0gcG9ydCBwb3J0OworCXU4IGRhdGE7CisKKwlmb3JfZWFjaF9k c2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBhbmVsX3B3bV9kY3NfcG9ydHMpIHsKKwkJZHNpX2Rl dmljZSA9IGludGVsX2RzaS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7CisJCWRhdGEgPSBQQU5F TF9QV01fQktMX0VOIC8qIFR1cm4gb24gYmFja2xpZ2h0ICovCisJCQl8IFBBTkVMX1BXTV9ESVNQ X0RJTU1JTkcgLyogRGlzcGxheSBEaW1taW5nIE9uICovCisJCQl8IFBBTkVMX1BXTV9CQ1RSTDsg LyogQnJpZ2h0bmVzcyBjb250cm9sIEJsb2NrIE9uICovCisJCW1pcGlfZHNpX2Rjc193cml0ZShk c2lfZGV2aWNlLCBNSVBJX0RDU19XUklURV9DT05UUk9MX0RJU1BMQVksCisJCQkJCSZkYXRhLCBz aXplb2YoZGF0YSkpOworCX0KKworCXBhbmVsX3B3bV9zZXRfYmFja2xpZ2h0KGNvbm5lY3Rvciwg cGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7Cit9CisKK3N0YXRpYyBpbnQgcGFuZWxfcHdtX3NldHVw X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCisJCWVudW0gcGlw ZSB1bnVzZWQpCit7CisJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBh bmVsOworCisJcGFuZWwtPmJhY2tsaWdodC5tYXggPSBQQU5FTF9QV01fTUFYX1ZBTFVFOworCS8q IEFzc2lnbmluZyB0aGUgTUFYIHZhbHVlIGR1cmluZyB0aGUgc2V0dXAgKi8KKwlwYW5lbC0+YmFj a2xpZ2h0LmxldmVsID0gUEFORUxfUFdNX01BWF9WQUxVRTsKKworCXJldHVybiAwOworfQorCitp bnQgaW50ZWxfZHNpX3BhbmVsX3B3bV9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGludGVsX2Nvbm5lY3Rvci0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciA9IGludGVsX2Nvbm5lY3Rvci0+ZW5jb2RlcjsKKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVs ID0gJmludGVsX2Nvbm5lY3Rvci0+cGFuZWw7CisKKwkvKgorCSAqIENvbnRpbnVlIGluaXRhbGl6 aW5nIG9ubHkgaWYgdGhlIFBXTSBzb3VyY2UgaXMKKwkgKiBmcm9tIHRoZSBwYW5lbAorCSAqLwor CWlmIChkZXZfcHJpdi0+dmJ0LmJhY2tsaWdodC5wd21fcGluICE9CisJCQlCTENfQ09OVFJPTF9Q SU5fUEFORUxfUFdNKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmIChXQVJOX09OKGVuY29kZXIt PnR5cGUgIT0gSU5URUxfT1VUUFVUX0RTSSkpCisJCXJldHVybiAtRUlOVkFMOworCisJcGFuZWwt PmJhY2tsaWdodC5zZXR1cCA9IHBhbmVsX3B3bV9zZXR1cF9iYWNrbGlnaHQ7CisJcGFuZWwtPmJh Y2tsaWdodC5lbmFibGUgPSBwYW5lbF9wd21fZW5hYmxlX2JhY2tsaWdodDsKKwlwYW5lbC0+YmFj a2xpZ2h0LmRpc2FibGUgPSBwYW5lbF9wd21fZGlzYWJsZV9iYWNrbGlnaHQ7CisJcGFuZWwtPmJh Y2tsaWdodC5zZXQgPSBwYW5lbF9wd21fc2V0X2JhY2tsaWdodDsKKwlwYW5lbC0+YmFja2xpZ2h0 LmdldCA9IHBhbmVsX3B3bV9nZXRfYmFja2xpZ2h0OworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcGFuZWwuYwppbmRleCA4Yzg5OTZmLi40NmNhMmRlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BhbmVsLmMKQEAgLTE3MTgsNiArMTcxOCwxMCBAQCBpbnRlbF9wYW5lbF9pbml0 X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsKQogCQljb250YWluZXJf b2YocGFuZWwsIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IsIHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCisJ aWYgKGNvbm5lY3Rvci0+YmFzZS5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1Jf RFNJICYmCisJCWludGVsX2RzaV9wYW5lbF9wd21faW5pdF9iYWNrbGlnaHRfZnVuY3MoY29ubmVj dG9yKSA9PSAwKQorCQlyZXR1cm47CisKIAlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKIAkJ cGFuZWwtPmJhY2tsaWdodC5zZXR1cCA9IGJ4dF9zZXR1cF9iYWNrbGlnaHQ7CiAJCXBhbmVsLT5i YWNrbGlnaHQuZW5hYmxlID0gYnh0X2VuYWJsZV9iYWNrbGlnaHQ7Ci0tIAoxLjkuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==