From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH] drm/i915/bxt: Enable VBT based BL control for DP Date: Tue, 6 Jun 2017 15:34:22 +0300 Message-ID: <20170606123422.GA10592@ideak-desk.fi.intel.com> References: <1496732953-156763-1-git-send-email-mustamin.b.mustaffa@intel.com> <8737bdh3jl.fsf@intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 37EBD6E0FA for ; Tue, 6 Jun 2017 12:34:26 +0000 (UTC) Content-Disposition: inline In-Reply-To: <8737bdh3jl.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org, Mustamin B Mustaffa List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdW4gMDYsIDIwMTcgYXQgMTI6MjQ6MzBQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVHVlLCAwNiBKdW4gMjAxNywgTXVzdGFtaW4gQiBNdXN0YWZmYSA8bXVzdGFtaW4u Yi5tdXN0YWZmYUBpbnRlbC5jb20+IHdyb3RlOgo+ID4gWy4uLl0KPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+ID4gaW5kZXggZDE2NzBiOC4uMTI0ZjU4YiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiA+IEBAIC01OTEsMTMgKzU5MSw4IEBAIGJ4dF9wb3dlcl9zZXF1ZW5jZXJf aWR4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgCS8qIFdlIHNob3VsZCBuZXZlciBs YW5kIGhlcmUgd2l0aCByZWd1bGFyIERQIHBvcnRzICovCj4gPiAgCVdBUk5fT04oIWlzX2VkcChp bnRlbF9kcCkpOwo+ID4gIAo+ID4gLQkvKgo+ID4gLQkgKiBUT0RPOiBCWFQgaGFzIDIgUFBTIGlu c3RhbmNlcy4gVGhlIGNvcnJlY3QgcG9ydC0+UFBTIGluc3RhbmNlCj4gPiAtCSAqIG1hcHBpbmcg bmVlZHMgdG8gYmUgcmV0cmlldmVkIGZyb20gVkJULCBmb3Igbm93IGp1c3QgaGFyZC1jb2RlIHRv Cj4gPiAtCSAqIHVzZSBpbnN0YW5jZSAjMCBhbHdheXMuCj4gPiAtCSAqLwo+ID4gIAlpZiAoIWlu dGVsX2RwLT5wcHNfcmVzZXQpCj4gPiAtCQlyZXR1cm4gMDsKPiA+ICsJCXJldHVybiBkZXZfcHJp di0+dmJ0LmJhY2tsaWdodC5jb250cm9sbGVyOwo+IAo+IFNvIHRoZSBleGlzdGluZyBjb2RlIGFy b3VuZCBoZXJlIGxvb2tzIGEgYml0IGNvbnZvbHV0ZWQsIG5vdCBsZWFzdAo+IGJlY2F1c2Ugbm93 IHByZXR0eSBtdWNoIGFsbCBQUFMgYWNjZXNzIGZpcnN0IGRvZXMKPiAKPiAgLSBpbnRlbF9wcHNf Z2V0X3JlZ2lzdGVycygpLCB3aGljaCBjYWxscwo+ICAtIGJ4dF9wb3dlcl9zZXF1ZW5jZXJfaWR4 KCksIHdoaWNoIGNhbGxzCj4gIC0gaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJf cmVnaXN0ZXJzKCksIHdoaWNoIGNhbGxzCj4gIC0gaW50ZWxfcHBzX2dldF9yZWdpc3RlcnMoKS4u Lgo+IAo+IFdpdGggeW91ciBjaGFuZ2UsIGZvciBjb250cm9sbGVyID09IDEgYW5kIHBwc19yZXNl dCA9PSB0cnVlLCB0aGUgZmlyc3QKPiB0aW1lIHRoZSByZWdpc3RlcnMgYXJlIG5lZWRlZCwgd2Un bGwgaW5pdGlhbGl6ZSB0aGUgY29ycmVjdCBjb250cm9sbGVyIDEKPiByZWdpc3RlcnMsIGJ1dCBj b250cm9sbGVyIDAgcmVnaXN0ZXJzIGFyZSByZXR1cm5lZC4gRnJvbSB0aGVyZSBvbiwgd2UnbGwK PiBrZWVwIHJldHVybmluZyBjb250cm9sbGVyIDEgcmVnaXN0ZXJzIHVudGlsIHBwc19yZXNldCBp cyBzZXQgdG8gdHJ1ZQo+IGFnYWluLgo+IAo+IENjOiBJbXJlIGFzIGF1dGhvciBvZiBjb21taXRz IDc4NTk3OTk2MzcwYyAoImRybS9pOTE1L2J4dDogRml4IFBQUyBsb3N0Cj4gc3RhdGUgYWZ0ZXIg c3VzcGVuZCBicmVha2luZyBlRFAgbGluayB0cmFpbmluZyIpIGFuZCA4ZTgyMzJkNTE4NzgKPiAo ImRybS9pOTE1OiBEZWR1cGxpY2F0ZSBQUFMgcmVnaXN0ZXIgcmV0cmlldmFsIikgd2hpY2ggSSB0 aGluayBjcmVhdGUKPiB0aGUgbG9vcC4KCkEgbG9vcCB3b3VsZCBiZSBwcmV2ZW50ZWQgYnkgdGhl IHBwcy0+cmVzZXQgY2hlY2ssIGJ1dCBhZ3JlZSB0aGUgY29kZQppc24ndCBuaWNlLCBJIGd1ZXNz IEkgb3Zlcmxvb2tlZCB0aGlzIHdoZW4gSSB3cm90ZSBpdC4gVG8gbWFrZSB0aGluZ3MKY2xlYXJl ciB3ZSBjb3VsZCBmYWN0b3Igb3V0IGEgaGVscGVyIGZyb20KaW50ZWxfZHBfaW5pdF9wYW5lbF9w b3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJzKCkgdGhhdCB0YWtlcyBwcHNfcmVnaXN0ZXJzCmFuZCBj YWxsIHRoaXMgaGVscGVyIGZyb20gYnh0X3Bvd2VyX3NlcXVlbmNlcl9pZHgoKS4KClNvIGhvdyBh Ym91dCBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nOgoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j CmluZGV4IDU4ZGNhODcuLmUzMTJmNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtNDI0 LDYgKzQyNCwxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF91bnBhY2tfYXV4KHVpbnQzMl90IHNy YywgdWludDhfdCAqZHN0LCBpbnQgZHN0X2J5dGVzKQogCQlkc3RbaV0gPSBzcmMgPj4gKCgzLWkp ICogOCk7CiB9CiAKK3N0cnVjdCBwcHNfcmVnaXN0ZXJzIHsKKwlpOTE1X3JlZ190IHBwX2N0cmw7 CisJaTkxNV9yZWdfdCBwcF9zdGF0OworCWk5MTVfcmVnX3QgcHBfb247CisJaTkxNV9yZWdfdCBw cF9vZmY7CisJaTkxNV9yZWdfdCBwcF9kaXY7Cit9OworCiBzdGF0aWMgdm9pZAogaW50ZWxfZHBf aW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkg ICAgc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7CkBAIC00MzEsNiArNDM5LDE2IEBAIHN0YXRp YyB2b2lkCiBpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcl9yZWdpc3RlcnMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJICAgICAgc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwKIAkJCQkJICAgICAgYm9vbCBmb3JjZV9kaXNhYmxlX3ZkZCk7CisKK3N0YXRpYyB2b2lkIGlu dGVsX3Bwc19nZXRfaW5zdGFuY2VfcmVnaXN0ZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKKwkJCQkJICAgICBpbnQgaWR4LAorCQkJCQkgICAgIHN0cnVjdCBwcHNfcmVnaXN0 ZXJzICpyZWdzKTsKKworc3RhdGljIHZvaWQKK2ludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2Vx dWVuY2VyX2luc3RhbmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJ ICAgICBzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAorCQkJCQkgICAgIGJvb2wgZm9yY2VfZGlz YWJsZV92ZGQsCisJCQkJCSAgICAgY29uc3Qgc3RydWN0IHBwc19yZWdpc3RlcnMgKnJlZ3MpOwog c3RhdGljIHZvaWQKIGludGVsX2RwX3Bwc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwogCkBAIC02MjcsNiArNjQ1LDggQEAgYnh0X3Bvd2Vy X3NlcXVlbmNlcl9pZHgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0 cnVjdCBwcHNfcmVnaXN0ZXJzIHJlZ3M7CisJaW50IGlkeDsKIAogCWxvY2tkZXBfYXNzZXJ0X2hl bGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogCkBAIC02MzgsOCArNjU4LDEwIEBAIGJ4dF9wb3dl cl9zZXF1ZW5jZXJfaWR4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJICogbWFwcGluZyBu ZWVkcyB0byBiZSByZXRyaWV2ZWQgZnJvbSBWQlQsIGZvciBub3cganVzdCBoYXJkLWNvZGUgdG8K IAkgKiB1c2UgaW5zdGFuY2UgIzAgYWx3YXlzLgogCSAqLworCWlkeCA9IDA7CisKIAlpZiAoIWlu dGVsX2RwLT5wcHNfcmVzZXQpCi0JCXJldHVybiAwOworCQlyZXR1cm4gaWR4OwogCiAJaW50ZWxf ZHAtPnBwc19yZXNldCA9IGZhbHNlOwogCkBAIC02NDcsOSArNjY5LDExIEBAIGJ4dF9wb3dlcl9z ZXF1ZW5jZXJfaWR4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJICogT25seSB0aGUgSFcg bmVlZHMgdG8gYmUgcmVwcm9ncmFtbWVkLCB0aGUgU1cgc3RhdGUgaXMgZml4ZWQgYW5kCiAJICog aGFzIGJlZW4gc2V0dXAgZHVyaW5nIGNvbm5lY3RvciBpbml0LgogCSAqLwotCWludGVsX2RwX2lu aXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyX3JlZ2lzdGVycyhkZXYsIGludGVsX2RwLCBmYWxzZSk7 CisJaW50ZWxfcHBzX2dldF9pbnN0YW5jZV9yZWdpc3RlcnMoZGV2X3ByaXYsIGlkeCwgJnJlZ3Mp OworCWludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyX2luc3RhbmNlKGRldl9wcml2 LCBpbnRlbF9kcCwgZmFsc2UsCisJCQkJCQkgICAgICZyZWdzKTsKIAotCXJldHVybiAwOworCXJl dHVybiBpZHg7CiB9CiAKIHR5cGVkZWYgYm9vbCAoKnZsdl9waXBlX2NoZWNrKShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC03NzMsMjcgKzc5NywxMiBAQCB2b2lkIGludGVs X3Bvd2VyX3NlcXVlbmNlcl9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJfQogfQogCi1zdHJ1Y3QgcHBzX3JlZ2lzdGVycyB7Ci0JaTkxNV9yZWdfdCBwcF9jdHJsOwot CWk5MTVfcmVnX3QgcHBfc3RhdDsKLQlpOTE1X3JlZ190IHBwX29uOwotCWk5MTVfcmVnX3QgcHBf b2ZmOwotCWk5MTVfcmVnX3QgcHBfZGl2OwotfTsKLQotc3RhdGljIHZvaWQgaW50ZWxfcHBzX2dl dF9yZWdpc3RlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCSAgICBz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAotCQkJCSAgICBzdHJ1Y3QgcHBzX3JlZ2lzdGVycyAq cmVncykKK3N0YXRpYyB2b2lkIGludGVsX3Bwc19nZXRfaW5zdGFuY2VfcmVnaXN0ZXJzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJICAgICBpbnQgcHBzX2lkeCwKKwkJ CQkJICAgICBzdHJ1Y3QgcHBzX3JlZ2lzdGVycyAqcmVncykKIHsKLQlpbnQgcHBzX2lkeCA9IDA7 Ci0KIAltZW1zZXQocmVncywgMCwgc2l6ZW9mKCpyZWdzKSk7CiAKLQlpZiAoSVNfR0VOOV9MUChk ZXZfcHJpdikpCi0JCXBwc19pZHggPSBieHRfcG93ZXJfc2VxdWVuY2VyX2lkeChpbnRlbF9kcCk7 Ci0JZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpCi0JCXBwc19pZHggPSB2bHZfcG93ZXJfc2VxdWVuY2VyX3BpcGUoaW50ZWxfZHApOwot CiAJcmVncy0+cHBfY3RybCA9IFBQX0NPTlRST0wocHBzX2lkeCk7CiAJcmVncy0+cHBfc3RhdCA9 IFBQX1NUQVRVUyhwcHNfaWR4KTsKIAlyZWdzLT5wcF9vbiA9IFBQX09OX0RFTEFZUyhwcHNfaWR4 KTsKQEAgLTgwMiw2ICs4MTEsMjAgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHBzX2dldF9yZWdpc3Rl cnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlyZWdzLT5wcF9kaXYgPSBQ UF9ESVZJU09SKHBwc19pZHgpOwogfQogCitzdGF0aWMgdm9pZCBpbnRlbF9wcHNfZ2V0X3JlZ2lz dGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJICAgIHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsCisJCQkJICAgIHN0cnVjdCBwcHNfcmVnaXN0ZXJzICpyZWdzKQor eworCWludCBwcHNfaWR4ID0gMDsKKworCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKKwkJcHBz X2lkeCA9IGJ4dF9wb3dlcl9zZXF1ZW5jZXJfaWR4KGludGVsX2RwKTsKKwllbHNlIGlmIChJU19W QUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKKwkJcHBzX2lk eCA9IHZsdl9wb3dlcl9zZXF1ZW5jZXJfcGlwZShpbnRlbF9kcCk7CisKKwlpbnRlbF9wcHNfZ2V0 X2luc3RhbmNlX3JlZ2lzdGVycyhkZXZfcHJpdiwgcHBzX2lkeCwgcmVncyk7Cit9CisKIHN0YXRp YyBpOTE1X3JlZ190CiBfcHBfY3RybF9yZWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIHsK QEAgLTUyMjgsMjEgKzUyNTEsMTggQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5j ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIH0KIAogc3RhdGljIHZvaWQKLWludGVsX2RwX2lu aXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAotCQkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAotCQkJCQkgICAgICBib29s IGZvcmNlX2Rpc2FibGVfdmRkKQoraW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJf aW5zdGFuY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCQkgICAgIHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCisJCQkJCSAgICAgYm9vbCBmb3JjZV9kaXNhYmxlX3Zk ZCwKKwkJCQkJICAgICBjb25zdCBzdHJ1Y3QgcHBzX3JlZ2lzdGVycyAqcmVncykKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJdTMyIHBwX29u LCBwcF9vZmYsIHBwX2RpdiwgcG9ydF9zZWwgPSAwOwogCWludCBkaXYgPSBkZXZfcHJpdi0+cmF3 Y2xrX2ZyZXEgLyAxMDAwOwotCXN0cnVjdCBwcHNfcmVnaXN0ZXJzIHJlZ3M7CiAJZW51bSBwb3J0 IHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7CiAJY29uc3Qgc3RydWN0IGVk cF9wb3dlcl9zZXEgKnNlcSA9ICZpbnRlbF9kcC0+cHBzX2RlbGF5czsKIAogCWxvY2tkZXBfYXNz ZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogCi0JaW50ZWxfcHBzX2dldF9yZWdpc3Rl cnMoZGV2X3ByaXYsIGludGVsX2RwLCAmcmVncyk7Ci0KIAkvKgogCSAqIE9uIHNvbWUgVkxWIG1h Y2hpbmVzIHRoZSBCSU9TIGNhbiBsZWF2ZSB0aGUgVkRECiAJICogZW5hYmxlZCBldmVuIG9uIHBv d2VyIHNlcWV1ZW5jZXJzIHdoaWNoIGFyZW4ndApAQCAtNTI2NSw3ICs1Mjg1LDcgQEAgaW50ZWxf ZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJzKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAKIAkJcHAgJj0gfkVEUF9GT1JDRV9WREQ7CiAKLQkJSTkxNV9XUklURShyZWdzLnBw X2N0cmwsIHBwKTsKKwkJSTkxNV9XUklURShyZWdzLT5wcF9jdHJsLCBwcCk7CiAJfQogCiAJcHBf b24gPSAoc2VxLT50MV90MyA8PCBQQU5FTF9QT1dFUl9VUF9ERUxBWV9TSElGVCkgfApAQCAtNTI3 NSw3ICs1Mjk1LDcgQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0 ZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJLyogQ29tcHV0ZSB0aGUgZGl2aXNvciBmb3Ig dGhlIHBwIGNsb2NrLCBzaW1wbHkgbWF0Y2ggdGhlIEJzcGVjCiAJICogZm9ybXVsYS4gKi8KIAlp ZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKLQkJcHBfZGl2ID0gSTkxNV9SRUFEKHJlZ3MucHBf Y3RybCk7CisJCXBwX2RpdiA9IEk5MTVfUkVBRChyZWdzLT5wcF9jdHJsKTsKIAkJcHBfZGl2ICY9 IH5CWFRfUE9XRVJfQ1lDTEVfREVMQVlfTUFTSzsKIAkJcHBfZGl2IHw9IChESVZfUk9VTkRfVVAo KHNlcS0+dDExX3QxMiArIDEpLCAxMDAwKQogCQkJCTw8IEJYVF9QT1dFUl9DWUNMRV9ERUxBWV9T SElGVCk7CkBAIC01Mjk4LDE5ICs1MzE4LDMyIEBAIGludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJf c2VxdWVuY2VyX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJcHBfb24gfD0g cG9ydF9zZWw7CiAKLQlJOTE1X1dSSVRFKHJlZ3MucHBfb24sIHBwX29uKTsKLQlJOTE1X1dSSVRF KHJlZ3MucHBfb2ZmLCBwcF9vZmYpOworCUk5MTVfV1JJVEUocmVncy0+cHBfb24sIHBwX29uKTsK KwlJOTE1X1dSSVRFKHJlZ3MtPnBwX29mZiwgcHBfb2ZmKTsKIAlpZiAoSVNfR0VOOV9MUChkZXZf cHJpdikpCi0JCUk5MTVfV1JJVEUocmVncy5wcF9jdHJsLCBwcF9kaXYpOworCQlJOTE1X1dSSVRF KHJlZ3MtPnBwX2N0cmwsIHBwX2Rpdik7CiAJZWxzZQotCQlJOTE1X1dSSVRFKHJlZ3MucHBfZGl2 LCBwcF9kaXYpOworCQlJOTE1X1dSSVRFKHJlZ3MtPnBwX2RpdiwgcHBfZGl2KTsKIAogCURSTV9E RUJVR19LTVMoInBhbmVsIHBvd2VyIHNlcXVlbmNlciByZWdpc3RlciBzZXR0aW5nczogUFBfT04g JSN4LCBQUF9PRkYgJSN4LCBQUF9ESVYgJSN4XG4iLAotCQkgICAgICBJOTE1X1JFQUQocmVncy5w cF9vbiksCi0JCSAgICAgIEk5MTVfUkVBRChyZWdzLnBwX29mZiksCisJCSAgICAgIEk5MTVfUkVB RChyZWdzLT5wcF9vbiksCisJCSAgICAgIEk5MTVfUkVBRChyZWdzLT5wcF9vZmYpLAogCQkgICAg ICBJU19HRU45X0xQKGRldl9wcml2KSA/Ci0JCSAgICAgIChJOTE1X1JFQUQocmVncy5wcF9jdHJs KSAmIEJYVF9QT1dFUl9DWUNMRV9ERUxBWV9NQVNLKSA6Ci0JCSAgICAgIEk5MTVfUkVBRChyZWdz LnBwX2RpdikpOworCQkgICAgICAoSTkxNV9SRUFEKHJlZ3MtPnBwX2N0cmwpICYgQlhUX1BPV0VS X0NZQ0xFX0RFTEFZX01BU0spIDoKKwkJICAgICAgSTkxNV9SRUFEKHJlZ3MtPnBwX2RpdikpOwor fQorCitzdGF0aWMgdm9pZAoraW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVn aXN0ZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCisJCQkJCSAgICAgIGJvb2wgZm9yY2VfZGlzYWJsZV92ZGQpCit7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBw cHNfcmVnaXN0ZXJzIHJlZ3M7CisKKwlpbnRlbF9wcHNfZ2V0X3JlZ2lzdGVycyhkZXZfcHJpdiwg aW50ZWxfZHAsICZyZWdzKTsKKwlpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcl9p bnN0YW5jZShkZXZfcHJpdiwgaW50ZWxfZHAsCisJCQkJCQkgICAgIGZvcmNlX2Rpc2FibGVfdmRk LCAmcmVncyk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2RwX3Bwc19pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCgotLUltcmUKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==