From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 3/3] drm/i915: CABC support for backlight control Date: Thu, 24 Mar 2016 16:55:47 +0200 Message-ID: <87lh583oy4.fsf@intel.com> References: <1458813835-7626-1-git-send-email-m.deepak@intel.com> <1458813835-7626-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 7A4706EA20 for ; Thu, 24 Mar 2016 14:55:50 +0000 (UTC) In-Reply-To: <1458813835-7626-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 T24gVGh1LCAyNCBNYXIgMjAxNiwgRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4gd3JvdGU6 Cj4gSW4gQ0FCQyAoQ29udGVudCBBZGFwdGl2ZSBCcmlnaHRuZXNzIENvbnRyb2wpIGNvbnRlbnQg Z3JleSBsZXZlbAo+IHNjYWxlIGNhbiBiZSBpbmNyZWFzZWQgd2hpbGUgc2ltdWx0YW5lb3VzbHkg ZGVjcmVhc2luZwo+IGJyaWdodG5lc3Mgb2YgdGhlIGJhY2tsaWdodCB0byBhY2hpZXZlIHNhbWUg cGVyY2VpdmVkIGJyaWdodG5lc3MuCj4KPiBUaGUgQ0FCQyBpcyBub3Qgc3RhbmRhcmRpemVkIGFu ZCBwYW5lbCB2ZW5kb3JzIGFyZSBmcmVlIHRvIGZvbGxvdwo+IHRoZWlyIGltcGxlbWVudGF0aW9u LiBUaGUgQ0FCQyBpbXBsZW1lbnRhaW9uIGhlcmUgYXNzdW1lcyB0aGF0IHRoZQo+IHBhbmVscyB1 c2Ugc3RhbmRhcmQgU1cgcmVnaXN0ZXIgZm9yIGNvbnRyb2wuCj4KPiBJbiB0aGlzIGRlc2lnbiB0 aGVyZSB3aWxsIGJlIG5vIFBXTSBzaWduYWwgZnJvbSB0aGUgU29DIGFuZCBEQ1MKPiBjb21tYW5k cyBhcmUgc2VudCB0byBlbmFibGUgYW5kIGNvbnRyb2wgdGhlIGJhY2tsaWdodCBicmlnaHRuZXNz Lgo+Cj4gdjI6IE1vdmluZyB0aGUgQ0FCQyBia2wgZnVuY3Rpb25zIHRvIG5ldyBmaWxlLihKYW5p KQo+Cj4gdjM6IFJlYmFzZQo+Cj4gdjQ6IFJlYmFzZQo+Cj4gdjU6IFVzZSBtaXBpX2RzaV9kY3Nf d3JpdGUoKSBpbnN0ZWFkIG9mIG1pcGlfZHNpX2Rjc193cml0ZV9idWZmZXIoKSAoSmFuaSkKPiAg ICAgTW92ZSBEQ1MgbWFjcm9gcyB0byBpbmNsdWRlL3ZpZGVvL21pcGlfZGlzcGxheS5oIChKYW5p KQo+Cj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4gQ2M6IERhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+IENjOiBZZXR1bmRlIEFkZWJpc2kg PHlldHVuZGV4LmFkZWJpc2lAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERlZXBhayBNIDxt LmRlZXBha0BpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl ICAgICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAg IHwgICAxIC0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICB8ICAgMiAr Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jICAgICAgfCAgMTkgKysrKy0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmggICAgICB8ICAgNCArCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMgfCAxNTQgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jICAgIHwg ICA0ICsKPiAgNyBmaWxlcyBjaGFuZ2VkLCAxODIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9j YWJjLmMKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gaW5kZXggN2ZmYjUxYi4uMDY1YzQxMCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L01ha2VmaWxlCj4gQEAgLTgzLDYgKzgzLDcgQEAgaTkxNS15ICs9IGR2b19j aDcwMTcubyBcCj4gIAkgIGludGVsX2RwX21zdC5vIFwKPiAgCSAgaW50ZWxfZHAubyBcCj4gIAkg IGludGVsX2RzaS5vIFwKPiArCSAgaW50ZWxfZHNpX2NhYmMubyBcCj4gIAkgIGludGVsX2RzaV9w YW5lbF92YnQubyBcCj4gIAkgIGludGVsX2RzaV9wbGwubyBcCj4gIAkgIGludGVsX2R2by5vIFwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCAwNTBkODYwLi45ZWQ2MGY4IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTM0ODksNyArMzQ4OSw2IEBAIHZvaWQgaW50ZWxf c2JpX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTE2IHJlZywgdTMy IHZhbHVlLAo+ICAJCSAgICAgZW51bSBpbnRlbF9zYmlfZGVzdGluYXRpb24gZGVzdGluYXRpb24p Owo+ICB1MzIgdmx2X2ZsaXNkc2lfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIHUzMiByZWcpOwo+ICB2b2lkIHZsdl9mbGlzZHNpX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgdTMyIHJlZywgdTMyIHZhbCk7Cj4gLQoKU3VwZXJmbHVvdXMgd2hp dGVwYWNlIGNoYW5nZS4KCj4gIGludCBpbnRlbF9ncHVfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpOwo+ICBpbnQgaW50ZWxfZnJlcV9vcGNvZGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmFsKTsKPiAgCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiBpbmRleCBjODdiNDUwLi45ZTQ5Mzk2IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiBAQCAtMTMyNSw2ICsxMzI1LDggQEAgdm9pZCBpbnRlbF9kcF9tc3RfZW5j b2Rlcl9jbGVhbnVwKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KTsK PiAgLyogaW50ZWxfZHNpLmMgKi8KPiAgdm9pZCBpbnRlbF9kc2lfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiAgCj4gKy8qIGludGVsX2RzaV9jYWJjLmMgKi8KPiAraW50IGludGVsX2Rz aV9jYWJjX2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVs X2Nvbm5lY3Rvcik7Cj4gIAo+ICAvKiBpbnRlbF9kdm8uYyAqLwo+ICB2b2lkIGludGVsX2R2b19p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4g aW5kZXggNDU2Njc2Yy4uN2FhNzA3ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4g QEAgLTEyMDksMTAgKzEyMDksMjUgQEAgdm9pZCBpbnRlbF9kc2lfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICAJZWxzZQo+ICAJCWludGVsX2VuY29kZXItPmNydGNfbWFzayA9IEJJVChQ SVBFX0IpOwo+ICAKPiAtCWlmIChkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWctPmR1YWxfbGluaykK PiArCWlmIChkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWctPmR1YWxfbGluaykgewo+ICAJCWludGVs X2RzaS0+cG9ydHMgPSBCSVQoUE9SVF9BKSB8IEJJVChQT1JUX0MpOwo+IC0JZWxzZQo+ICsJCXN3 aXRjaCAoZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5kbF9jYWJjX3BvcnQpIHsKPiArCQljYXNl IENBQkNfUE9SVF9BOgo+ICsJCQlpbnRlbF9kc2ktPmJrbF9kY3NfcG9ydHMgPSBCSVQoUE9SVF9B KTsKPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSBDQUJDX1BPUlRfQzoKPiArCQkJaW50ZWxfZHNpLT5i a2xfZGNzX3BvcnRzID0gQklUKFBPUlRfQyk7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgQ0FCQ19Q T1JUX0FfQU5EX0M6Cj4gKwkJCWludGVsX2RzaS0+YmtsX2Rjc19wb3J0cyA9IEJJVChQT1JUX0Ep IHwgQklUKFBPUlRfQyk7Cj4gKwkJCWJyZWFrOwo+ICsJCWRlZmF1bHQ6Cj4gKwkJCURSTV9FUlJP UigiVW5rbm93biBNSVBJIHBvcnRzIGZvciBzZW5kaW5nIERDU1xuIik7CgpJcyBpdCBhIGdvb2Qg aWRlYSB0byBsZWF2ZSB0aGUgZmllbGQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGNhc2U/IE1heWJl CmdvIGZvciBib3RoIHBvcnRzPwoKPiArCQl9Cj4gKwl9IGVsc2Ugewo+ICAJCWludGVsX2RzaS0+ cG9ydHMgPSBCSVQocG9ydCk7Cj4gKwkJaW50ZWxfZHNpLT5ia2xfZGNzX3BvcnRzID0gQklUKHBv cnQpOwo+ICsJfQo+ICAKPiAgCS8qIENyZWF0ZSBhIERTSSBob3N0IChhbmQgYSBkZXZpY2UpIGZv ciBlYWNoIHBvcnQuICovCj4gIAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBv cnRzKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKPiBpbmRleCAwZTc1OGYxLi41YzA3ZDU5 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKPiBAQCAtMzQsNiArMzQsMTAgQEAKPiAg I2RlZmluZSBEU0lfRFVBTF9MSU5LX0ZST05UX0JBQ0sJMQo+ICAjZGVmaW5lIERTSV9EVUFMX0xJ TktfUElYRUxfQUxUCQkyCj4gIAo+ICsjZGVmaW5lIENBQkNfUE9SVF9BICAgICAgICAgICAgICAg ICAgICAgMHgwMAo+ICsjZGVmaW5lIENBQkNfUE9SVF9DICAgICAgICAgICAgICAgICAgICAgMHgw MQo+ICsjZGVmaW5lIENBQkNfUE9SVF9BX0FORF9DICAgICAgICAgICAgICAgMHgwMgo+ICsKPiAg c3RydWN0IGludGVsX2RzaV9ob3N0Owo+ICAKPiAgc3RydWN0IGludGVsX2RzaSB7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl eCAwMDAwMDAwLi4yMzBlZTRmCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RzaV9jYWJjLmMKPiBAQCAtMCwwICsxLDE1NCBAQAo+ICsvKgo+ICsgKiBD b3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9u IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p bmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gKyAq IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli dXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUgaXMgZnVy bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiAr ICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1 ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gKyAqIFNv ZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lU SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF TUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJ QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiArICogREVBTElOR1MgSU4gVEhFIFNPRlRX QVJFLgo+ICsgKgo+ICsgKiBBdXRob3I6IERlZXBhayBNIDxtLmRlZXBhayBhdCBpbnRlbC5jb20+ Cj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImludGVsX2Rydi5oIgo+ICsjaW5jbHVkZSAiaW50ZWxf ZHNpLmgiCj4gKyNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICsjaW5jbHVkZSA8dmlkZW8vbWlwaV9k aXNwbGF5Lmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZHNpLmg+Cj4gKwo+ICsjZGVmaW5l IENBQkNfT0ZGICAgICAgICAgICAgICAgICAgICAgICAgKDAgPDwgMCkKPiArI2RlZmluZSBDQUJD X1VTRVJfSU5URVJGQUNFX0lNQUdFICAgICAgICgxIDw8IDApCj4gKyNkZWZpbmUgQ0FCQ19TVElM TF9QSUNUVVJFICAgICAgICAgICAgICAoMiA8PCAwKQo+ICsjZGVmaW5lIENBQkNfVklERU9fTU9E RSAgICAgICAgICAgICAgICAgKDMgPDwgMCkKPiArCj4gKyNkZWZpbmUgQ0FCQ19CQUNLTElHSFQg ICAgICAgICAgICAgICAgICAoMSA8PCAyKQo+ICsjZGVmaW5lIENBQkNfRElNTUlOR19ESVNQTEFZ ICAgICAgICAgICAgKDEgPDwgMykKPiArI2RlZmluZSBDQUJDX0JDVFJMICAgICAgICAgICAgICAg ICAgICAgICgxIDw8IDUpCj4gKwo+ICsjZGVmaW5lIENBQkNfTUFYX1ZBTFVFICAgICAgICAgICAg ICAgICAgMHhGRgo+ICsKPiArc3RhdGljIHUzMiBjYWJjX2dldF9iYWNrbGlnaHQoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVs X2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IG1pcGlf ZHNpX2RldmljZSAqZHNpX2RldmljZTsKPiArCXU4IGRhdGFbMl0gPSB7MH07Cj4gKwllbnVtIHBv cnQgcG9ydDsKPiArCj4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPmJrbF9k Y3NfcG9ydHMpIHsKClNvLCBpdCBzZWVtcyB3ZWlyZCB0byBkbyB0aGUgYnJpZ2h0bmVzcyByZWFk IG9uIGJvdGggcG9ydHMsIGFuZApvdmVyd3JpdGUgdGhlIHJlc3VsdCBvbiB0aGUgc2Vjb25kIHJv dW5kLiBEbyB5b3UgaGF2ZSBhbnkgZnVydGhlciBpbmZvCm9uIHRoaXM/CgpWQlQgb25seSByZWZl cnMgdG8gIlBhbmVsIFBXTSBCa2x0IENvbnRyb2xsZXIgT24vT0ZGIGNvbW1hbmRzIiBhbmQgIkNB QkMKT24vT0ZGIGNvbW1hbmRzIi4gSSBkb24ndCBrbm93IHdoYXQgc2hvdWxkIGJlIGRvbmUgd2l0 aCBicmlnaHRuZXNzCmNvbW1hbmRzIGluIGR1YWwgbGluayBjYXNlLgoKPiArCQlkc2lfZGV2aWNl ID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsKPiArCQltaXBpX2RzaV9kY3Nf cmVhZChkc2lfZGV2aWNlLCBNSVBJX0RDU19HRVRfRElTUExBWV9CUklHSFRORVNTLAo+ICsJCQkJ CWRhdGEsIDIpOwo+ICsJfQo+ICsKPiArCXJldHVybiBkYXRhWzFdOwoKU28gdGhlIHNwZWMgc2F5 cywKCiJPbmx5IG9uZSBwYXJhbWV0ZXIgaXMgcmV0dXJuZWQgZm9yIGRldmljZXMgdGhhdCBzdXBw b3J0IDgtYml0CmJyaWdodG5lc3MgbGV2ZWxzLiBUd28gcGFyYW1ldGVycyBhcmUgcmV0dXJuZWQg Zm9yIGRldmljZXMgdGhhdCBzdXBwb3J0CmJldHdlZW4gOS1iaXQgYW5kIDE2LWJpdCBicmlnaHRu ZXNzIGxldmVscy4iCgpUaGF0J3MgYW4gYW5ub3lpbmcgc3BlYywgYnV0IHlvdXIgaW1wbGVtZW50 YXRpb24gc2VlbXMgd3JvbmcgZm9yIGJvdGgKOC1iaXQgYW5kIDE2LWJpdCBicmlnaHRuZXNzLiBX aXRoIHRoZSBmb3JtZXIsIHlvdSdsbCBvbmx5IGdldCBvbmUgYnl0ZSwKYW5kIHlvdSdsbCByZXR1 cm4gdGhlIDAtaW5pdGlhbGl6ZWQgc2Vjb25kIGJ5dGUuIFdpdGggdGhlIGxhdHRlciwgeW91J2xs CmdldCB0d28gYnl0ZXMsIGJ1dCB5b3UnbGwgcmV0dXJuIHRoZSBsZWFzdCBzaWduaWZpY2FudCBi eXRlLgoKSWYsIGZvciBzdGFydGVycywgd2UgYXNzdW1lIDgtYml0IGJyaWdodG5lc3MsIEkgdGhp bmsgeW91IHNob3VsZCBqdXN0CnJlYWQgb25lIGJ5dGUuIChHaXZlbiB0aGUgc3BlYywgYW5kIGRl cGVuZGluZyBvbiB0aGUgaHcgaW1wbGVtZW50YXRpb24sCnRoaXMgbWlnaHQganVzdCB3b3JrIGZv ciAxNi1iaXQgcGFuZXMgYXMgd2VsbCBieSB3YXkgb2YgcmVhZGluZy93cml0aW5nCnRoZSBNU0Iu KQoKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgY2FiY19zZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIGxldmVsKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKPiArCXN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJc3Ry dWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsKPiArCXU4IGRhdGEgPSAwOwoKTm8gbmVl ZCB0byBpbml0aWFsaXplIHRoaXMuCgo+ICsJZW51bSBwb3J0IHBvcnQ7Cj4gKwo+ICsJZm9yX2Vh Y2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5ia2xfZGNzX3BvcnRzKSB7Cj4gKwkJZHNpX2Rl dmljZSA9IGludGVsX2RzaS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7Cj4gKwkJZGF0YSA9IGxl dmVsOwo+ICsJCW1pcGlfZHNpX2Rjc193cml0ZShkc2lfZGV2aWNlLCBNSVBJX0RDU19TRVRfRElT UExBWV9CUklHSFRORVNTLAo+ICsJCQkJCSZkYXRhLCBzaXplb2YoZGF0YSkpOwo+ICsJfQoKVGhp cyBzZWVtcyByaWdodCBmb3IgOC1iaXQgYnJpZ2h0bmVzcy4KCkknbSBzdGlsbCBjbHVlbGVzcyB3 aGljaCBwb3J0cyB0aGlzIGNvbW1hbmQgc2hvdWxkIGJlIHNlbnQgdG8gdGhvdWdoLgoKPiArfQo+ ICsKPiArc3RhdGljIHZvaWQgY2FiY19kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy ID0gY29ubmVjdG9yLT5lbmNvZGVyOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0g ZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2 aWNlICpkc2lfZGV2aWNlOwo+ICsJZW51bSBwb3J0IHBvcnQ7Cj4gKwl1OCBkYXRhID0gMDsKCk5v IG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGlzLgoKPiArCj4gKwljYWJjX3NldF9iYWNrbGlnaHQoY29u bmVjdG9yLCAwKTsKPiArCj4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPmJr bF9kY3NfcG9ydHMpIHsKPiArCQlkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9y dF0tPmRldmljZTsKPiArCQlkYXRhID0gQ0FCQ19PRkY7Cj4gKwkJbWlwaV9kc2lfZGNzX3dyaXRl KGRzaV9kZXZpY2UsIE1JUElfRENTX1dSSVRFX1BPV0VSX1NBVkUsCj4gKwkJCQkJJmRhdGEsIHNp emVvZihkYXRhKSk7Cj4gKwkJbWlwaV9kc2lfZGNzX3dyaXRlKGRzaV9kZXZpY2UsIE1JUElfRENT X1dSSVRFX0NPTlRST0xfRElTUExBWSwKPiArCQkJCQkmZGF0YSwgc2l6ZW9mKGRhdGEpKTsKCkhl cmUsIGl0IHNlZW1zIHRvIG1lIE1JUElfRENTX1dSSVRFX1BPV0VSX1NBVkUgaXMgYSAiQ0FCQyBP bi9PRkYKY29tbWFuZCIgd2hpbGUgTUlQSV9EQ1NfV1JJVEVfQ09OVFJPTF9ESVNQTEFZIGlzIGEg IlBhbmVsIFBXTSBCa2x0CkNvbnRyb2xsZXIgT24vT0ZGIGNvbW1hbmQiLCBidXQgSSdtIGp1c3Qg Z3Vlc3NpbmcuCgo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjYWJjX2VuYWJsZV9iYWNr bGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKPiArCXN0cnVjdCBp bnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ ICsJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+ICsJc3Ry dWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsKPiArCWVudW0gcG9ydCBwb3J0Owo+ICsJ dTggZGF0YSA9IDA7CgpObyBuZWVkIHRvIGluaXRpYWxpemUgdGhpcy4KCj4gKwo+ICsJZm9yX2Vh Y2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5ia2xfZGNzX3BvcnRzKSB7Cj4gKwkJZHNpX2Rl dmljZSA9IGludGVsX2RzaS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7Cj4gKwkJZGF0YSA9IENB QkNfQkFDS0xJR0hUIHwgQ0FCQ19ESU1NSU5HX0RJU1BMQVkgfCBDQUJDX0JDVFJMOwo+ICsJCW1p cGlfZHNpX2Rjc193cml0ZShkc2lfZGV2aWNlLCBNSVBJX0RDU19XUklURV9DT05UUk9MX0RJU1BM QVksCj4gKwkJCQkJJmRhdGEsIHNpemVvZihkYXRhKSk7Cj4gKwkJZGF0YSA9IENBQkNfU1RJTExf UElDVFVSRTsKPiArCQltaXBpX2RzaV9kY3Nfd3JpdGUoZHNpX2RldmljZSwgTUlQSV9EQ1NfV1JJ VEVfUE9XRVJfU0FWRSwKPiArCQkJCQkmZGF0YSwgc2l6ZW9mKGRhdGEpKTsKClNhbWUgaGVyZSBh cyBhYm92ZSB3cnQgcG9ydHMuCgo+ICsJfQo+ICsKPiArCWNhYmNfc2V0X2JhY2tsaWdodChjb25u ZWN0b3IsIHBhbmVsLT5iYWNrbGlnaHQubGV2ZWwpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGNh YmNfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAr CQllbnVtIHBpcGUgdW51c2VkKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0g JmNvbm5lY3Rvci0+cGFuZWw7Cj4gKwo+ICsJcGFuZWwtPmJhY2tsaWdodC5tYXggPSBDQUJDX01B WF9WQUxVRTsKPiArCXBhbmVsLT5iYWNrbGlnaHQubGV2ZWwgPSBDQUJDX01BWF9WQUxVRTsKPiAr Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAraW50IGludGVsX2RzaV9jYWJjX2luaXRfYmFja2xp Z2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiArewo+ ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2Nvbm5lY3Rvci0+YmFzZS5kZXY7Cj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBpbnRlbF9jb25uZWN0b3ItPmVuY29k ZXI7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmludGVsX2Nvbm5lY3Rvci0+cGFu ZWw7Cj4gKwo+ICsJaWYgKCFkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWctPmNhYmNfc3VwcG9ydGVk KQo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsKPiArCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVM X09VVFBVVF9EU0kpIHsKPiArCQlEUk1fRVJST1IoIlVzZSBEU0kgZW5jb2RlciBmb3IgQ0FCQ1xu Iik7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJaWYgKFdBUk5fT04oZW5jb2Rl ci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRFNJKSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKCkkgbWVh bnQgeW91IHNob3VsZCBhZGQgdGhpcyAqaW5zdGVhZCogb2YgdGhlIG9uZSBhYm92ZS4gVGhleSBk byBoYXZlIHRoZQpzYW1lIGNvbmRpdGlvbiBhbmQgYWxsLi4uCgo+ICsKPiArCXBhbmVsLT5iYWNr bGlnaHQuc2V0dXAgPSBjYWJjX3NldHVwX2JhY2tsaWdodDsKPiArCXBhbmVsLT5iYWNrbGlnaHQu ZW5hYmxlID0gY2FiY19lbmFibGVfYmFja2xpZ2h0Owo+ICsJcGFuZWwtPmJhY2tsaWdodC5kaXNh YmxlID0gY2FiY19kaXNhYmxlX2JhY2tsaWdodDsKPiArCXBhbmVsLT5iYWNrbGlnaHQuc2V0ID0g Y2FiY19zZXRfYmFja2xpZ2h0Owo+ICsJcGFuZWwtPmJhY2tsaWdodC5nZXQgPSBjYWJjX2dldF9i YWNrbGlnaHQ7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bh bmVsLmMKPiBpbmRleCA4Yzg5OTZmLi42NDFjMzhmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wYW5lbC5jCj4gQEAgLTE3MTgsNiArMTcxOCwxMCBAQCBpbnRlbF9wYW5lbF9pbml0X2JhY2ts aWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsKQo+ICAJCWNvbnRhaW5lcl9vZihw YW5lbCwgc3RydWN0IGludGVsX2Nvbm5lY3RvciwgcGFuZWwpOwo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCj4g KwlpZiAoY29ubmVjdG9yLT5iYXNlLmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RP Ul9EU0kgJiYKPiArCQlpbnRlbF9kc2lfY2FiY19pbml0X2JhY2tsaWdodF9mdW5jcyhjb25uZWN0 b3IpID09IDApCj4gKwkJcmV0dXJuOwo+ICsKPiAgCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkg ewo+ICAJCXBhbmVsLT5iYWNrbGlnaHQuc2V0dXAgPSBieHRfc2V0dXBfYmFja2xpZ2h0Owo+ICAJ CXBhbmVsLT5iYWNrbGlnaHQuZW5hYmxlID0gYnh0X2VuYWJsZV9iYWNrbGlnaHQ7CgotLSAKSmFu aSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=