From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/3] drm/i915: Add DCS control for Panel PWM Date: Tue, 17 May 2016 17:01:52 +0300 Message-ID: <87h9dw3hrj.fsf@intel.com> References: <71238a4b14b8c3a6c04070c789f09f1b4bc00a15.1461676337.git.jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 018AC6E5ED for ; Tue, 17 May 2016 14:03:04 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Adebisi, YetundeX" , "intel-gfx@lists.freedesktop.org" Cc: "Deepak, M" , "Vetter, Daniel" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyNiBBcHIgMjAxNiwgIkFkZWJpc2ksIFlldHVuZGVYIiA8eWV0dW5kZXguYWRlYmlz aUBpbnRlbC5jb20+IHdyb3RlOgo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9t OiBOaWt1bGEsIEphbmkKPj4gU2VudDogVHVlc2RheSwgQXByaWwgMjYsIDIwMTYgMjoxNCBQTQo+ PiBUbzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBDYzogTmlrdWxhLCBKYW5p OyBWZXR0ZXIsIERhbmllbDsgQWRlYmlzaSwgWWV0dW5kZVg7IERlZXBhaywgTQo+PiBTdWJqZWN0 OiBbUEFUQ0ggMi8zXSBkcm0vaTkxNTogQWRkIERDUyBjb250cm9sIGZvciBQYW5lbCBQV00KPj4g Cj4+IElmIHRoZSBzb3VyY2Ugb2YgdGhlIGJhY2tsaWdodCBQV00gaXMgZnJvbSB0aGUKPj4gcGFu ZWwgdGhlbiB0aGUgUFdNIGNhbiBiZSBjb250cm9sbGVkIGJ5IERDUwo+PiBjb21tYW5kLCB0aGlz IHBhdGNoIGFkZHMgdGhlIHN1cHBvcnQgdG8KPj4gZW5hYmxlL2Rpc2JhbGUgcGFuZWwgUFdNLCBj b250cm9sIGJhY2tsaWdodCBsZXZlbAo+PiBldGMuLi4KPj4gCj4+IHYyOiBNb3ZpbmcgdGhlIENB QkMgYmtsIGZ1bmN0aW9ucyB0byBuZXcgZmlsZS4oSmFuaSkKPj4gCj4+IHYzOiBSZWJhc2UKPj4g Cj4+IHY0OiBSZWJhc2UKPj4gCj4+IHY1OiBVc2UgbWlwaV9kc2lfZGNzX3dyaXRlKCkgaW5zdGVh ZCBvZiBtaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKCkgKEphbmkpCj4+ICAgICBNb3ZlIERDUyBt YWNyb2BzIHRvIGluY2x1ZGUvdmlkZW8vbWlwaV9kaXNwbGF5LmggKEphbmkpCj4+IAo+PiB2Njog UmVuYW1lIHRoZSBmaWxlIHRvIGludGVsX2RzaV9wYW5lbF9wd20uYwo+PiAgICAgUmVtb3Zpbmcg dGhlIENBQkMgb3BlcmF0aW9ucwo+PiAKPj4gdjcgYnkgSmFuaTogcmVuYW1lcywgcmViYXNlcywg ZXRjLgo+PiAKPj4gdjggYnkgSmFuaTogcy9JTlRFTF9CQUNLTElHSFRfQ0FCQy9JTlRFTF9CQUNL TElHSFRfRFNJX0RDUy8KPj4gCj4+IHY5IGJ5IEphbmk6IHJlbmFtZSBpbml0IGZ1bmN0aW9uIHRv IGludGVsX2RzaV9kY3NfaW5pdF9iYWNrbGlnaHRfZnVuY3MKPj4gCj4+IENjOiBKYW5pIE5pa3Vs YSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+PiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBpbnRlbC5jb20+Cj4+IENjOiBZZXR1bmRlIEFkZWJpc2kgPHlldHVuZGV4LmFkZWJpc2lA aW50ZWwuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBEZWVwYWsgTSA8bS5kZWVwYWtAaW50ZWwuY29t Pgo+PiBTaWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ Cj4gUmV2aWV3ZWQtYnk6IFlldHVuZGUgQWRlYmlzaSA8eWV0dW5kZXguYWRlYmlzaUBpbnRlbC5j b20+CgpQdXNoZWQgYm90aCB0byBkcm0taW50ZWwtbmV4dC1xdWV1ZWQsIHRoYW5rcyBmb3IgdGhl IHJldmlldy4KCkJSLApKYW5pLgoKCgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01h a2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggICAgICAgICAgICAgICB8ICAgMiArCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2kuYyAgICAgICAgICAgICAgIHwgIDE5ICsrLQo+PiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHNpLmggICAgICAgICAgICAgICB8ICAgMyArCj4+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2lfZGNzX2JhY2tsaWdodC5jIHwgMTU3Cj4+ICsrKysrKysrKysrKysr KysrKysrKysrKysKPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICAgICAg ICAgICAgfCAgIDQgKwo+PiAgNiBmaWxlcyBjaGFuZ2VkLCAxODQgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2lfZGNzX2JhY2tsaWdodC5jCj4+IAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+PiBpbmRl eCA3MjNjNTAyNTExMjcuLmI1ZWM4MDBmOTUzZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUK Pj4gQEAgLTg2LDYgKzg2LDcgQEAgaTkxNS15ICs9IGR2b19jaDcwMTcubyBcCj4+ICAJICBpbnRl bF9kcF9tc3QubyBcCj4+ICAJICBpbnRlbF9kcC5vIFwKPj4gIAkgIGludGVsX2RzaS5vIFwKPj4g KwkgIGludGVsX2RzaV9kY3NfYmFja2xpZ2h0Lm8gXAo+PiAgCSAgaW50ZWxfZHNpX3BhbmVsX3Zi dC5vIFwKPj4gIAkgIGludGVsX2RzaV9wbGwubyBcCj4+ICAJICBpbnRlbF9kdm8ubyBcCj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IGluZGV4IGNiODlhMzVhNjc1NS4uZDY1ZGZiYjhj ZjdkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBAQCAtMTM0Niw2ICsxMzQ2 LDggQEAgdm9pZCBpbnRlbF9kcF9tc3RfZW5jb2Rlcl9jbGVhbnVwKHN0cnVjdAo+PiBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KTsKPj4gIC8qIGludGVsX2RzaS5jICovCj4+ICB2 b2lkIGludGVsX2RzaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+PiAKPj4gKy8qIGlu dGVsX2RzaV9kY3NfYmFja2xpZ2h0LmMgKi8KPj4gK2ludCBpbnRlbF9kc2lfZGNzX2luaXRfYmFj a2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IKPj4gKmludGVsX2Nvbm5lY3Rvcik7 Cj4+IAo+PiAgLyogaW50ZWxfZHZvLmMgKi8KPj4gIHZvaWQgaW50ZWxfZHZvX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2kuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4+IGluZGV4 IDJiMjJiYjliYjg2Zi4uMjIwOWY5ZmU2YzRiIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2kuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k c2kuYwo+PiBAQCAtMTM2NCwxMCArMTM2NCwyNSBAQCB2b2lkIGludGVsX2RzaV9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4+ICAJZWxzZQo+PiAgCQlpbnRlbF9lbmNvZGVyLT5jcnRjX21h c2sgPSBCSVQoUElQRV9CKTsKPj4gCj4+IC0JaWYgKGRldl9wcml2LT52YnQuZHNpLmNvbmZpZy0+ ZHVhbF9saW5rKQo+PiArCWlmIChkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWctPmR1YWxfbGluaykg ewo+PiAgCQlpbnRlbF9kc2ktPnBvcnRzID0gQklUKFBPUlRfQSkgfCBCSVQoUE9SVF9DKTsKPj4g LQllbHNlCj4+ICsKPj4gKwkJc3dpdGNoIChkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWctPmRsX2Rj c19iYWNrbGlnaHRfcG9ydHMpIHsKPj4gKwkJY2FzZSBETF9EQ1NfUE9SVF9BOgo+PiArCQkJaW50 ZWxfZHNpLT5kY3NfYmFja2xpZ2h0X3BvcnRzID0gQklUKFBPUlRfQSk7Cj4+ICsJCQlicmVhazsK Pj4gKwkJY2FzZSBETF9EQ1NfUE9SVF9DOgo+PiArCQkJaW50ZWxfZHNpLT5kY3NfYmFja2xpZ2h0 X3BvcnRzID0gQklUKFBPUlRfQyk7Cj4+ICsJCQlicmVhazsKPj4gKwkJZGVmYXVsdDoKPj4gKwkJ Y2FzZSBETF9EQ1NfUE9SVF9BX0FORF9DOgo+PiArCQkJaW50ZWxfZHNpLT5kY3NfYmFja2xpZ2h0 X3BvcnRzID0gQklUKFBPUlRfQSkgfAo+PiBCSVQoUE9SVF9DKTsKPj4gKwkJCWJyZWFrOwo+PiAr CQl9Cj4+ICsJfSBlbHNlIHsKPj4gIAkJaW50ZWxfZHNpLT5wb3J0cyA9IEJJVChwb3J0KTsKPj4g KwkJaW50ZWxfZHNpLT5kY3NfYmFja2xpZ2h0X3BvcnRzID0gQklUKHBvcnQpOwo+PiArCX0KPj4g Cj4+ICAJLyogQ3JlYXRlIGEgRFNJIGhvc3QgKGFuZCBhIGRldmljZSkgZm9yIGVhY2ggcG9ydC4g Ki8KPj4gIAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+PiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCj4+IGluZGV4IDYxYTY5NTdmYzZjMi4uYjAwZmIzZmJi MGIxIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+PiBAQCAtNzgsNiArNzgsOSBA QCBzdHJ1Y3QgaW50ZWxfZHNpIHsKPj4gCj4+ICAJdTggZXNjYXBlX2Nsa19kaXY7Cj4+ICAJdTgg ZHVhbF9saW5rOwo+PiArCj4+ICsJdTE2IGRjc19iYWNrbGlnaHRfcG9ydHM7Cj4+ICsKPj4gIAl1 OCBwaXhlbF9vdmVybGFwOwo+PiAgCXUzMiBwb3J0X2JpdHM7Cj4+ICAJdTMyIGJ3X3RpbWVyOwo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2Rjc19iYWNrbGln aHQuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9kY3NfYmFja2xpZ2h0LmMK Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwMDAwLi43ZjliYmZmYTdm OGMKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k c2lfZGNzX2JhY2tsaWdodC5jCj4+IEBAIC0wLDAgKzEsMTU3IEBACj4+ICsvKgo+PiArICogQ29w eXJpZ2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KPj4gKyAqCj4+ICsgKiBQZXJtaXNzaW9u IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p bmcgYQo+PiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZQo+PiAiU29mdHdhcmUiKSwKPj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNv ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24K Pj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+PiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4+ICsgKiBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgo+PiArICoKPj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl cm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPj4gKyAqIHBhcmFncmFwaCkgc2hh bGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUKPj4gKyAqIFNvZnR3YXJlLgo+PiArICoKPj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAo+PiBFWFBSRVNTIE9SCj4+ ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT IE9GCj4+IE1FUkNIQU5UQUJJTElUWSwKPj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTwo+PiBFVkVOVCBTSEFMTAo+PiArICog VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s Cj4+IERBTUFHRVMgT1IgT1RIRVIKPj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAo+PiBBUklTSU5HCj4+ICsgKiBGUk9N LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9S Cj4+IE9USEVSCj4+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4+ICsgKgo+PiArICog QXV0aG9yOiBEZWVwYWsgTSA8bS5kZWVwYWsgYXQgaW50ZWwuY29tPgo+PiArICovCj4+ICsKPj4g KyNpbmNsdWRlICJpbnRlbF9kcnYuaCIKPj4gKyNpbmNsdWRlICJpbnRlbF9kc2kuaCIKPj4gKyNp bmNsdWRlICJpOTE1X2Rydi5oIgo+PiArI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgo+ PiArI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KPj4gKwo+PiArI2RlZmluZSBDT05UUk9M X0RJU1BMQVlfQkNUUkwJCSgxIDw8IDUpCj4+ICsjZGVmaW5lIENPTlRST0xfRElTUExBWV9ERAkJ KDEgPDwgMykKPj4gKyNkZWZpbmUgQ09OVFJPTF9ESVNQTEFZX0JMCQkoMSA8PCAyKQo+PiArCj4+ ICsjZGVmaW5lIFBBTkVMX1BXTV9NQVhfVkFMVUUJCTB4RkYKPj4gKwo+PiArc3RhdGljIHUzMiBk Y3NfZ2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+ICt7 Cj4+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7 Cj4+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5j b2Rlci0+YmFzZSk7Cj4+ICsJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsKPj4g Kwl1OCBkYXRhOwo+PiArCWVudW0gcG9ydCBwb3J0Owo+PiArCj4+ICsJLyogRklYTUU6IE5lZWQg dG8gdGFrZSBjYXJlIG9mIDE2IGJpdCBicmlnaHRuZXNzIGxldmVsICovCj4+ICsJZm9yX2VhY2hf ZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5kY3NfYmFja2xpZ2h0X3BvcnRzKSB7Cj4+ICsJCWRz aV9kZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2aWNlOwo+PiArCQltaXBp X2RzaV9kY3NfcmVhZChkc2lfZGV2aWNlLAo+PiBNSVBJX0RDU19HRVRfRElTUExBWV9CUklHSFRO RVNTLAo+PiArCQkJCSAgJmRhdGEsIHNpemVvZihkYXRhKSk7Cj4+ICsJCWJyZWFrOwo+PiArCX0K Pj4gKwo+PiArCXJldHVybiBkYXRhOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBkY3Nfc2V0 X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkK Pj4gK3sKPj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5j b2RlcjsKPj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNp KCZlbmNvZGVyLT5iYXNlKTsKPj4gKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNl Owo+PiArCXU4IGRhdGEgPSBsZXZlbDsKPj4gKwllbnVtIHBvcnQgcG9ydDsKPj4gKwo+PiArCS8q IEZJWE1FOiBOZWVkIHRvIHRha2UgY2FyZSBvZiAxNiBiaXQgYnJpZ2h0bmVzcyBsZXZlbCAqLwo+ PiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+ZGNzX2JhY2tsaWdodF9wb3J0 cykgewo+PiArCQlkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmlj ZTsKPj4gKwkJbWlwaV9kc2lfZGNzX3dyaXRlKGRzaV9kZXZpY2UsCj4+IE1JUElfRENTX1NFVF9E SVNQTEFZX0JSSUdIVE5FU1MsCj4+ICsJCQkJICAgJmRhdGEsIHNpemVvZihkYXRhKSk7Cj4+ICsJ fQo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBkY3NfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiArewo+PiArCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyID0gY29ubmVjdG9yLT5lbmNvZGVyOwo+PiArCXN0cnVjdCBpbnRlbF9kc2kg KmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+PiArCXN0cnVj dCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7Cj4+ICsJZW51bSBwb3J0IHBvcnQ7Cj4+ICsK Pj4gKwlkY3Nfc2V0X2JhY2tsaWdodChjb25uZWN0b3IsIDApOwo+PiArCj4+ICsJZm9yX2VhY2hf ZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5kY3NfYmFja2xpZ2h0X3BvcnRzKSB7Cj4+ICsJCXU4 IGN0cmwgPSAwOwo+PiArCj4+ICsJCWRzaV9kZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1tw b3J0XS0+ZGV2aWNlOwo+PiArCj4+ICsJCW1pcGlfZHNpX2Rjc19yZWFkKGRzaV9kZXZpY2UsCj4+ IE1JUElfRENTX0dFVF9DT05UUk9MX0RJU1BMQVksCj4+ICsJCQkJICAmY3RybCwgc2l6ZW9mKGN0 cmwpKTsKPj4gKwo+PiArCQljdHJsICY9IH5DT05UUk9MX0RJU1BMQVlfQkw7Cj4+ICsJCWN0cmwg Jj0gfkNPTlRST0xfRElTUExBWV9ERDsKPj4gKwkJY3RybCAmPSB+Q09OVFJPTF9ESVNQTEFZX0JD VFJMOwo+PiArCj4+ICsJCW1pcGlfZHNpX2Rjc193cml0ZShkc2lfZGV2aWNlLAo+PiBNSVBJX0RD U19XUklURV9DT05UUk9MX0RJU1BMQVksCj4+ICsJCQkJICAgJmN0cmwsIHNpemVvZihjdHJsKSk7 Cj4+ICsJfQo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBkY3NfZW5hYmxlX2JhY2tsaWdodChz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+ICt7Cj4+ICsJc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7Cj4+ICsJc3RydWN0IGludGVs X2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4+ICsJ c3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+PiArCXN0cnVj dCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7Cj4+ICsJZW51bSBwb3J0IHBvcnQ7Cj4+ICsK Pj4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPmRjc19iYWNrbGlnaHRfcG9y dHMpIHsKPj4gKwkJdTggY3RybCA9IDA7Cj4+ICsKPj4gKwkJZHNpX2RldmljZSA9IGludGVsX2Rz aS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7Cj4+ICsKPj4gKwkJbWlwaV9kc2lfZGNzX3JlYWQo ZHNpX2RldmljZSwKPj4gTUlQSV9EQ1NfR0VUX0NPTlRST0xfRElTUExBWSwKPj4gKwkJCQkgICZj dHJsLCBzaXplb2YoY3RybCkpOwo+PiArCj4+ICsJCWN0cmwgfD0gQ09OVFJPTF9ESVNQTEFZX0JM Owo+PiArCQljdHJsIHw9IENPTlRST0xfRElTUExBWV9ERDsKPj4gKwkJY3RybCB8PSBDT05UUk9M X0RJU1BMQVlfQkNUUkw7Cj4+ICsKPj4gKwkJbWlwaV9kc2lfZGNzX3dyaXRlKGRzaV9kZXZpY2Us Cj4+IE1JUElfRENTX1dSSVRFX0NPTlRST0xfRElTUExBWSwKPj4gKwkJCQkgICAmY3RybCwgc2l6 ZW9mKGN0cmwpKTsKPj4gKwl9Cj4+ICsKPj4gKwlkY3Nfc2V0X2JhY2tsaWdodChjb25uZWN0b3Is IHBhbmVsLT5iYWNrbGlnaHQubGV2ZWwpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IGRjc19z ZXR1cF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+PiArCQkJ ICAgICAgIGVudW0gcGlwZSB1bnVzZWQpCj4+ICt7Cj4+ICsJc3RydWN0IGludGVsX3BhbmVsICpw YW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+PiArCj4+ICsJcGFuZWwtPmJhY2tsaWdodC5tYXgg PSBQQU5FTF9QV01fTUFYX1ZBTFVFOwo+PiArCXBhbmVsLT5iYWNrbGlnaHQubGV2ZWwgPSBQQU5F TF9QV01fTUFYX1ZBTFVFOwo+PiArCj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK2ludCBp bnRlbF9kc2lfZGNzX2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IK Pj4gKmludGVsX2Nvbm5lY3RvcikKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g aW50ZWxfY29ubmVjdG9yLT5iYXNlLmRldjsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyID0gaW50ZWxfY29ubmVjdG9yLT5lbmNvZGVyOwo+PiArCXN0cnVjdCBpbnRlbF9wYW5l bCAqcGFuZWwgPSAmaW50ZWxfY29ubmVjdG9yLT5wYW5lbDsKPj4gKwo+PiArCWlmIChkZXZfcHJp di0+dmJ0LmJhY2tsaWdodC50eXBlICE9IElOVEVMX0JBQ0tMSUdIVF9EU0lfRENTKQo+PiArCQly ZXR1cm4gLUVOT0RFVjsKPj4gKwo+PiArCWlmIChXQVJOX09OKGVuY29kZXItPnR5cGUgIT0gSU5U RUxfT1VUUFVUX0RTSSkpCj4+ICsJCXJldHVybiAtRUlOVkFMOwo+PiArCj4+ICsJcGFuZWwtPmJh Y2tsaWdodC5zZXR1cCA9IGRjc19zZXR1cF9iYWNrbGlnaHQ7Cj4+ICsJcGFuZWwtPmJhY2tsaWdo dC5lbmFibGUgPSBkY3NfZW5hYmxlX2JhY2tsaWdodDsKPj4gKwlwYW5lbC0+YmFja2xpZ2h0LmRp c2FibGUgPSBkY3NfZGlzYWJsZV9iYWNrbGlnaHQ7Cj4+ICsJcGFuZWwtPmJhY2tsaWdodC5zZXQg PSBkY3Nfc2V0X2JhY2tsaWdodDsKPj4gKwlwYW5lbC0+YmFja2xpZ2h0LmdldCA9IGRjc19nZXRf YmFja2xpZ2h0Owo+PiArCj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcGFuZWwuYwo+PiBpbmRleCA4MjhmMGZjYWFhZjguLmVmYWVlN2E3ZjkzMyAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4+IEBAIC0xNzIyLDYgKzE3MjIsMTAgQEAg aW50ZWxfcGFuZWxfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0Cj4+IGludGVsX3BhbmVsICpw YW5lbCkKPj4gIAkgICAgaW50ZWxfZHBfYXV4X2luaXRfYmFja2xpZ2h0X2Z1bmNzKGNvbm5lY3Rv cikgPT0gMCkKPj4gIAkJcmV0dXJuOwo+PiAKPj4gKwlpZiAoY29ubmVjdG9yLT5iYXNlLmNvbm5l Y3Rvcl90eXBlID09Cj4+IERSTV9NT0RFX0NPTk5FQ1RPUl9EU0kgJiYKPj4gKwkgICAgaW50ZWxf ZHNpX2Rjc19pbml0X2JhY2tsaWdodF9mdW5jcyhjb25uZWN0b3IpID09IDApCj4+ICsJCXJldHVy bjsKPj4gKwo+PiAgCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewo+PiAgCQlwYW5lbC0+YmFj a2xpZ2h0LnNldHVwID0gYnh0X3NldHVwX2JhY2tsaWdodDsKPj4gIAkJcGFuZWwtPmJhY2tsaWdo dC5lbmFibGUgPSBieHRfZW5hYmxlX2JhY2tsaWdodDsKPj4gLS0KPj4gMi4xLjQKPgoKLS0gCkph bmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK