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: Wed, 23 Mar 2016 13:50:14 +0200 Message-ID: <87r3f1pg5l.fsf@intel.com> References: <1458625270-29433-1-git-send-email-m.deepak@intel.com> <1458625270-29433-3-git-send-email-m.deepak@intel.com> <87egb2r5bv.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 75BB26E071 for ; Wed, 23 Mar 2016 11:51:09 +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: "Deepak, M" , "intel-gfx@lists.freedesktop.org" Cc: "Adebisi, YetundeX" , "Vetter, Daniel" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMyBNYXIgMjAxNiwgIkRlZXBhaywgTSIgPG0uZGVlcGFrQGludGVsLmNvbT4gd3Jv dGU6Cj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+IEZyb206IE5pa3VsYSwgSmFuaQo+ PiBTZW50OiBUdWVzZGF5LCBNYXJjaCAyMiwgMjAxNiA3OjE5IFBNCj4+IFRvOiBEZWVwYWssIE0g PG0uZGVlcGFrQGludGVsLmNvbT47IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4g Q2M6IERlZXBhaywgTSA8bS5kZWVwYWtAaW50ZWwuY29tPjsgVmV0dGVyLCBEYW5pZWwKPj4gPGRh bmllbC52ZXR0ZXJAaW50ZWwuY29tPjsgQWRlYmlzaSwgWWV0dW5kZVgKPj4gPHlldHVuZGV4LmFk ZWJpc2lAaW50ZWwuY29tPgo+PiBTdWJqZWN0OiBSZTogW01JUEkgQ0FCQyAyLzJdIGRybS9pOTE1 OiBDQUJDIHN1cHBvcnQgZm9yIGJhY2tsaWdodCBjb250cm9sCj4+IAo+PiBPbiBUdWUsIDIyIE1h ciAyMDE2LCBEZWVwYWsgTSA8bS5kZWVwYWtAaW50ZWwuY29tPiB3cm90ZToKPj4gPiBJbiBDQUJD IChDb250ZW50IEFkYXB0aXZlIEJyaWdodG5lc3MgQ29udHJvbCkgY29udGVudCBncmV5IGxldmVs IHNjYWxlCj4+ID4gY2FuIGJlIGluY3JlYXNlZCB3aGlsZSBzaW11bHRhbmVvdXNseSBkZWNyZWFz aW5nIGJyaWdodG5lc3Mgb2YgdGhlCj4+ID4gYmFja2xpZ2h0IHRvIGFjaGlldmUgc2FtZSBwZXJj ZWl2ZWQgYnJpZ2h0bmVzcy4KPj4gPgo+PiA+IFRoZSBDQUJDIGlzIG5vdCBzdGFuZGFyZGl6ZWQg YW5kIHBhbmVsIHZlbmRvcnMgYXJlIGZyZWUgdG8gZm9sbG93Cj4+ID4gdGhlaXIgaW1wbGVtZW50 YXRpb24uIFRoZSBDQUJDIGltcGxlbWVudGFpb24gaGVyZSBhc3N1bWVzIHRoYXQgdGhlCj4+ID4g cGFuZWxzIHVzZSBzdGFuZGFyZCBTVyByZWdpc3RlciBmb3IgY29udHJvbC4KPj4gPgo+PiA+IElu IHRoaXMgZGVzaWduIHRoZXJlIHdpbGwgYmUgbm8gUFdNIHNpZ25hbCBmcm9tIHRoZSBTb0MgYW5k IERDUwo+PiA+IGNvbW1hbmRzIGFyZSBzZW50IHRvIGVuYWJsZSBhbmQgY29udHJvbCB0aGUgYmFj a2xpZ2h0IGJyaWdodG5lc3MuCj4+ID4KPj4gPiB2MjogTW92aW5nIHRoZSBDQUJDIGJrbCBmdW5j dGlvbnMgdG8gbmV3IGZpbGUuKEphbmkpCj4+ID4KPj4gPiB2MzogUmViYXNlCj4+ID4KPj4gPiB2 NDogUmViYXNlCj4+ID4KPj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNv bT4KPj4gPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4+ID4g Q2M6IFlldHVuZGUgQWRlYmlzaSA8eWV0dW5kZXguYWRlYmlzaUBpbnRlbC5jb20+Cj4+ID4gU2ln bmVkLW9mZi1ieTogRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4KPj4gPiAtLS0KPj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICB8ICAgMSArCj4+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgfCAgIDIgKy0KPj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAgICB8ICAxOSArKystCj4+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RzaS5oICAgICAgfCAgIDQgKwo+PiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2lfY2FiYy5jIHwgMTc5Cj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyAgICB8ICAg NCArCj4+ID4gIDYgZmlsZXMgY2hhbmdlZCwgMjA2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pICBjcmVhdGUgbW9kZQo+PiA+IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k c2lfY2FiYy5jCj4+ID4KPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr ZWZpbGUKPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGluZGV4IDdmZmI1MWIu LjA2NWM0MTAgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUK Pj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+PiA+IEBAIC04Myw2ICs4 Myw3IEBAIGk5MTUteSArPSBkdm9fY2g3MDE3Lm8gXAo+PiA+ICAJICBpbnRlbF9kcF9tc3QubyBc Cj4+ID4gIAkgIGludGVsX2RwLm8gXAo+PiA+ICAJICBpbnRlbF9kc2kubyBcCj4+ID4gKwkgIGlu dGVsX2RzaV9jYWJjLm8gXAo+PiA+ICAJICBpbnRlbF9kc2lfcGFuZWxfdmJ0Lm8gXAo+PiA+ICAJ ICBpbnRlbF9kc2lfcGxsLm8gXAo+PiA+ICAJICBpbnRlbF9kdm8ubyBcCj4+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gPiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggaW5kZXggMDUwZDg2MC4uZDE5NjQwNCAxMDA2NDQKPj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiA+IEBAIC0zNDg5LDcgKzM0ODksNyBAQCB2b2lkIGludGVs X3NiaV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+PiAqZGV2X3ByaXYsIHUxNiByZWcs IHUzMiB2YWx1ZSwKPj4gPiAgCQkgICAgIGVudW0gaW50ZWxfc2JpX2Rlc3RpbmF0aW9uIGRlc3Rp bmF0aW9uKTsKPj4gPiAgdTMyIHZsdl9mbGlzZHNpX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCB1MzIgcmVnKTsKPj4gPiB2b2lkIHZsdl9mbGlzZHNpX3dyaXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHJlZywgdTMyCj4+ID4gdmFsKTsKPj4g PiAtCj4+ID4gK2ludCBpbnRlbF9kc2lfY2FiY19pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yCj4+ID4gKyppbnRlbF9jb25uZWN0b3IpOwo+PiAKPj4gVGhpcyBwcm9i YWJseSBmaXRzIGJldHRlciBpbiBpbnRlbF9kcnYuaCB1bmRlciBhIC8qIGludGVsX2RzaV9jYWJj LmMgKi8KPj4gY29tbWVudCwgc2VlIHRoZSBmaWxlIGZvciBleGFtcGxlcy4KPj4gCj4+ID4gIGlu dCBpbnRlbF9ncHVfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2 YWwpOyAgaW50Cj4+ID4gaW50ZWxfZnJlcV9vcGNvZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCBpbnQgdmFsKTsKPj4gPgo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2kuYwo+PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNp LmMKPj4gPiBpbmRleCA0NTY2NzZjLi43YWE3MDdmIDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHNpLmMKPj4gPiBAQCAtMTIwOSwxMCArMTIwOSwyNSBAQCB2b2lkIGludGVsX2RzaV9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ID4gIAllbHNlCj4+ID4gIAkJaW50ZWxfZW5j b2Rlci0+Y3J0Y19tYXNrID0gQklUKFBJUEVfQik7Cj4+ID4KPj4gPiAtCWlmIChkZXZfcHJpdi0+ dmJ0LmRzaS5jb25maWctPmR1YWxfbGluaykKPj4gPiArCWlmIChkZXZfcHJpdi0+dmJ0LmRzaS5j b25maWctPmR1YWxfbGluaykgewo+PiA+ICAJCWludGVsX2RzaS0+cG9ydHMgPSBCSVQoUE9SVF9B KSB8IEJJVChQT1JUX0MpOwo+PiA+IC0JZWxzZQo+PiA+ICsJCXN3aXRjaCAoZGV2X3ByaXYtPnZi dC5kc2kuY29uZmlnLT5kbF9jYWJjX3BvcnQpIHsKPj4gPiArCQljYXNlIENBQkNfUE9SVF9BOgo+ PiA+ICsJCQlpbnRlbF9kc2ktPmJrbF9kY3NfcG9ydHMgPSBCSVQoUE9SVF9BKTsKPj4gPiArCQkJ YnJlYWs7Cj4+ID4gKwkJY2FzZSBDQUJDX1BPUlRfQzoKPj4gPiArCQkJaW50ZWxfZHNpLT5ia2xf ZGNzX3BvcnRzID0gQklUKFBPUlRfQyk7Cj4+ID4gKwkJCWJyZWFrOwo+PiA+ICsJCWNhc2UgQ0FC Q19QT1JUX0FfQU5EX0M6Cj4+ID4gKwkJCWludGVsX2RzaS0+YmtsX2Rjc19wb3J0cyA9IEJJVChQ T1JUX0EpIHwKPj4gQklUKFBPUlRfQyk7Cj4+ID4gKwkJCWJyZWFrOwo+PiA+ICsJCWRlZmF1bHQ6 Cj4+ID4gKwkJCURSTV9FUlJPUigiVW5rbm93biBNSVBJIHBvcnRzIGZvciBzZW5kaW5nCj4+IERD U1xuIik7Cj4+ID4gKwkJfQo+PiA+ICsJfSBlbHNlIHsKPj4gPiAgCQlpbnRlbF9kc2ktPnBvcnRz ID0gQklUKHBvcnQpOwo+PiA+ICsJCWludGVsX2RzaS0+YmtsX2Rjc19wb3J0cyA9IEJJVChwb3J0 KTsKPj4gPiArCX0KPj4gPgo+PiA+ICAJLyogQ3JlYXRlIGEgRFNJIGhvc3QgKGFuZCBhIGRldmlj ZSkgZm9yIGVhY2ggcG9ydC4gKi8KPj4gPiAgCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVs X2RzaS0+cG9ydHMpIHsgZGlmZiAtLWdpdAo+PiA+IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHNpLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+PiA+IGluZGV4IDBl NzU4ZjEuLjVjMDdkNTkgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHNpLmgKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+PiA+ IEBAIC0zNCw2ICszNCwxMCBAQAo+PiA+ICAjZGVmaW5lIERTSV9EVUFMX0xJTktfRlJPTlRfQkFD SwkxCj4+ID4gICNkZWZpbmUgRFNJX0RVQUxfTElOS19QSVhFTF9BTFQJCTIKPj4gPgo+PiA+ICsj ZGVmaW5lIENBQkNfUE9SVF9BICAgICAgICAgICAgICAgICAgICAgMHgwMAo+PiA+ICsjZGVmaW5l IENBQkNfUE9SVF9DICAgICAgICAgICAgICAgICAgICAgMHgwMQo+PiA+ICsjZGVmaW5lIENBQkNf UE9SVF9BX0FORF9DICAgICAgICAgICAgICAgMHgwMgo+PiA+ICsKPj4gPiAgc3RydWN0IGludGVs X2RzaV9ob3N0Owo+PiA+Cj4+ID4gIHN0cnVjdCBpbnRlbF9kc2kgewo+PiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5jCj4+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5jCj4+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4g PiBpbmRleCAwMDAwMDAwLi5kMTRhNjY5Cj4+ID4gLS0tIC9kZXYvbnVsbAo+PiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMKPj4gPiBAQCAtMCwwICsxLDE3OSBA QAo+PiA+ICsvKgo+PiA+ICsgKiBDb3B5cmlnaHQgwqkgMjAwNi0yMDEwIEludGVsIENvcnBvcmF0 aW9uCj4+IAo+PiAyMDE2Cj4+IAo+PiA+ICsgKgo+PiA+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVi eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgo+PiA+ICsgb2J0YWluaW5n IGEKPj4gPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZQo+PiA+ICsgIlNvZnR3YXJlIiksCj4+ID4gKyAqIHRvIGRlYWwgaW4g dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0Cj4+ID4g KyBsaW1pdGF0aW9uCj4+ID4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLAo+PiA+ICsgc3VibGljZW5zZSwKPj4gPiArICogYW5k L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20KPj4gPiArIHRoZQo+PiA+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+PiA+ICsgKgo+PiA+ICsgKiBU aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5j bHVkaW5nCj4+ID4gKyB0aGUgbmV4dAo+PiA+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1 ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKPj4gPiArIG9mIHRoZQo+ PiA+ICsgKiBTb2Z0d2FyZS4KPj4gPiArICoKPj4gPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZCj4+IEtJTkQsCj4+ID4gKyBFWFBS RVNTIE9SCj4+ID4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YKPj4gPiArIE1FUkNIQU5UQUJJTElUWSwKPj4gPiArICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOCj4+IE5PIEVW RU5UCj4+ID4gKyBTSEFMTAo+PiA+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKPj4gREFNQUdFUwo+PiA+ICsgT1IgT1RIRVIKPj4g PiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP Ugo+PiBPVEhFUldJU0UsCj4+ID4gKyBBUklTSU5HCj4+ID4gKyAqIEZST00sIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UKPj4gT1IKPj4gPiArIE9U SEVSCj4+ID4gKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPj4gPiArICoKPj4gPiArICog QXV0aG9yOiBEZWVwYWsgTSA8bS5kZWVwYWsgYXQgaW50ZWwuY29tPiAqLwo+PiA+ICsKPj4gPiAr I2luY2x1ZGUgImludGVsX2Rydi5oIgo+PiA+ICsjaW5jbHVkZSAiaW50ZWxfZHNpLmgiCj4+ID4g KyNpbmNsdWRlICJpOTE1X2Rydi5oIgo+PiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9taXBpX2RzaS5o Pgo+PiA+ICsKPj4gPiArI2RlZmluZSBDQUJDX09GRiAgICAgICAgICAgICAgICAgICAgICAgICgw IDw8IDApCj4+ID4gKyNkZWZpbmUgQ0FCQ19VU0VSX0lOVEVSRkFDRV9JTUFHRSAgICAgICAoMSA8 PCAwKQo+PiA+ICsjZGVmaW5lIENBQkNfU1RJTExfUElDVFVSRSAgICAgICAgICAgICAgKDIgPDwg MCkKPj4gPiArI2RlZmluZSBDQUJDX1ZJREVPX01PREUgICAgICAgICAgICAgICAgICgzIDw8IDAp Cj4+ID4gKwo+PiA+ICsjZGVmaW5lIENBQkNfQkFDS0xJR0hUICAgICAgICAgICAgICAgICAgKDEg PDwgMikKPj4gPiArI2RlZmluZSBDQUJDX0RJTU1JTkdfRElTUExBWSAgICAgICAgICAgICgxIDw8 IDMpCj4+ID4gKyNkZWZpbmUgQ0FCQ19CQ1RSTCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1 KQo+PiA+ICsKPj4gPiArI2RlZmluZSBDQUJDX01BWF9WQUxVRSAgICAgICAgICAgICAgICAgIDB4 RkYKPj4gPiArCj4+IAo+PiBUaGUgZGVmaW5lcyBiZWxvdyBzaG91bGQgYmUgYWRkZWQgdG8gdGhl IHJlbGV2YW50IGVudW0gaW4KPj4gaW5jbHVkZS92aWRlby9taXBpX2Rpc3BsYXkuaCB1c2luZyB0 aGUgTUlQSSBEQ1Mgc3BlY2lmaWNhdGlvbiBuYW1lcy4gSSdsbAo+PiBjb3B5IHRoZW0gYmVsb3cu IFBsZWFzZSBjcmVhdGUgYSBzZXBhcmF0ZSBwcmVwIHBhdGNoIGFuZCBzZW5kIGl0IHRvIGRyaS0K Pj4gZGV2ZWwuCj4+IAo+PiA+ICsjZGVmaW5lIE1JUElfRENTX0NBQkNfTEVWRUxfUkQgICAgICAg ICAgMHg1Mgo+PiAKPj4gTUlQSV9EQ1NfR0VUX0RJU1BMQVlfQlJJR0hUTkVTUwo+PiAKPj4gPiAr I2RlZmluZSBNSVBJX0RDU19DQUJDX01JTl9CUklHSFRORVNTX1JEIDB4NUYKPj4gCj4+IE1JUElf RENTX0dFVF9DQUJDX01JTl9CUklHSFRORVNTCj4+IAo+PiA+ICsjZGVmaW5lIE1JUElfRENTX0NB QkNfQ09OVFJPTF9SRCAgICAgICAgMHg1Ngo+PiAKPj4gTUlQSV9EQ1NfR0VUX1BPV0VSX1NBVkUK Pj4gCj4+ID4gKyNkZWZpbmUgTUlQSV9EQ1NfQ0FCQ19DT05UUk9MX0JSSUdIVF9SRCAweDU0Cj4+ IAo+PiBNSVBJX0RDU19HRVRfQ09OVFJPTF9ESVNQTEFZCj4+IAo+PiA+ICsjZGVmaW5lIE1JUElf RENTX0NBQkNfTEVWRUxfV1IgICAgICAgICAgMHg1MQo+PiAKPj4gTUlQSV9EQ1NfU0VUX0RJU1BM QVlfQlJJR0hUTkVTUwo+PiAKPj4gPiArI2RlZmluZSBNSVBJX0RDU19DQUJDX01JTl9CUklHSFRO RVNTX1dSIDB4NUUKPj4gCj4+IE1JUElfRENTX1NFVF9DQUJDX01JTl9CUklHSFRORVNTCj4+IAo+ PiA+ICsjZGVmaW5lIE1JUElfRENTX0NBQkNfQ09OVFJPTF9XUiAgICAgICAgMHg1NQo+PiAKPj4g TUlQSV9EQ1NfV1JJVEVfUE9XRVJfU0FWRQo+PiAKPj4gPiArI2RlZmluZSBNSVBJX0RDU19DQUJD X0NPTlRST0xfQlJJR0hUX1dSIDB4NTMKPj4gCj4+IE1JUElfRENTX1dSSVRFX0NPTlRST0xfRElT UExBWQo+PiAKPj4gPiArCj4+ID4gK3N0YXRpYyB1MzIgY2FiY19nZXRfYmFja2xpZ2h0KHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcikgewo+PiAJc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7Cj4+IAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRl bF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPj4gCj4+IFNhbWUgZm9y IGFsbCBmdW5jdGlvbnMgYmVsb3cuCj4+IAo+PiA+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpID0gTlVMTDsKPj4gPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gTlVMTDsK Pj4gPiArCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7Cj4+ID4gKwl1OCBkYXRh WzJdID0gezB9Owo+PiA+ICsJZW51bSBwb3J0IHBvcnQ7Cj4+ID4gKwo+PiA+ICsJZW5jb2RlciA9 IGNvbm5lY3Rvci0+ZW5jb2RlcjsKPj4gPiArCWludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2ko JmVuY29kZXItPmJhc2UpOwo+PiA+ICsKPj4gPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGlu dGVsX2RzaS0+YmtsX2Rjc19wb3J0cykgewo+PiA+ICsJCWRzaV9kZXZpY2UgPSBpbnRlbF9kc2kt PmRzaV9ob3N0c1twb3J0XS0+ZGV2aWNlOwo+PiA+ICsJCW1pcGlfZHNpX2Rjc19yZWFkKGRzaV9k ZXZpY2UsIE1JUElfRENTX0NBQkNfTEVWRUxfUkQsCj4+IGRhdGEsIDIpOwo+PiA+ICsJfQo+PiA+ ICsKPj4gPiArCXJldHVybiBkYXRhWzFdOwo+PiAKPj4gSG1tLCBpdCdzIHVwIHRvIHRoZSBtYW51 ZmFjdHVyZXIgd2hldGhlciB0aGUgdGhpcyBpcyA4IG9yIDE2IGJpdHMuIEkgZ3Vlc3MKPj4geW91 J3JlIGp1c3QgYXNzdW1pbmcgOCBiaXRzPyBJIHdvbmRlciBpZiB0aGlzIHNob3VsZCBiZSBtb3Jl IGdlbmVyaWMgd3J0IDggdnMuCj4+IDE2IGJpdHMuCj4+IAo+IFtEZWVwYWssIE1dIE5lZWQgdG8g dGhpbmsgb24gaG93IHRvIG1ha2UgaXQgZ2VuZXJpYyB3cnQgOCB2cyAxNiBiaXRzLAo+IHByb2Js ZW0gaGVyZSBpcyB0byBzb21laG93IHdlIGhhdmUgdG8gaWRlbnRpZnkgdGhlIG5vIG9mIHBhcmFt ZXRlcnMgb3IKPiB3ZSBoYXZlIHRvIHBhc3MgdGhpcyBpbmZvIGluIFZCVC4uLgoKTG9vayBhdCB0 aGUgbWF4aW11bSB2YWx1ZSB0byBkZWNpZGU/IFRoYXQncyB3aGF0IG5lZWRzIHRvIGJlIHNldCBp bgpzZXR1cCBpZiB0aGUgc2l6ZSBjaGFuZ2VzLCBzbyBubyBuZWVkIHRvIGFkZCBhbm90aGVyIHZh cmlhYmxlLgoKQlIsCkphbmkuCgo+PiA+ICt9Cj4+ID4gKwo+PiA+ICtzdGF0aWMgdm9pZCBjYWJj X3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIKPj4g PiArbGV2ZWwpIHsKPj4gPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IE5VTEw7Cj4+ ID4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7Cj4+ID4gKwlzdHJ1Y3Qg bWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOwo+PiA+ICsJdTggZGF0YVsyXSA9IHswfTsKPj4g PiArCWVudW0gcG9ydCBwb3J0Owo+PiA+ICsKPj4gPiArCWVuY29kZXIgPSBjb25uZWN0b3ItPmVu Y29kZXI7Cj4+ID4gKwlpbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNl KTsKPj4gPiArCj4+ID4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPmJrbF9k Y3NfcG9ydHMpIHsKPj4gPiArCQlkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9y dF0tPmRldmljZTsKPj4gPiArCQlkYXRhWzFdID0gbGV2ZWw7Cj4+ID4gKwkJZGF0YVswXSA9IE1J UElfRENTX0NBQkNfTEVWRUxfV1I7Cj4+ID4gKwkJbWlwaV9kc2lfZGNzX3dyaXRlX2J1ZmZlcihk c2lfZGV2aWNlLCBkYXRhLCAyKTsKPj4gCj4+IFBsZWFzZSB1c2UgbWlwaV9kc2lfZGNzX3dyaXRl KCkuIFNhbWUgZm9yIGFsbCBmdW5jdGlvbnMgYmVsb3cuCj4+IAo+PiA+ICsJfQo+PiA+ICt9Cj4+ ID4gKwo+PiA+ICtzdGF0aWMgdm9pZCBjYWJjX2Rpc2FibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4gPiArewo+PiA+ICsJc3RydWN0IGludGVsX2RzaSAq aW50ZWxfZHNpID0gTlVMTDsKPj4gPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0g TlVMTDsKPj4gPiArCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7Cj4+ID4gKwll bnVtIHBvcnQgcG9ydDsKPj4gPiArCXU4IGRhdGFbMl0gPSB7MH07Cj4+ID4gKwo+PiA+ICsJZW5j b2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKPj4gPiArCWludGVsX2RzaSA9IGVuY190b19pbnRl bF9kc2koJmVuY29kZXItPmJhc2UpOwo+PiA+ICsKPj4gPiArCWNhYmNfc2V0X2JhY2tsaWdodChj b25uZWN0b3IsIDApOwo+PiA+ICsKPj4gPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVs X2RzaS0+YmtsX2Rjc19wb3J0cykgewo+PiA+ICsJCWRzaV9kZXZpY2UgPSBpbnRlbF9kc2ktPmRz aV9ob3N0c1twb3J0XS0+ZGV2aWNlOwo+PiA+ICsJCWRhdGFbMV0gPSBDQUJDX09GRjsKPj4gPiAr CQlkYXRhWzBdID0gTUlQSV9EQ1NfQ0FCQ19DT05UUk9MX1dSOwo+PiA+ICsJCW1pcGlfZHNpX2Rj c193cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7Cj4+ID4gKwkJZGF0YVswXSA9IE1J UElfRENTX0NBQkNfQ09OVFJPTF9CUklHSFRfV1I7Cj4+ID4gKwkJbWlwaV9kc2lfZGNzX3dyaXRl X2J1ZmZlcihkc2lfZGV2aWNlLCBkYXRhLCAyKTsKPj4gPiArCX0KPj4gPiArfQo+PiA+ICsKPj4g PiArc3RhdGljIHZvaWQgY2FiY19lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPj4gPiArewo+PiA+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNp ID0gTlVMTDsKPj4gPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gTlVMTDsKPj4g PiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPj4gPiAr CXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7Cj4+ID4gKwllbnVtIHBvcnQgcG9y dDsKPj4gPiArCXU4IGRhdGFbMl0gPSB7MH07Cj4+ID4gKwo+PiA+ICsJZW5jb2RlciA9IGNvbm5l Y3Rvci0+ZW5jb2RlcjsKPj4gPiArCWludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29k ZXItPmJhc2UpOwo+PiA+ICsKPj4gPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2Rz aS0+YmtsX2Rjc19wb3J0cykgewo+PiA+ICsJCWRzaV9kZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9o b3N0c1twb3J0XS0+ZGV2aWNlOwo+PiA+ICsJCWRhdGFbMF0gPSBNSVBJX0RDU19DQUJDX0NPTlRS T0xfQlJJR0hUX1dSOwo+PiA+ICsJCWRhdGFbMV0gPSBDQUJDX0JBQ0tMSUdIVCB8IENBQkNfRElN TUlOR19ESVNQTEFZIHwKPj4gQ0FCQ19CQ1RSTDsKPj4gPiArCQltaXBpX2RzaV9kY3Nfd3JpdGVf YnVmZmVyKGRzaV9kZXZpY2UsIGRhdGEsIDIpOwo+PiA+ICsJCWRhdGFbMF0gPSBNSVBJX0RDU19D QUJDX0NPTlRST0xfV1I7Cj4+ID4gKwkJZGF0YVsxXSA9IENBQkNfU1RJTExfUElDVFVSRTsKPj4g PiArCQltaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKGRzaV9kZXZpY2UsIGRhdGEsIDIpOwo+PiA+ ICsJfQo+PiA+ICsKPj4gPiArCWNhYmNfc2V0X2JhY2tsaWdodChjb25uZWN0b3IsIHBhbmVsLT5i YWNrbGlnaHQubGV2ZWwpOyB9Cj4+ID4gKwo+PiA+ICtzdGF0aWMgaW50IGNhYmNfc2V0dXBfYmFj a2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPj4gPiArCQllbnVtIHBp cGUgdW51c2VkKQo+PiA+ICt7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVj dG9yLT5iYXNlLmRldjsKPj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ID4gKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNv bm5lY3Rvci0+cGFuZWw7Cj4+ID4gKwo+PiA+ICsJaWYgKGRldl9wcml2LT52YnQuYmFja2xpZ2h0 LnByZXNlbnQpCj4+ID4gKwkJcGFuZWwtPmJhY2tsaWdodC5wcmVzZW50ID0gdHJ1ZTsKPj4gPiAr CWVsc2Ugewo+PiA+ICsJCURSTV9FUlJPUigibm8gYmFja2xpZ2h0IHByZXNlbnQgcGVyIFZCVFxu Iik7Cj4+ID4gKwkJcmV0dXJuIDA7Cj4+ID4gKwl9Cj4+IAo+PiBOb25lIG9mIHRoZSBhYm92ZSBp cyBuZWVkZWQuCj4+IAo+PiBkZXZfcHJpdi0+dmJ0LmJhY2tsaWdodC5wcmVzZW50IGlzIGNoZWNr ZWQgaGlnaGVyIGxldmVsIGluCj4+IGludGVsX3BhbmVsX3NldHVwX2JhY2tsaWdodCgpLCBhbmQg cGFuZWwtPmJhY2tsaWdodC5wcmVzZW50ID0gdHJ1ZSBpcyBzZXQKPj4gdGhlcmUgYXMgd2VsbCBp ZiB0aGlzIGhvb2sgcmV0dXJucyAwLgo+PiAKPj4gPiArCj4+ID4gKwlwYW5lbC0+YmFja2xpZ2h0 Lm1heCA9IENBQkNfTUFYX1ZBTFVFOwo+PiA+ICsJcGFuZWwtPmJhY2tsaWdodC5sZXZlbCA9IENB QkNfTUFYX1ZBTFVFOwo+PiA+ICsKPj4gPiArCXJldHVybiAwOwo+PiA+ICt9Cj4+ID4gKwo+PiA+ ICtpbnQgaW50ZWxfZHNpX2NhYmNfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nv bm5lY3Rvcgo+PiA+ICsqaW50ZWxfY29ubmVjdG9yKSB7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gaW50ZWxfY29ubmVjdG9yLT5iYXNlLmRldjsKPj4gPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ID4gKwlzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciA9IGludGVsX2Nvbm5lY3Rvci0+ZW5jb2RlcjsKPj4gPiArCXN0 cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmaW50ZWxfY29ubmVjdG9yLT5wYW5lbDsKPj4gPiAr Cj4+ID4gKwlpZiAoIWRldl9wcml2LT52YnQuZHNpLmNvbmZpZy0+Y2FiY19zdXBwb3J0ZWQpCj4+ ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+IAo+PiAtRU5PREVWIHNlZW1zIG1vcmUgYXBwcm9wcmlh dGUuCj4+IAo+PiA+ICsKPj4gPiArCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9E U0kpIHsKPj4gPiArCQlEUk1fRVJST1IoIlVzZSBEU0kgZW5jb2RlciBmb3IgQ0FCQ1xuIik7Cj4+ ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+ID4gKwl9Cj4+IAo+PiAJaWYgKFdBUk5fT04oZW5jb2Rl ci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRFNJKSkKPj4gCQlyZXR1cm4gLUVJTlZBTDsKPj4gCj4+ ID4gKwo+PiA+ICsJcGFuZWwtPmJhY2tsaWdodC5zZXR1cCA9IGNhYmNfc2V0dXBfYmFja2xpZ2h0 Owo+PiA+ICsJcGFuZWwtPmJhY2tsaWdodC5lbmFibGUgPSBjYWJjX2VuYWJsZV9iYWNrbGlnaHQ7 Cj4+ID4gKwlwYW5lbC0+YmFja2xpZ2h0LmRpc2FibGUgPSBjYWJjX2Rpc2FibGVfYmFja2xpZ2h0 Owo+PiA+ICsJcGFuZWwtPmJhY2tsaWdodC5zZXQgPSBjYWJjX3NldF9iYWNrbGlnaHQ7Cj4+ID4g KwlwYW5lbC0+YmFja2xpZ2h0LmdldCA9IGNhYmNfZ2V0X2JhY2tsaWdodDsKPj4gPiArCj4+ID4g KwlyZXR1cm4gMDsKPj4gPiArfQo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wYW5lbC5jCj4+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5j Cj4+ID4gaW5kZXggOGM4OTk2Zi4uMGY5YmY4MCAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcGFuZWwuYwo+PiA+IEBAIC0xNzE4LDYgKzE3MTgsMTAgQEAgaW50ZWxfcGFuZWxfaW5p dF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0Cj4+IGludGVsX3BhbmVsICpwYW5lbCkKPj4gPiAgCQlj b250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IsIHBhbmVsKTsKPj4gPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5i YXNlLmRldik7Cj4+ID4KPj4gPiArCWlmIChjb25uZWN0b3ItPmJhc2UuY29ubmVjdG9yX3R5cGUg PT0KPj4gRFJNX01PREVfQ09OTkVDVE9SX0RTSSAmJgo+PiA+ICsJCQlpbnRlbF9kc2lfY2FiY19p bml0X2JhY2tsaWdodF9mdW5jcyhjb25uZWN0b3IpID09IDApCj4+IAo+PiBJbmRlbnRhdGlvbiBp cyBub3QgcXVpdGUgcmlnaHQuCj4+IAo+PiA+ICsJCXJldHVybjsKPj4gPiArCj4+ID4gIAlpZiAo SVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPj4gPiAgCQlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0g Ynh0X3NldHVwX2JhY2tsaWdodDsKPj4gPiAgCQlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZSA9IGJ4 dF9lbmFibGVfYmFja2xpZ2h0Owo+PiAKPj4gLS0KPj4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4g U291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291 cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=