From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [MIPI CABC 2/2] drm/i915: CABC support for backlight control Date: Tue, 22 Mar 2016 15:48:52 +0200 Message-ID: <87egb2r5bv.fsf@intel.com> References: <1458625270-29433-1-git-send-email-m.deepak@intel.com> <1458625270-29433-3-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 D36126E30C for ; Tue, 22 Mar 2016 13:48:55 +0000 (UTC) In-Reply-To: <1458625270-29433-3-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 , Daniel Vetter , Yetunde Adebisi List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMiBNYXIgMjAxNiwgRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4gd3JvdGU6 Cj4gSW4gQ0FCQyAoQ29udGVudCBBZGFwdGl2ZSBCcmlnaHRuZXNzIENvbnRyb2wpIGNvbnRlbnQg Z3JleSBsZXZlbAo+IHNjYWxlIGNhbiBiZSBpbmNyZWFzZWQgd2hpbGUgc2ltdWx0YW5lb3VzbHkg ZGVjcmVhc2luZwo+IGJyaWdodG5lc3Mgb2YgdGhlIGJhY2tsaWdodCB0byBhY2hpZXZlIHNhbWUg cGVyY2VpdmVkIGJyaWdodG5lc3MuCj4KPiBUaGUgQ0FCQyBpcyBub3Qgc3RhbmRhcmRpemVkIGFu ZCBwYW5lbCB2ZW5kb3JzIGFyZSBmcmVlIHRvIGZvbGxvdwo+IHRoZWlyIGltcGxlbWVudGF0aW9u LiBUaGUgQ0FCQyBpbXBsZW1lbnRhaW9uIGhlcmUgYXNzdW1lcyB0aGF0IHRoZQo+IHBhbmVscyB1 c2Ugc3RhbmRhcmQgU1cgcmVnaXN0ZXIgZm9yIGNvbnRyb2wuCj4KPiBJbiB0aGlzIGRlc2lnbiB0 aGVyZSB3aWxsIGJlIG5vIFBXTSBzaWduYWwgZnJvbSB0aGUgU29DIGFuZCBEQ1MKPiBjb21tYW5k cyBhcmUgc2VudCB0byBlbmFibGUgYW5kIGNvbnRyb2wgdGhlIGJhY2tsaWdodCBicmlnaHRuZXNz Lgo+Cj4gdjI6IE1vdmluZyB0aGUgQ0FCQyBia2wgZnVuY3Rpb25zIHRvIG5ldyBmaWxlLihKYW5p KQo+Cj4gdjM6IFJlYmFzZQo+Cj4gdjQ6IFJlYmFzZQo+Cj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5p Lm5pa3VsYUBpbnRlbC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50 ZWwuY29tPgo+IENjOiBZZXR1bmRlIEFkZWJpc2kgPHlldHVuZGV4LmFkZWJpc2lAaW50ZWwuY29t Pgo+IFNpZ25lZC1vZmYtYnk6IERlZXBhayBNIDxtLmRlZXBha0BpbnRlbC5jb20+Cj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgfCAgIDEgKwo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RzaS5jICAgICAgfCAgMTkgKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2kuaCAgICAgIHwgICA0ICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHNpX2NhYmMuYyB8IDE3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICAgfCAgIDQgKwo+ICA2IGZpbGVzIGNo YW5nZWQsIDIwNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NhYmMuYwo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv TWFrZWZpbGUKPiBpbmRleCA3ZmZiNTFiLi4wNjVjNDEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZp bGUKPiBAQCAtODMsNiArODMsNyBAQCBpOTE1LXkgKz0gZHZvX2NoNzAxNy5vIFwKPiAgCSAgaW50 ZWxfZHBfbXN0Lm8gXAo+ICAJICBpbnRlbF9kcC5vIFwKPiAgCSAgaW50ZWxfZHNpLm8gXAo+ICsJ ICBpbnRlbF9kc2lfY2FiYy5vIFwKPiAgCSAgaW50ZWxfZHNpX3BhbmVsX3ZidC5vIFwKPiAgCSAg aW50ZWxfZHNpX3BsbC5vIFwKPiAgCSAgaW50ZWxfZHZvLm8gXAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IGluZGV4IDA1MGQ4NjAuLmQxOTY0MDQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBAQCAtMzQ4OSw3ICszNDg5LDcgQEAgdm9pZCBpbnRlbF9zYmlfd3JpdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MTYgcmVnLCB1MzIgdmFsdWUsCj4gIAkJICAgICBl bnVtIGludGVsX3NiaV9kZXN0aW5hdGlvbiBkZXN0aW5hdGlvbik7Cj4gIHUzMiB2bHZfZmxpc2Rz aV9yZWFkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHJlZyk7Cj4gIHZv aWQgdmx2X2ZsaXNkc2lfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1 MzIgcmVnLCB1MzIgdmFsKTsKPiAtCj4gK2ludCBpbnRlbF9kc2lfY2FiY19pbml0X2JhY2tsaWdo dF9mdW5jcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpOwoKVGhpcyBw cm9iYWJseSBmaXRzIGJldHRlciBpbiBpbnRlbF9kcnYuaCB1bmRlciBhIC8qIGludGVsX2RzaV9j YWJjLmMgKi8KY29tbWVudCwgc2VlIHRoZSBmaWxlIGZvciBleGFtcGxlcy4KCj4gIGludCBpbnRl bF9ncHVfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpOwo+ ICBpbnQgaW50ZWxfZnJlcV9vcGNvZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBpbnQgdmFsKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBpbmRleCA0NTY2NzZj Li43YWE3MDdmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBAQCAtMTIwOSwxMCAr MTIwOSwyNSBAQCB2b2lkIGludGVsX2RzaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g IAllbHNlCj4gIAkJaW50ZWxfZW5jb2Rlci0+Y3J0Y19tYXNrID0gQklUKFBJUEVfQik7Cj4gIAo+ IC0JaWYgKGRldl9wcml2LT52YnQuZHNpLmNvbmZpZy0+ZHVhbF9saW5rKQo+ICsJaWYgKGRldl9w cml2LT52YnQuZHNpLmNvbmZpZy0+ZHVhbF9saW5rKSB7Cj4gIAkJaW50ZWxfZHNpLT5wb3J0cyA9 IEJJVChQT1JUX0EpIHwgQklUKFBPUlRfQyk7Cj4gLQllbHNlCj4gKwkJc3dpdGNoIChkZXZfcHJp di0+dmJ0LmRzaS5jb25maWctPmRsX2NhYmNfcG9ydCkgewo+ICsJCWNhc2UgQ0FCQ19QT1JUX0E6 Cj4gKwkJCWludGVsX2RzaS0+YmtsX2Rjc19wb3J0cyA9IEJJVChQT1JUX0EpOwo+ICsJCQlicmVh azsKPiArCQljYXNlIENBQkNfUE9SVF9DOgo+ICsJCQlpbnRlbF9kc2ktPmJrbF9kY3NfcG9ydHMg PSBCSVQoUE9SVF9DKTsKPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSBDQUJDX1BPUlRfQV9BTkRfQzoK PiArCQkJaW50ZWxfZHNpLT5ia2xfZGNzX3BvcnRzID0gQklUKFBPUlRfQSkgfCBCSVQoUE9SVF9D KTsKPiArCQkJYnJlYWs7Cj4gKwkJZGVmYXVsdDoKPiArCQkJRFJNX0VSUk9SKCJVbmtub3duIE1J UEkgcG9ydHMgZm9yIHNlbmRpbmcgRENTXG4iKTsKPiArCQl9Cj4gKwl9IGVsc2Ugewo+ICAJCWlu dGVsX2RzaS0+cG9ydHMgPSBCSVQocG9ydCk7Cj4gKwkJaW50ZWxfZHNpLT5ia2xfZGNzX3BvcnRz ID0gQklUKHBvcnQpOwo+ICsJfQo+ICAKPiAgCS8qIENyZWF0ZSBhIERTSSBob3N0IChhbmQgYSBk ZXZpY2UpIGZvciBlYWNoIHBvcnQuICovCj4gIAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRl bF9kc2ktPnBvcnRzKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RzaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKPiBpbmRleCAwZTc1OGYx Li41YzA3ZDU5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKPiBAQCAtMzQsNiArMzQs MTAgQEAKPiAgI2RlZmluZSBEU0lfRFVBTF9MSU5LX0ZST05UX0JBQ0sJMQo+ICAjZGVmaW5lIERT SV9EVUFMX0xJTktfUElYRUxfQUxUCQkyCj4gIAo+ICsjZGVmaW5lIENBQkNfUE9SVF9BICAgICAg ICAgICAgICAgICAgICAgMHgwMAo+ICsjZGVmaW5lIENBQkNfUE9SVF9DICAgICAgICAgICAgICAg ICAgICAgMHgwMQo+ICsjZGVmaW5lIENBQkNfUE9SVF9BX0FORF9DICAgICAgICAgICAgICAgMHgw Mgo+ICsKPiAgc3RydWN0IGludGVsX2RzaV9ob3N0Owo+ICAKPiAgc3RydWN0IGludGVsX2RzaSB7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPiBpbmRleCAwMDAwMDAwLi5kMTRhNjY5Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMKPiBAQCAtMCwwICsxLDE3OSBAQAo+ICsv Kgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAwNi0yMDEwIEludGVsIENvcnBvcmF0aW9uCgoyMDE2Cgo+ ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0 byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUK PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJh Z3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y dGlvbnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP Ugo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiArICog REVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBBdXRob3I6IERlZXBhayBNIDxt LmRlZXBhayBhdCBpbnRlbC5jb20+Cj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImludGVsX2Rydi5o Igo+ICsjaW5jbHVkZSAiaW50ZWxfZHNpLmgiCj4gKyNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICsj aW5jbHVkZSA8ZHJtL2RybV9taXBpX2RzaS5oPgo+ICsKPiArI2RlZmluZSBDQUJDX09GRiAgICAg ICAgICAgICAgICAgICAgICAgICgwIDw8IDApCj4gKyNkZWZpbmUgQ0FCQ19VU0VSX0lOVEVSRkFD RV9JTUFHRSAgICAgICAoMSA8PCAwKQo+ICsjZGVmaW5lIENBQkNfU1RJTExfUElDVFVSRSAgICAg ICAgICAgICAgKDIgPDwgMCkKPiArI2RlZmluZSBDQUJDX1ZJREVPX01PREUgICAgICAgICAgICAg ICAgICgzIDw8IDApCj4gKwo+ICsjZGVmaW5lIENBQkNfQkFDS0xJR0hUICAgICAgICAgICAgICAg ICAgKDEgPDwgMikKPiArI2RlZmluZSBDQUJDX0RJTU1JTkdfRElTUExBWSAgICAgICAgICAgICgx IDw8IDMpCj4gKyNkZWZpbmUgQ0FCQ19CQ1RSTCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1 KQo+ICsKPiArI2RlZmluZSBDQUJDX01BWF9WQUxVRSAgICAgICAgICAgICAgICAgIDB4RkYKPiAr CgpUaGUgZGVmaW5lcyBiZWxvdyBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIHJlbGV2YW50IGVudW0g aW4KaW5jbHVkZS92aWRlby9taXBpX2Rpc3BsYXkuaCB1c2luZyB0aGUgTUlQSSBEQ1Mgc3BlY2lm aWNhdGlvbgpuYW1lcy4gSSdsbCBjb3B5IHRoZW0gYmVsb3cuIFBsZWFzZSBjcmVhdGUgYSBzZXBh cmF0ZSBwcmVwIHBhdGNoIGFuZApzZW5kIGl0IHRvIGRyaS1kZXZlbC4KCj4gKyNkZWZpbmUgTUlQ SV9EQ1NfQ0FCQ19MRVZFTF9SRCAgICAgICAgICAweDUyCgpNSVBJX0RDU19HRVRfRElTUExBWV9C UklHSFRORVNTCgo+ICsjZGVmaW5lIE1JUElfRENTX0NBQkNfTUlOX0JSSUdIVE5FU1NfUkQgMHg1 RgoKTUlQSV9EQ1NfR0VUX0NBQkNfTUlOX0JSSUdIVE5FU1MKCj4gKyNkZWZpbmUgTUlQSV9EQ1Nf Q0FCQ19DT05UUk9MX1JEICAgICAgICAweDU2CgpNSVBJX0RDU19HRVRfUE9XRVJfU0FWRQoKPiAr I2RlZmluZSBNSVBJX0RDU19DQUJDX0NPTlRST0xfQlJJR0hUX1JEIDB4NTQKCk1JUElfRENTX0dF VF9DT05UUk9MX0RJU1BMQVkKCj4gKyNkZWZpbmUgTUlQSV9EQ1NfQ0FCQ19MRVZFTF9XUiAgICAg ICAgICAweDUxCgpNSVBJX0RDU19TRVRfRElTUExBWV9CUklHSFRORVNTCgo+ICsjZGVmaW5lIE1J UElfRENTX0NBQkNfTUlOX0JSSUdIVE5FU1NfV1IgMHg1RQoKTUlQSV9EQ1NfU0VUX0NBQkNfTUlO X0JSSUdIVE5FU1MKCj4gKyNkZWZpbmUgTUlQSV9EQ1NfQ0FCQ19DT05UUk9MX1dSICAgICAgICAw eDU1CgpNSVBJX0RDU19XUklURV9QT1dFUl9TQVZFCgo+ICsjZGVmaW5lIE1JUElfRENTX0NBQkNf Q09OVFJPTF9CUklHSFRfV1IgMHg1MwoKTUlQSV9EQ1NfV1JJVEVfQ09OVFJPTF9ESVNQTEFZCgo+ ICsKPiArc3RhdGljIHUzMiBjYWJjX2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICt7CglzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5l Y3Rvci0+ZW5jb2RlcjsKCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRl bF9kc2koJmVuY29kZXItPmJhc2UpOwoKU2FtZSBmb3IgYWxsIGZ1bmN0aW9ucyBiZWxvdy4KCj4g KwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBOVUxMOwo+ICsJc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIgPSBOVUxMOwo+ICsJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2Rl dmljZTsKPiArCXU4IGRhdGFbMl0gPSB7MH07Cj4gKwllbnVtIHBvcnQgcG9ydDsKPiArCj4gKwll bmNvZGVyID0gY29ubmVjdG9yLT5lbmNvZGVyOwo+ICsJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVs X2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50 ZWxfZHNpLT5ia2xfZGNzX3BvcnRzKSB7Cj4gKwkJZHNpX2RldmljZSA9IGludGVsX2RzaS0+ZHNp X2hvc3RzW3BvcnRdLT5kZXZpY2U7Cj4gKwkJbWlwaV9kc2lfZGNzX3JlYWQoZHNpX2RldmljZSwg TUlQSV9EQ1NfQ0FCQ19MRVZFTF9SRCwgZGF0YSwgMik7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIGRh dGFbMV07CgpIbW0sIGl0J3MgdXAgdG8gdGhlIG1hbnVmYWN0dXJlciB3aGV0aGVyIHRoZSB0aGlz IGlzIDggb3IgMTYgYml0cy4gSQpndWVzcyB5b3UncmUganVzdCBhc3N1bWluZyA4IGJpdHM/IEkg d29uZGVyIGlmIHRoaXMgc2hvdWxkIGJlIG1vcmUKZ2VuZXJpYyB3cnQgOCB2cy4gMTYgYml0cy4K Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGNhYmNfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKPiArewo+ICsJc3RydWN0IGludGVsX2Rz aSAqaW50ZWxfZHNpID0gTlVMTDsKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0g TlVMTDsKPiArCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7Cj4gKwl1OCBkYXRh WzJdID0gezB9Owo+ICsJZW51bSBwb3J0IHBvcnQ7Cj4gKwo+ICsJZW5jb2RlciA9IGNvbm5lY3Rv ci0+ZW5jb2RlcjsKPiArCWludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJh c2UpOwo+ICsKPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+YmtsX2Rjc19w b3J0cykgewo+ICsJCWRzaV9kZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2 aWNlOwo+ICsJCWRhdGFbMV0gPSBsZXZlbDsKPiArCQlkYXRhWzBdID0gTUlQSV9EQ1NfQ0FCQ19M RVZFTF9XUjsKPiArCQltaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKGRzaV9kZXZpY2UsIGRhdGEs IDIpOwoKUGxlYXNlIHVzZSBtaXBpX2RzaV9kY3Nfd3JpdGUoKS4gU2FtZSBmb3IgYWxsIGZ1bmN0 aW9ucyBiZWxvdy4KCj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGNhYmNfZGlzYWJsZV9i YWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBOVUxMOwo+ICsJc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIgPSBOVUxMOwo+ICsJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsK PiArCWVudW0gcG9ydCBwb3J0Owo+ICsJdTggZGF0YVsyXSA9IHswfTsKPiArCj4gKwllbmNvZGVy ID0gY29ubmVjdG9yLT5lbmNvZGVyOwo+ICsJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgm ZW5jb2Rlci0+YmFzZSk7Cj4gKwo+ICsJY2FiY19zZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgMCk7 Cj4gKwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5ia2xfZGNzX3BvcnRz KSB7Cj4gKwkJZHNpX2RldmljZSA9IGludGVsX2RzaS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7 Cj4gKwkJZGF0YVsxXSA9IENBQkNfT0ZGOwo+ICsJCWRhdGFbMF0gPSBNSVBJX0RDU19DQUJDX0NP TlRST0xfV1I7Cj4gKwkJbWlwaV9kc2lfZGNzX3dyaXRlX2J1ZmZlcihkc2lfZGV2aWNlLCBkYXRh LCAyKTsKPiArCQlkYXRhWzBdID0gTUlQSV9EQ1NfQ0FCQ19DT05UUk9MX0JSSUdIVF9XUjsKPiAr CQltaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKGRzaV9kZXZpY2UsIGRhdGEsIDIpOwo+ICsJfQo+ ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjYWJjX2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2kgPSBOVUxMOwo+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBOVUxMOwo+ICsJ c3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+ICsJc3RydWN0 IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsKPiArCWVudW0gcG9ydCBwb3J0Owo+ICsJdTgg ZGF0YVsyXSA9IHswfTsKPiArCj4gKwllbmNvZGVyID0gY29ubmVjdG9yLT5lbmNvZGVyOwo+ICsJ aW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwo+ICsJZm9y X2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5ia2xfZGNzX3BvcnRzKSB7Cj4gKwkJZHNp X2RldmljZSA9IGludGVsX2RzaS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7Cj4gKwkJZGF0YVsw XSA9IE1JUElfRENTX0NBQkNfQ09OVFJPTF9CUklHSFRfV1I7Cj4gKwkJZGF0YVsxXSA9IENBQkNf QkFDS0xJR0hUIHwgQ0FCQ19ESU1NSU5HX0RJU1BMQVkgfCBDQUJDX0JDVFJMOwo+ICsJCW1pcGlf ZHNpX2Rjc193cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7Cj4gKwkJZGF0YVswXSA9 IE1JUElfRENTX0NBQkNfQ09OVFJPTF9XUjsKPiArCQlkYXRhWzFdID0gQ0FCQ19TVElMTF9QSUNU VVJFOwo+ICsJCW1pcGlfZHNpX2Rjc193cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7 Cj4gKwl9Cj4gKwo+ICsJY2FiY19zZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgcGFuZWwtPmJhY2ts aWdodC5sZXZlbCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgY2FiY19zZXR1cF9iYWNrbGlnaHQo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCWVudW0gcGlwZSB1bnVzZWQp Cj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPiArCj4g KwlpZiAoZGV2X3ByaXYtPnZidC5iYWNrbGlnaHQucHJlc2VudCkKPiArCQlwYW5lbC0+YmFja2xp Z2h0LnByZXNlbnQgPSB0cnVlOwo+ICsJZWxzZSB7Cj4gKwkJRFJNX0VSUk9SKCJubyBiYWNrbGln aHQgcHJlc2VudCBwZXIgVkJUXG4iKTsKPiArCQlyZXR1cm4gMDsKPiArCX0KCk5vbmUgb2YgdGhl IGFib3ZlIGlzIG5lZWRlZC4KCmRldl9wcml2LT52YnQuYmFja2xpZ2h0LnByZXNlbnQgaXMgY2hl Y2tlZCBoaWdoZXIgbGV2ZWwgaW4KaW50ZWxfcGFuZWxfc2V0dXBfYmFja2xpZ2h0KCksIGFuZCBw YW5lbC0+YmFja2xpZ2h0LnByZXNlbnQgPSB0cnVlIGlzCnNldCB0aGVyZSBhcyB3ZWxsIGlmIHRo aXMgaG9vayByZXR1cm5zIDAuCgo+ICsKPiArCXBhbmVsLT5iYWNrbGlnaHQubWF4ID0gQ0FCQ19N QVhfVkFMVUU7Cj4gKwlwYW5lbC0+YmFja2xpZ2h0LmxldmVsID0gQ0FCQ19NQVhfVkFMVUU7Cj4g Kwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK2ludCBpbnRlbF9kc2lfY2FiY19pbml0X2JhY2ts aWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpCj4gK3sK PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9jb25uZWN0b3ItPmJhc2UuZGV2Owo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gaW50ZWxfY29ubmVjdG9yLT5lbmNv ZGVyOwo+ICsJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZpbnRlbF9jb25uZWN0b3ItPnBh bmVsOwo+ICsKPiArCWlmICghZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5jYWJjX3N1cHBvcnRl ZCkKPiArCQlyZXR1cm4gLUVJTlZBTDsKCi1FTk9ERVYgc2VlbXMgbW9yZSBhcHByb3ByaWF0ZS4K Cj4gKwo+ICsJaWYgKGVuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0RTSSkgewo+ICsJCURS TV9FUlJPUigiVXNlIERTSSBlbmNvZGVyIGZvciBDQUJDXG4iKTsKPiArCQlyZXR1cm4gLUVJTlZB TDsKPiArCX0KCglpZiAoV0FSTl9PTihlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9EU0kp KQoJCXJldHVybiAtRUlOVkFMOwoKPiArCj4gKwlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0gY2Fi Y19zZXR1cF9iYWNrbGlnaHQ7Cj4gKwlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZSA9IGNhYmNfZW5h YmxlX2JhY2tsaWdodDsKPiArCXBhbmVsLT5iYWNrbGlnaHQuZGlzYWJsZSA9IGNhYmNfZGlzYWJs ZV9iYWNrbGlnaHQ7Cj4gKwlwYW5lbC0+YmFja2xpZ2h0LnNldCA9IGNhYmNfc2V0X2JhY2tsaWdo dDsKPiArCXBhbmVsLT5iYWNrbGlnaHQuZ2V0ID0gY2FiY19nZXRfYmFja2xpZ2h0Owo+ICsKPiAr CXJldHVybiAwOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gaW5kZXggOGM4 OTk2Zi4uMGY5YmY4MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w YW5lbC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+IEBAIC0x NzE4LDYgKzE3MTgsMTAgQEAgaW50ZWxfcGFuZWxfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0 IGludGVsX3BhbmVsICpwYW5lbCkKPiAgCQljb250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBpbnRl bF9jb25uZWN0b3IsIHBhbmVsKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAo+ICsJaWYgKGNvbm5lY3Rvci0+ YmFzZS5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfRFNJICYmCj4gKwkJCWlu dGVsX2RzaV9jYWJjX2luaXRfYmFja2xpZ2h0X2Z1bmNzKGNvbm5lY3RvcikgPT0gMCkKCkluZGVu dGF0aW9uIGlzIG5vdCBxdWl0ZSByaWdodC4KCj4gKwkJcmV0dXJuOwo+ICsKPiAgCWlmIChJU19C Uk9YVE9OKGRldl9wcml2KSkgewo+ICAJCXBhbmVsLT5iYWNrbGlnaHQuc2V0dXAgPSBieHRfc2V0 dXBfYmFja2xpZ2h0Owo+ICAJCXBhbmVsLT5iYWNrbGlnaHQuZW5hYmxlID0gYnh0X2VuYWJsZV9i YWNrbGlnaHQ7CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kg Q2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=