From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [CABC PATCH v1 3/3][RFC] drm/i915: CABC support for backlight control Date: Mon, 6 Jul 2015 14:51:06 +0200 Message-ID: <20150706125106.GZ2156@phenom.ffwll.local> References: <1436156167-16127-1-git-send-email-m.deepak@intel.com> <1436156167-16127-4-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 mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1BB186E883 for ; Mon, 6 Jul 2015 05:48:21 -0700 (PDT) Received: by wiclp1 with SMTP id lp1so20096186wic.0 for ; Mon, 06 Jul 2015 05:48:19 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1436156167-16127-4-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: Deepak M Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdWwgMDYsIDIwMTUgYXQgMDk6NDY6MDdBTSArMDUzMCwgRGVlcGFrIE0gd3JvdGU6 Cj4gSW4gQ0FCQyAoQ29udGVudCBBZGFwdGl2ZSBCcmlnaHRuZXNzIENvbnRyb2wpIGNvbnRlbnQg Z3JleSBsZXZlbAo+IHNjYWxlIGNhbiBiZSBpbmNyZWFzZWQgd2hpbGUgc2ltdWx0YW5lb3VzbHkg ZGVjcmVhc2luZwo+IGJyaWdodG5lc3Mgb2YgdGhlIGJhY2tsaWdodCB0byBhY2hpZXZlIHNhbWUg cGVyY2VpdmVkIGJyaWdodG5lc3MuCj4gCj4gVGhlIENBQkMgaXMgbm90IHN0YW5kYXJkaXplZCBh bmQgcGFuZWwgdmVuZG9ycyBhcmUgZnJlZSB0byBmb2xsb3cKPiB0aGVpciBpbXBsZW1lbnRhdGlv bi4gVGhlIENBQkMgaW1wbGVtZW50YWlvbiBoZXJlIGFzc3VtZXMgdGhhdCB0aGUKPiBwYW5lbHMg dXNlIHN0YW5kYXJkIFNXIHJlZ2lzdGVyIGZvciBjb250cm9sLgo+IAo+IEluIHRoaXMgZGVzaWdu IHRoZXJlIHdpbGwgYmUgbm8gUFdNIHNpZ25hbCBmcm9tIHRoZSBTb0MgYW5kIERDUwo+IGNvbW1h bmRzIGFyZSBzZW50IHRvIGVuYWJsZSBhbmQgY29udHJvbCB0aGUgYmFja2xpZ2h0IGJyaWdodG5l c3MuCj4gCj4gU2lnbmVkLW9mZi1ieTogRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4KPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmggICB8ICAgMTMgKysrCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgfCAgMjI2ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLQo+ICBpbmNsdWRlL3ZpZGVvL21pcGlfZGlzcGxheS5oICAgICAg IHwgICAgOCArKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDI0MiBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2ku aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCj4gaW5kZXggYzM5ZTM5ZC4uMWYz M2NiMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCj4gQEAgLTM0LDYgKzM0LDE5IEBA Cj4gICNkZWZpbmUgRFNJX0RVQUxfTElOS19GUk9OVF9CQUNLCTEKPiAgI2RlZmluZSBEU0lfRFVB TF9MSU5LX1BJWEVMX0FMVAkJMgo+ICAKPiArI2RlZmluZSBDQUJDX09GRgkJCSgwIDw8IDApCj4g KyNkZWZpbmUgQ0FCQ19VU0VSX0lOVEVSRkFDRV9JTUFHRQkoMSA8PCAwKQo+ICsjZGVmaW5lIENB QkNfU1RJTExfUElDVFVSRQkJKDIgPDwgMCkKPiArI2RlZmluZSBDQUJDX1ZJREVPX01PREUJCQko MyA8PCAwKQo+ICsKPiArI2RlZmluZSBDQUJDX0JBQ0tMSUdIVAkJCSgxIDw8IDIpCj4gKyNkZWZp bmUgQ0FCQ19ESU1NSU5HX0RJU1BMQVkJCSgxIDw8IDMpCj4gKyNkZWZpbmUgQ0FCQ19CQ1RSTAkJ CSgxIDw8IDUpCj4gKwo+ICsjZGVmaW5lIENBQkNfUE9SVF9BCQkJMHgwMAo+ICsjZGVmaW5lIENB QkNfUE9SVF9DCQkJMHgwMQo+ICsjZGVmaW5lIENBQkNfUE9SVF9BX0FORF9DCQkweDAyCj4gKwo+ ICBzdHJ1Y3QgaW50ZWxfZHNpX2hvc3Q7Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfZHNpIHsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPiBpbmRleCA1NWFhZDIzLi43YWEyMTFlIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gQEAgLTMyLDcgKzMyLDEwIEBACj4gIAo+ICAj aW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5o Pgo+ICsjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJt X21pcGlfZHNpLmg+Cj4gICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKPiArI2luY2x1ZGUgImludGVs X2RzaS5oIgo+ICAKPiAgdm9pZAo+ICBpbnRlbF9maXhlZF9wYW5lbF9tb2RlKGNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICpmaXhlZF9tb2RlLAo+IEBAIC01MzYsNiArNTM5LDM3IEBAIHN0 YXRpYyB1MzIgdmx2X2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKQo+ICAJcmV0dXJuIF92bHZfZ2V0X2JhY2tsaWdodChkZXYsIHBpcGUpOwo+ICB9Cj4gIAo+ ICtzdGF0aWMgdTMyIGNhYmNfZ2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJh c2UuZGV2Owo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gTlVMTDsKPiArCXN0cnVj dCBkcm1fY3J0YyAqY3J0YyA9IE5VTEw7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciA9IE5VTEw7Cj4gKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOwo+ICsJdTgg ZGF0YVsyXSA9IHswfTsKPiArCWVudW0gcG9ydCBwb3J0ID0gUE9SVF9BOwo+ICsKPiArCWxpc3Rf Zm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7 Cj4gKwkJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rlcikgewo+ICsJ CQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFNJKQo+ICsJCQkJaW50ZWxfZHNp ID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwkJfQo+ICsJfQoKV2Ugc2Vl bSB0byBoYXZlIGEgYml0IGEgbGF5ZXJpbmcgdmlvbGF0aW9uIGdvaW5nIG9uIGhlcmU6IFRoZQpk ZXZfcHJpdi0+ZGlzcGxheS4qX2JhY2tsaWdodCBmdW5jdGlvbnMgYXJlIGZvciB0aGUgZGV2aWNl IGdsb2JhbApiYWNrbGlnaHQuIEJ1dCB0aGlzIGhlcmUgY29udHJvbHMgYSBzaW5rLXNwZWNpZmlj IGJhY2tsaWdodC4KCkFub3RoZXIgZXhhbXBsZSBvZiBhIHNpbmstc3BlY2lmaWMgYmFja2xpZ2h0 IGNvbnRyb2wgd291bGQgYmUgdGhlIG9wdGlvbmFsCmJhY2tsaWdodCBzdHVmZiBmb3IgZURQLiBJ biBsaW51eCB3ZSBoYXZlIGEgZmV3IGJhY2tsaWdodCBjbGFzc2VzIGxpa2UKZmlybXdhcmUsIHBs YXRmb3JtIG9yIHJhdy4gVGhlIGk5MTUgYmFja2xpZ2h0IGlzIGEgcmF3IG9uZSBhbmQgbGFzdCBp biB0aGUKcHJpb3JpdHkgY2hhaW4gdXNlcnNwYWNlIHVzZXMgdG8gZmlndXJlIG91dCB3aGljaCBi YWNrbGlnaHQgdG8gdXNlLgoKSSB0aGluayB0aGUgcmlnaHQgYXBwcm9hY2ggaGVyZSBmb3IgdGhl IENBQkMgZHNpIHNpbmsgYmFja2xpZ2h0IGlzIHRvCnJlZ2lzdGVyIGEgbmV3IGRzaSBiYWNrbGln aHQgZHJpdmVyIChpZiBhbmQgb25seSBpZiB0aGUgcGFuZWwgc3VwcG9ydHMgaXQKb2YgY291cnNl KSBvZiB0eXBlIGZpcm13YXJlIChvciBzb21ldGhpbmcgZWxzZSBzdWl0YWJsZSkuIFRoZW4gaXQg d2lsbAphdXRvbWF0aWNhbGx5IHRha2UgcHJlY2VuZGVuY2Ugb3ZlciB0aGUgaTkxNSByYXcgYmFj a2xpZ2h0LiBJdCB3b3VsZCBhbHNvCmJlIGdvb2QgdG8gaGF2ZSBhbiBleHBsaWNpdCBsaW5rIGZy b20gdGhlIHN5c2ZzIGNvbm5lY3RvciB0byB0aGlzCmNvbm5lY3Rvci1zcGVjaWZpYyBiYWNrbGln aHQgc28gdGhhdCB1c2Vyc3BhY2Uga25vd3MgYWJvdXQgaXQuCgpPciBzb21ldGhpbmcgYWxvbmcg dGhvc2UgbGluZXMsIGxpbnV4IGJhY2tsaWdodCBjb250cm9sIGlzIG9uZSBnaWFudCBtZXNzLgoK QXQgbGVhc3Qgd2l0aCB0aGF0IGFwcHJvYWNoIHdlIGRvbid0IG5lZWQgdG8gaGF2ZSBhbnkgaW50 ZXJhY3Rpb24gd2l0aCB0aGUKcGFuZWwgYmFja2xpZ2h0IGNvZGUgYW5kIHRoaXMgc2hvdWxkIGFs bCBtb3JlLW9yLWxlc3MgY2xlYW5seSBpbnRlZ3JhdGUuCi1EYW5pZWwKCj4gKwo+ICsJaWYgKGlu dGVsX2RzaS0+ZHVhbF9saW5rKSB7Cj4gKwkJaWYgKGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09 IENBQkNfUE9SVF9BIHx8Cj4gKwkJCQlpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BP UlRfQV9BTkRfQykKPiArCQkJcG9ydCA9IFBPUlRfQTsKPiArCQllbHNlIGlmIChpbnRlbF9kc2kt PmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BPUlRfQykKPiArCQkJcG9ydCA9IFBPUlRfQzsKPiArCX0K PiArCj4gKwlkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsK PiArCW1pcGlfZHNpX2Rjc19yZWFkKGRzaV9kZXZpY2UsIE1JUElfRENTX0NBQkNfTEVWRUxfUkQs IGRhdGEsIDIpOwo+ICsKPiArCXJldHVybiBkYXRhWzFdOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdTMy IGJ4dF9nZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAg ewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gQEAg LTYyNCw2ICs2NTgsNDcgQEAgc3RhdGljIHZvaWQgdmx2X3NldF9iYWNrbGlnaHQoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCj4gIAlJOTE1X1dSSVRFKFZMVl9C TENfUFdNX0NUTChwaXBlKSwgdG1wIHwgbGV2ZWwpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBj YWJjX3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIg bGV2ZWwpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2Uu ZGV2Owo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gTlVMTDsKPiArCXN0cnVjdCBk cm1fY3J0YyAqY3J0YyA9IE5VTEw7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9 IE5VTEw7Cj4gKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOwo+ICsJdTggZGF0 YVsyXSA9IHswfTsKPiArCWVudW0gcG9ydCBwb3J0ID0gUE9SVF9BOwo+ICsJdTggY291bnQgPSAx Owo+ICsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0 Y19saXN0LCBoZWFkKSB7Cj4gKwkJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0Yywg ZW5jb2Rlcikgewo+ICsJCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFNJKQo+ ICsJCQkJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwkJ fQo+ICsJfQo+ICsKPiArCWlmIChpbnRlbF9kc2ktPmR1YWxfbGluaykgewo+ICsJCWlmIChpbnRl bF9kc2ktPmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BPUlRfQSkKPiArCQkJcG9ydCA9IFBPUlRfQTsK PiArCQllbHNlIGlmIChpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BPUlRfQykKPiAr CQkJcG9ydCA9IFBPUlRfQzsKPiArCQllbHNlIGlmIChpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9 PSBDQUJDX1BPUlRfQV9BTkRfQykKPiArCQkJcG9ydCA9IFBPUlRfQTsKPiArCX0KPiArCj4gKwlp ZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmsgJiYgaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0KPiAr CQkJQ0FCQ19QT1JUX0FfQU5EX0MpCj4gKwkJY291bnQgPSAyOwo+ICsKPiArCWRvIHsKPiArCQlk c2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsKPiArCQlkYXRh WzFdID0gbGV2ZWw7Cj4gKwkJZGF0YVswXSA9IE1JUElfRENTX0NBQkNfTEVWRUxfV1I7Cj4gKwkJ bWlwaV9kc2lfZGNzX3dyaXRlX2J1ZmZlcihkc2lfZGV2aWNlLCBkYXRhLCAyKTsKPiArCQlpZiAo Y291bnQgPT0gMikKPiArCQkJcG9ydCA9IFBPUlRfQzsKPiArCX0gd2hpbGUgKC0tY291bnQgPiAw KTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgYnh0X3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+IEBAIC03NTcsNiArODMyLDUyIEBAIHN0 YXRpYyB2b2lkIHZsdl9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpCj4gIAlJOTE1X1dSSVRFKFZMVl9CTENfUFdNX0NUTDIocGlwZSksIHRtcCAmIH5C TE1fUFdNX0VOQUJMRSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGNhYmNfZGlzYWJsZV9iYWNr bGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPiArCXN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSA9IE5VTEw7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBOVUxMOwo+ ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBOVUxMOwo+ICsJc3RydWN0IG1pcGlf ZHNpX2RldmljZSAqZHNpX2RldmljZTsKPiArCWVudW0gcG9ydCBwb3J0ID0gUE9SVF9BOwo+ICsJ dTggZGF0YVsyXSA9IHswfTsKPiArCXU4IGNvdW50ID0gMTsKPiArCj4gKwlsaXN0X2Zvcl9lYWNo X2VudHJ5KGNydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkgewo+ICsJCWZv cl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKPiArCQkJaWYgKGVu Y29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RTSSkKPiArCQkJCWludGVsX2RzaSA9IGVuY190 b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJCX0KPiArCX0KPiArCj4gKwlpZiAoaW50 ZWxfZHNpLT5kdWFsX2xpbmspIHsKPiArCQlpZiAoaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0g Q0FCQ19QT1JUX0EpCj4gKwkJCXBvcnQgPSBQT1JUX0E7Cj4gKwkJZWxzZSBpZiAoaW50ZWxfZHNp LT5kbF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0MpCj4gKwkJCXBvcnQgPSBQT1JUX0M7Cj4gKwkJ ZWxzZSBpZiAoaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0FfQU5EX0MpCj4g KwkJCXBvcnQgPSBQT1JUX0E7Cj4gKwl9Cj4gKwo+ICsJaWYgKGludGVsX2RzaS0+ZHVhbF9saW5r ICYmIGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09Cj4gKwkJCUNBQkNfUE9SVF9BX0FORF9DKQo+ ICsJCWNvdW50ID0gMjsKPiArCj4gKwlkbyB7Cj4gKwkJZHNpX2RldmljZSA9IGludGVsX2RzaS0+ ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7Cj4gKwo+ICsJCWludGVsX3BhbmVsX2FjdHVhbGx5X3Nl dF9iYWNrbGlnaHQoY29ubmVjdG9yLCAwKTsKPiArCQlkYXRhWzFdID0gQ0FCQ19PRkY7Cj4gKwkJ ZGF0YVswXSA9IE1JUElfRENTX0NBQkNfQ09OVFJPTF9XUjsKPiArCQltaXBpX2RzaV9kY3Nfd3Jp dGVfYnVmZmVyKGRzaV9kZXZpY2UsIGRhdGEsIDIpOwo+ICsJCWRhdGFbMF0gPSBNSVBJX0RDU19D QUJDX0NPTlRST0xfQlJJR0hUX1dSOwo+ICsJCW1pcGlfZHNpX2Rjc193cml0ZV9idWZmZXIoZHNp X2RldmljZSwgZGF0YSwgMik7Cj4gKwo+ICsJCWlmIChjb3VudCA9PSAyKQo+ICsJCQlwb3J0ID0g UE9SVF9DOwo+ICsJfSB3aGlsZSAoLS1jb3VudCA+IDApOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9p ZCBieHRfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsK PiBAQCAtMTA0Myw2ICsxMTY0LDU2IEBAIHZvaWQgaW50ZWxfcGFuZWxfZW5hYmxlX2JhY2tsaWdo dChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAltdXRleF91bmxvY2soJmRl dl9wcml2LT5iYWNrbGlnaHRfbG9jayk7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGNhYmNfZW5h YmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiAr CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+ICsJc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpID0gTlVMTDsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IE5VTEw7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7Cj4gKwlzdHJ1 Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gKwlzdHJ1Y3QgbWlw aV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOwo+ICsJZW51bSBwb3J0IHBvcnQgPSBQT1JUX0E7Cj4g Kwl1OCBkYXRhWzJdID0gezB9Owo+ICsJdTggY291bnQgPSAxOwo+ICsKPiArCWxpc3RfZm9yX2Vh Y2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7Cj4gKwkJ Zm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rlcikgewo+ICsJCQlpZiAo ZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFNJKQo+ICsJCQkJaW50ZWxfZHNpID0gZW5j X3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWlmIChp bnRlbF9kc2ktPmR1YWxfbGluaykgewo+ICsJCWlmIChpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9 PSBDQUJDX1BPUlRfQSkKPiArCQkJcG9ydCA9IFBPUlRfQTsKPiArCQllbHNlIGlmIChpbnRlbF9k c2ktPmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BPUlRfQykKPiArCQkJcG9ydCA9IFBPUlRfQzsKPiAr CQllbHNlIGlmIChpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BPUlRfQV9BTkRfQykK PiArCQkJcG9ydCA9IFBPUlRfQTsKPiArCX0KPiArCj4gKwlpZiAoaW50ZWxfZHNpLT5kdWFsX2xp bmsgJiYgaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0KPiArCQkJQ0FCQ19QT1JUX0FfQU5EX0Mp Cj4gKwkJY291bnQgPSAyOwo+ICsKPiArCWRvIHsKPiArCQlkc2lfZGV2aWNlID0gaW50ZWxfZHNp LT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsKPiArCj4gKwo+ICsJCWRhdGFbMF0gPSBNSVBJX0RD U19DQUJDX0NPTlRST0xfQlJJR0hUX1dSOwo+ICsJCWRhdGFbMV0gPSBDQUJDX0JBQ0tMSUdIVCB8 IENBQkNfRElNTUlOR19ESVNQTEFZIHwgQ0FCQ19CQ1RSTDsKPiArCQltaXBpX2RzaV9kY3Nfd3Jp dGVfYnVmZmVyKGRzaV9kZXZpY2UsIGRhdGEsIDIpOwo+ICsJCWRhdGFbMF0gPSBNSVBJX0RDU19D QUJDX0NPTlRST0xfV1I7Cj4gKwkJZGF0YVsxXSA9IENBQkNfVklERU9fTU9ERTsKPiArCQltaXBp X2RzaV9kY3Nfd3JpdGVfYnVmZmVyKGRzaV9kZXZpY2UsIGRhdGEsIDIpOwo+ICsKPiArCQlpZiAo Y291bnQgPT0gMikKPiArCQkJcG9ydCA9IFBPUlRfQzsKPiArCX0gd2hpbGUgKC0tY291bnQgPiAw KTsKPiArCj4gKwlpbnRlbF9wYW5lbF9hY3R1YWxseV9zZXRfYmFja2xpZ2h0KGNvbm5lY3Rvciwg cGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7Cj4gK30KPiArCj4gICNpZiBJU19FTkFCTEVEKENPTkZJ R19CQUNLTElHSFRfQ0xBU1NfREVWSUNFKQo+ICBzdGF0aWMgaW50IGludGVsX2JhY2tsaWdodF9k ZXZpY2VfdXBkYXRlX3N0YXR1cyhzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmQpCj4gIHsKPiBA QCAtMTM2Miw2ICsxNTMzLDMzIEBAIHN0YXRpYyBpbnQgdmx2X3NldHVwX2JhY2tsaWdodChzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIGVudW0gcGlwZSBwaXBlCj4gIAlyZXR1cm4g MDsKPiAgfQo+ICAKPiArc3RhdGljIGludCBjYWJjX3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQkJZW51bSBwaXBlIHVudXNlZCkKPiArewo+ ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBOVUxMOwo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gTlVMTDsKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gTlVMTDsKPiArCXN0 cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPiArCXN0cnVjdCBt aXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7Cj4gKwl1OCBsZXZlbDsKPiArCj4gKwlsaXN0X2Zv cl9lYWNoX2VudHJ5KGNydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkgewo+ ICsJCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKPiArCQkJ aWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RTSSkKPiArCQkJCWludGVsX2RzaSA9 IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJCX0KPiArCX0KPiArCWRzaV9k ZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1swXS0+ZGV2aWNlOwo+ICsJcGFuZWwtPmJhY2ts aWdodC5tYXggPSAweEZGOwo+ICsJcGFuZWwtPmJhY2tsaWdodC5sZXZlbCA9IDB4RkY7Cj4gKwo+ ICsJbGV2ZWwgPSAyNTU7Cj4gKwlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZWQgPQo+ICsJCShsZXZl bCAmIDB4MDIpICYmIHBhbmVsLT5iYWNrbGlnaHQubGV2ZWwgIT0gMDsKPiArCXJldHVybiAwOwo+ ICt9Cj4gKwo+ICBzdGF0aWMgaW50Cj4gIGJ4dF9zZXR1cF9iYWNrbGlnaHQoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yLCBlbnVtIHBpcGUgdW51c2VkKQo+ICB7Cj4gQEAgLTE0Mzgs MTEgKzE2MzYsMjkgQEAgdm9pZCBpbnRlbF9wYW5lbF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCj4gIAlpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4gLQkJ ZGV2X3ByaXYtPmRpc3BsYXkuc2V0dXBfYmFja2xpZ2h0ID0gYnh0X3NldHVwX2JhY2tsaWdodDsK PiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5lbmFibGVfYmFja2xpZ2h0ID0gYnh0X2VuYWJsZV9iYWNr bGlnaHQ7Cj4gLQkJZGV2X3ByaXYtPmRpc3BsYXkuZGlzYWJsZV9iYWNrbGlnaHQgPSBieHRfZGlz YWJsZV9iYWNrbGlnaHQ7Cj4gLQkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2JhY2tsaWdodCA9IGJ4 dF9zZXRfYmFja2xpZ2h0Owo+IC0JCWRldl9wcml2LT5kaXNwbGF5LmdldF9iYWNrbGlnaHQgPSBi eHRfZ2V0X2JhY2tsaWdodDsKPiArCQlpZiAoZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5jYWJj X3N1cHBvcnRlZCkgewo+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5zZXR1cF9iYWNrbGlnaHQgPQo+ ICsJCQkJCWNhYmNfc2V0dXBfYmFja2xpZ2h0Owo+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5lbmFi bGVfYmFja2xpZ2h0ID0KPiArCQkJCQljYWJjX2VuYWJsZV9iYWNrbGlnaHQ7Cj4gKwkJCWRldl9w cml2LT5kaXNwbGF5LmRpc2FibGVfYmFja2xpZ2h0ID0KPiArCQkJCQljYWJjX2Rpc2FibGVfYmFj a2xpZ2h0Owo+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5zZXRfYmFja2xpZ2h0ID0KPiArCQkJCQlj YWJjX3NldF9iYWNrbGlnaHQ7Cj4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmdldF9iYWNrbGlnaHQg PQo+ICsJCQkJCWNhYmNfZ2V0X2JhY2tsaWdodDsKPiArCQl9IGVsc2Ugewo+ICsJCQlkZXZfcHJp di0+ZGlzcGxheS5zZXR1cF9iYWNrbGlnaHQgPQo+ICsJCQkJCWJ4dF9zZXR1cF9iYWNrbGlnaHQ7 Cj4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmVuYWJsZV9iYWNrbGlnaHQgPQo+ICsJCQkJCWJ4dF9l bmFibGVfYmFja2xpZ2h0Owo+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5kaXNhYmxlX2JhY2tsaWdo dCA9Cj4gKwkJCQkJYnh0X2Rpc2FibGVfYmFja2xpZ2h0Owo+ICsJCQlkZXZfcHJpdi0+ZGlzcGxh eS5zZXRfYmFja2xpZ2h0ID0KPiArCQkJCQlieHRfc2V0X2JhY2tsaWdodDsKPiArCQkJZGV2X3By aXYtPmRpc3BsYXkuZ2V0X2JhY2tsaWdodCA9Cj4gKwkJCQkJYnh0X2dldF9iYWNrbGlnaHQ7Cj4g KwkJfQo+ICAJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2KSB8fCBJU19TS1lMQUtFKGRldikp IHsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5zZXR1cF9iYWNrbGlnaHQgPSBiZHdfc2V0dXBfYmFj a2xpZ2h0Owo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmVuYWJsZV9iYWNrbGlnaHQgPSBiZHdfZW5h YmxlX2JhY2tsaWdodDsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS92aWRlby9taXBpX2Rpc3BsYXku aCBiL2luY2x1ZGUvdmlkZW8vbWlwaV9kaXNwbGF5LmgKPiBpbmRleCBkZGNjOGNhLi41YjhlZWVj IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdmlkZW8vbWlwaV9kaXNwbGF5LmgKPiArKysgYi9pbmNs dWRlL3ZpZGVvL21pcGlfZGlzcGxheS5oCj4gQEAgLTExNyw2ICsxMTcsMTQgQEAgZW51bSB7Cj4g IAlNSVBJX0RDU19HRVRfU0NBTkxJTkUJCT0gMHg0NSwKPiAgCU1JUElfRENTX1JFQURfRERCX1NU QVJUCQk9IDB4QTEsCj4gIAlNSVBJX0RDU19SRUFEX0REQl9DT05USU5VRQk9IDB4QTgsCj4gKwlN SVBJX0RDU19DQUJDX0xFVkVMX1JEICAgICAgICAgID0gMHg1MiwKPiArCU1JUElfRENTX0NBQkNf TUlOX0JSSUdIVE5FU1NfUkQgPSAweDVGLAo+ICsJTUlQSV9EQ1NfQ0FCQ19DT05UUk9MX1JEICAg ICAgICA9IDB4NTYsCj4gKwlNSVBJX0RDU19DQUJDX0NPTlRST0xfQlJJR0hUX1JEID0gMHg1NCwK PiArCU1JUElfRENTX0NBQkNfTEVWRUxfV1IgICAgICAgICAgPSAweDUxLAo+ICsJTUlQSV9EQ1Nf Q0FCQ19NSU5fQlJJR0hUTkVTU19XUiA9IDB4NUUsCj4gKwlNSVBJX0RDU19DQUJDX0NPTlRST0xf V1IgICAgICAgID0gMHg1NSwKPiArCU1JUElfRENTX0NBQkNfQ09OVFJPTF9CUklHSFRfV1IgPSAw eDUzLAo+ICB9Owo+ICAKPiAgLyogTUlQSSBEQ1MgcGl4ZWwgZm9ybWF0cyAqLwo+IC0tIAo+IDEu Ny45LjUKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0 aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==