From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrice CHOTARD Subject: Re: [PATCH v2 04/10] video: add support of panel OTM8009A Date: Tue, 13 Mar 2018 08:52:09 +0000 Message-ID: <897d61dc-cf79-d603-00f4-84bdfd809bdc@st.com> References: <1520005451-23217-1-git-send-email-yannick.fertre@st.com> <1520005451-23217-5-git-send-email-yannick.fertre@st.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1520005451-23217-5-git-send-email-yannick.fertre@st.com> Content-Language: en-US Content-ID: <214933FBF1DE804F89B9646E1CBF8F6F@st.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" To: Yannick FERTRE , Vikas MANOCHA , Benjamin Gaignard , Philippe CORNU , Patrick DELAUNAY , Christophe KERELLO , Archit Taneja , Andrzej Hajda , Laurent Pinchart , David Airlie , Brian Norris , Bhumika Goyal , Gustavo Padovan , Maarten Lankhorst , Sean Paul , Albert Aribaud , Simon Glass , Anatolij Gustschin , Thierry Reding Cc: "u-boot@lists.denx.de" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org SGkgWWFubmljaw0KDQpPbiAwMy8wMi8yMDE4IDA0OjQ0IFBNLCB5YW5uaWNrIGZlcnRyZSB3cm90 ZToNCj4gU3VwcG9ydCBmb3IgT3Jpc2UgVGVjaCBvdG04MDA5YSA0ODBwIGRzaSAyZGwgdmlkZW8g bW9kZSBwYW5lbC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IHlhbm5pY2sgZmVydHJlIDx5YW5uaWNr LmZlcnRyZUBzdC5jb20+DQo+IC0tLQ0KPiAgIGRyaXZlcnMvdmlkZW8vS2NvbmZpZyAgICAgICAg ICAgICAgfCAgIDggKw0KPiAgIGRyaXZlcnMvdmlkZW8vTWFrZWZpbGUgICAgICAgICAgICAgfCAg IDEgKw0KPiAgIGRyaXZlcnMvdmlkZW8vb3Jpc2V0ZWNoX290bTgwMDlhLmMgfCAzMjkgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgMzM4 IGluc2VydGlvbnMoKykNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy92aWRlby9vcmlz ZXRlY2hfb3RtODAwOWEuYw0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vS2NvbmZp ZyBiL2RyaXZlcnMvdmlkZW8vS2NvbmZpZw0KPiBpbmRleCAxOTgxMjk4Li5iNWZjNTM1IDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL3ZpZGVvL0tjb25maWcNCj4gKysrIGIvZHJpdmVycy92aWRlby9L Y29uZmlnDQo+IEBAIC0zMjAsNiArMzIwLDE0IEBAIGNvbmZpZyBWSURFT19MQ0RfQU5YOTgwNA0K PiAgIAlmcm9tIGEgcGFyYWxsZWwgTENEIGludGVyZmFjZSBhbmQgdHJhbnNsYXRlIGl0IG9uIHRo ZSBmeSBpbnRvIGEgRFANCj4gICAJaW50ZXJmYWNlIGZvciBkcml2aW5nIGVEUCBURlQgZGlzcGxh eXMuIEl0IHVzZXMgSTJDIGZvciBjb25maWd1cmF0aW9uLg0KPiAgIA0KPiArY29uZmlnIFZJREVP X0xDRF9PUklTRVRFQ0hfT1RNODAwOUENCj4gKwlib29sICJPVE04MDA5QSBEU0kgTENEIHBhbmVs IHN1cHBvcnQiDQo+ICsJZGVwZW5kcyBvbiBETV9WSURFTw0KPiArCXNlbGVjdCBWSURFT19NSVBJ X0RTSQ0KPiArCWRlZmF1bHQgbg0KPiArCS0tLWhlbHAtLS0NCj4gKwlTdXBwb3J0IGZvciBPcmlz ZSBUZWNoIG90bTgwMDlhIDQ4MHAgZHNpIDJkbCB2aWRlbyBtb2RlIHBhbmVsLg0KPiArDQo+ICAg Y29uZmlnIFZJREVPX0xDRF9TU0QyODI4DQo+ICAgCWJvb2wgIlNTRDI4MjggYnJpZGdlIGNoaXAi DQo+ICAgCWRlZmF1bHQgbg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9NYWtlZmlsZSBi L2RyaXZlcnMvdmlkZW8vTWFrZWZpbGUNCj4gaW5kZXggNmY0MmNjYS4uNjUwMDJhZiAxMDA2NDQN Cj4gLS0tIGEvZHJpdmVycy92aWRlby9NYWtlZmlsZQ0KPiArKysgYi9kcml2ZXJzL3ZpZGVvL01h a2VmaWxlDQo+IEBAIC0zNyw2ICszNyw3IEBAIG9iai0kKENPTkZJR19WSURFT19DT1JFQk9PVCkg Kz0gY29yZWJvb3Qubw0KPiAgIG9iai0kKENPTkZJR19WSURFT19EQThYWCkgKz0gZGE4eHgtZmIu byB2aWRlb21vZGVzLm8NCj4gICBvYmotJChDT05GSUdfVklERU9fTENEX0FOWDk4MDQpICs9IGFu eDk4MDQubw0KPiAgIG9iai0kKENPTkZJR19WSURFT19MQ0RfSElUQUNISV9UWDE4RDQyVk0pICs9 IGhpdGFjaGlfdHgxOGQ0MnZtX2xjZC5vDQo+ICtvYmotJChDT05GSUdfVklERU9fTENEX09SSVNF VEVDSF9PVE04MDA5QSkgKz0gb3Jpc2V0ZWNoX290bTgwMDlhLm8NCj4gICBvYmotJChDT05GSUdf VklERU9fTENEX1NTRDI4MjgpICs9IHNzZDI4Mjgubw0KPiAgIG9iai0kKENPTkZJR19WSURFT19N Qjg2Mnh4KSArPSBtYjg2Mnh4Lm8gdmlkZW9tb2Rlcy5vDQo+ICAgb2JqLSQoQ09ORklHX1ZJREVP X01YMykgKz0gbXgzZmIubyB2aWRlb21vZGVzLm8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlk ZW8vb3Jpc2V0ZWNoX290bTgwMDlhLmMgYi9kcml2ZXJzL3ZpZGVvL29yaXNldGVjaF9vdG04MDA5 YS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjc5ZjJkYTgNCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL3ZpZGVvL29yaXNldGVjaF9vdG04MDA5YS5j DQo+IEBAIC0wLDAgKzEsMzI5IEBADQo+ICsvKg0KPiArICogQ29weXJpZ2h0IChDKSAyMDE4IFNU TWljcm9lbGVjdHJvbmljcyAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQNCj4gKyAqIEF1dGhvcihzKTog WWFubmljayBGZXJ0cmUgPHlhbm5pY2suZmVydHJlQHN0LmNvbT4gZm9yIFNUTWljcm9lbGVjdHJv bmljcy4NCj4gKyAqCSAgICAgIFBoaWxpcHBlIENvcm51IDxwaGlsaXBwZS5jb3JudUBzdC5jb20+ IGZvciBTVE1pY3JvZWxlY3Ryb25pY3MuDQo+ICsgKg0KPiArICogVGhpcyBvdG04MDA5YSBwYW5l bCBkcml2ZXIgaXMgYmFzZWQgb24gdGhlIHBhbmVsIGRyaXZlciBmcm9tDQo+ICsgKiBkcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtb3Jpc2V0ZWNoLW90bTgwMDlhLmMgKGtlcm5lbCBsaW51eCkN Cj4gKyAqDQo+ICsgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0KPiArICovDQo+ ICsjaW5jbHVkZSA8YXNtL2dwaW8uaD4NCj4gKyNpbmNsdWRlIDxiYWNrbGlnaHQuaD4NCj4gKyNp bmNsdWRlIDxjb21tb24uaD4NCj4gKyNpbmNsdWRlIDxkbS5oPg0KPiArI2luY2x1ZGUgPHBhbmVs Lmg+DQo+ICsjaW5jbHVkZSA8cG93ZXIvcmVndWxhdG9yLmg+DQo+ICsjaW5jbHVkZSA8bWlwaV9k aXNwbGF5Lmg+DQo+ICsNCj4gK0RFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOw0KPiArDQo+ICsjZGVm aW5lIERSVl9OQU1FICJvcmlzZXRlY2hfb3RtODAwOWEiDQo+ICsNCj4gKyNkZWZpbmUgT1RNODAw OUFfQkFDS0xJR0hUX0RFRkFVTFQJMjQwDQo+ICsjZGVmaW5lIE9UTTgwMDlBX0JBQ0tMSUdIVF9N QVgJCTI1NQ0KPiArDQo+ICsvKiBNYW51ZmFjdHVyZXIgQ29tbWFuZCBTZXQgKi8NCj4gKyNkZWZp bmUgTUNTX0FEUlNGVAkweDAwMDAJLyogQWRkcmVzcyBTaGlmdCBGdW5jdGlvbiAqLw0KPiArI2Rl ZmluZSBNQ1NfUEFOU0VUCTB4QjNBNgkvKiBQYW5lbCBUeXBlIFNldHRpbmcgKi8NCj4gKyNkZWZp bmUgTUNTX1NEX0NUUkwJMHhDMEEyCS8qIFNvdXJjZSBEcml2ZXIgVGltaW5nIFNldHRpbmcgKi8N Cj4gKyNkZWZpbmUgTUNTX1BfRFJWX00JMHhDMEI0CS8qIFBhbmVsIERyaXZpbmcgTW9kZSAqLw0K PiArI2RlZmluZSBNQ1NfT1NDX0FESgkweEMxODEJLyogT3NjaWxsYXRvciBBZGp1c3RtZW50IGZv ciBJZGxlL05vcm1hbCBtb2RlICovDQo+ICsjZGVmaW5lIE1DU19SR0JfVklEX1NFVAkweEMxQTEJ LyogUkdCIFZpZGVvIE1vZGUgU2V0dGluZyAqLw0KPiArI2RlZmluZSBNQ1NfU0RfUENIX0NUUkwJ MHhDNDgwCS8qIFNvdXJjZSBEcml2ZXIgUHJlY2hhcmdlIENvbnRyb2wgKi8NCj4gKyNkZWZpbmUg TUNTX05PX0RPQzEJMHhDNDhBCS8qIENvbW1hbmQgbm90IGRvY3VtZW50ZWQgKi8NCj4gKyNkZWZp bmUgTUNTX1BXUl9DVFJMMQkweEM1ODAJLyogUG93ZXIgQ29udHJvbCBTZXR0aW5nIDEgKi8NCj4g KyNkZWZpbmUgTUNTX1BXUl9DVFJMMgkweEM1OTAJLyogUG93ZXIgQ29udHJvbCBTZXR0aW5nIDIg Zm9yIE5vcm1hbCBNb2RlICovDQo+ICsjZGVmaW5lIE1DU19QV1JfQ1RSTDQJMHhDNUIwCS8qIFBv d2VyIENvbnRyb2wgU2V0dGluZyA0IGZvciBEQyBWb2x0YWdlICovDQo+ICsjZGVmaW5lIE1DU19Q QU5DVFJMU0VUMQkweENCODAJLyogUGFuZWwgQ29udHJvbCBTZXR0aW5nIDEgKi8NCj4gKyNkZWZp bmUgTUNTX1BBTkNUUkxTRVQyCTB4Q0I5MAkvKiBQYW5lbCBDb250cm9sIFNldHRpbmcgMiAqLw0K PiArI2RlZmluZSBNQ1NfUEFOQ1RSTFNFVDMJMHhDQkEwCS8qIFBhbmVsIENvbnRyb2wgU2V0dGlu ZyAzICovDQo+ICsjZGVmaW5lIE1DU19QQU5DVFJMU0VUNAkweENCQjAJLyogUGFuZWwgQ29udHJv bCBTZXR0aW5nIDQgKi8NCj4gKyNkZWZpbmUgTUNTX1BBTkNUUkxTRVQ1CTB4Q0JDMAkvKiBQYW5l bCBDb250cm9sIFNldHRpbmcgNSAqLw0KPiArI2RlZmluZSBNQ1NfUEFOQ1RSTFNFVDYJMHhDQkQw CS8qIFBhbmVsIENvbnRyb2wgU2V0dGluZyA2ICovDQo+ICsjZGVmaW5lIE1DU19QQU5DVFJMU0VU NwkweENCRTAJLyogUGFuZWwgQ29udHJvbCBTZXR0aW5nIDcgKi8NCj4gKyNkZWZpbmUgTUNTX1BB TkNUUkxTRVQ4CTB4Q0JGMAkvKiBQYW5lbCBDb250cm9sIFNldHRpbmcgOCAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFOVTJEMQkweENDODAJLyogUGFuZWwgVTJEIFNldHRpbmcgMSAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFOVTJEMgkweENDOTAJLyogUGFuZWwgVTJEIFNldHRpbmcgMiAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFOVTJEMwkweENDQTAJLyogUGFuZWwgVTJEIFNldHRpbmcgMyAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFORDJVMQkweENDQjAJLyogUGFuZWwgRDJVIFNldHRpbmcgMSAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFORDJVMgkweENDQzAJLyogUGFuZWwgRDJVIFNldHRpbmcgMiAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFORDJVMwkweENDRDAJLyogUGFuZWwgRDJVIFNldHRpbmcgMyAqLw0KPiArI2RlZmlu ZSBNQ1NfR09BVlNUCTB4Q0U4MAkvKiBHT0EgVlNUIFNldHRpbmcgKi8NCj4gKyNkZWZpbmUgTUNT X0dPQUNMS0ExCTB4Q0VBMAkvKiBHT0EgQ0xLQTEgU2V0dGluZyAqLw0KPiArI2RlZmluZSBNQ1Nf R09BQ0xLQTMJMHhDRUIwCS8qIEdPQSBDTEtBMyBTZXR0aW5nICovDQo+ICsjZGVmaW5lIE1DU19H T0FFQ0xLCTB4Q0ZDMAkvKiBHT0EgRUNMSyBTZXR0aW5nICovDQo+ICsjZGVmaW5lIE1DU19OT19E T0MyCTB4Q0ZEMAkvKiBDb21tYW5kIG5vdCBkb2N1bWVudGVkICovDQo+ICsjZGVmaW5lIE1DU19H VkREU0VUCTB4RDgwMAkvKiBHVkREL05HVkREICovDQo+ICsjZGVmaW5lIE1DU19WQ09NREMJMHhE OTAwCS8qIFZDT00gVm9sdGFnZSBTZXR0aW5nICovDQo+ICsjZGVmaW5lIE1DU19HTUNUMl8yUAkw eEUxMDAJLyogR2FtbWEgQ29ycmVjdGlvbiAyLjIrIFNldHRpbmcgKi8NCj4gKyNkZWZpbmUgTUNT X0dNQ1QyXzJOCTB4RTIwMAkvKiBHYW1tYSBDb3JyZWN0aW9uIDIuMi0gU2V0dGluZyAqLw0KPiAr I2RlZmluZSBNQ1NfTk9fRE9DMwkweEY1QjYJLyogQ29tbWFuZCBub3QgZG9jdW1lbnRlZCAqLw0K PiArI2RlZmluZSBNQ1NfQ01EMl9FTkExCTB4RkYwMAkvKiBFbmFibGUgQWNjZXNzIENvbW1hbmQy ICJDTUQyIiAqLw0KPiArI2RlZmluZSBNQ1NfQ01EMl9FTkEyCTB4RkY4MAkvKiBFbmFibGUgQWNj ZXNzIE9yaXNlIENvbW1hbmQyICovDQo+ICsNCj4gK3N0cnVjdCBvdG04MDA5YV9wYW5lbF9wcml2 IHsNCj4gKwlzdHJ1Y3QgdWRldmljZSAqcmVnOw0KPiArCXN0cnVjdCBncGlvX2Rlc2MgcmVzZXQ7 DQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgdm9pZCBvdG04MDA5YV9kY3Nfd3JpdGVfYnVmKHN0cnVj dCB1ZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsDQo+ICsJCQkJICAgc2l6ZV90IGxlbikN Cj4gK3sNCj4gKwlzdHJ1Y3QgbWlwaV9kc2lfcGFuZWxfcGxhdCAqcGxhdCA9IGRldl9nZXRfcGxh dGRhdGEoZGV2KTsNCj4gKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkZXZpY2UgPSBwbGF0LT5k ZXZpY2U7DQo+ICsNCj4gKwlpZiAobWlwaV9kc2lfZGNzX3dyaXRlX2J1ZmZlcihkZXZpY2UsIGRh dGEsIGxlbikgPCAwKQ0KPiArCQlwcl9lcnIoIm1pcGkgZHNpIGRjcyB3cml0ZSBidWZmZXIgZmFp bGVkXG4iKTsNCg0KDQpkZXZfZXJyKCkNCg0KPiArfQ0KPiArDQo+ICsjZGVmaW5lIGRjc193cml0 ZV9zZXEoZGV2LCBzZXEuLi4pCQkJCVwNCj4gKyh7CQkJCQkJCQlcDQo+ICsJc3RhdGljIGNvbnN0 IHU4IGRbXSA9IHsgc2VxIH07CQkJCVwNCj4gKwlvdG04MDA5YV9kY3Nfd3JpdGVfYnVmKGRldiwg ZCwgQVJSQVlfU0laRShkKSk7CQlcDQo+ICt9KQ0KPiArDQo+ICsjZGVmaW5lIGRjc193cml0ZV9j bWRfYXQoZGV2LCBjbWQsIHNlcS4uLikJCVwNCj4gKyh7CQkJCQkJCVwNCj4gKwlzdGF0aWMgY29u c3QgdTE2IGMgPSBjbWQ7CQkJXA0KPiArCXN0cnVjdCB1ZGV2aWNlICpkZXZpY2UgPSBkZXY7CQkJ XA0KPiArCWRjc193cml0ZV9zZXEoZGV2aWNlLCBNQ1NfQURSU0ZULCAoYykgJiAweEZGKTsJXA0K PiArCWRjc193cml0ZV9zZXEoZGV2aWNlLCAoYykgPj4gOCwgc2VxKTsJCVwNCj4gK30pDQo+ICsN Cj4gK3N0YXRpYyBpbnQgb3RtODAwOWFfaW5pdF9zZXF1ZW5jZShzdHJ1Y3QgdWRldmljZSAqZGV2 KQ0KPiArew0KPiArCXN0cnVjdCBtaXBpX2RzaV9wYW5lbF9wbGF0ICpwbGF0ID0gZGV2X2dldF9w bGF0ZGF0YShkZXYpOw0KPiArCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRldmljZSA9IHBsYXQt PmRldmljZTsNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJLyogRW50ZXIgQ01EMiAqLw0KPiArCWRj c193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfQ01EMl9FTkExLCAweDgwLCAweDA5LCAweDAxKTsNCj4g Kw0KPiArCS8qIEVudGVyIE9yaXNlIENvbW1hbmQyICovDQo+ICsJZGNzX3dyaXRlX2NtZF9hdChk ZXYsIE1DU19DTUQyX0VOQTIsIDB4ODAsIDB4MDkpOw0KPiArDQo+ICsJZGNzX3dyaXRlX2NtZF9h dChkZXYsIE1DU19TRF9QQ0hfQ1RSTCwgMHgzMCk7DQo+ICsJbWRlbGF5KDEwKTsNCj4gKw0KPiAr CWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfTk9fRE9DMSwgMHg0MCk7DQo+ICsJbWRlbGF5KDEw KTsNCj4gKw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfUFdSX0NUUkw0ICsgMSwgMHhB OSk7DQo+ICsJZGNzX3dyaXRlX2NtZF9hdChkZXYsIE1DU19QV1JfQ1RSTDIgKyAxLCAweDM0KTsN Cj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BfRFJWX00sIDB4NTApOw0KPiArCWRjc193 cml0ZV9jbWRfYXQoZGV2LCBNQ1NfVkNPTURDLCAweDRFKTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0 KGRldiwgTUNTX09TQ19BREosIDB4NjYpOyAvKiA2NUh6ICovDQo+ICsJZGNzX3dyaXRlX2NtZF9h dChkZXYsIE1DU19QV1JfQ1RSTDIgKyAyLCAweDAxKTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRl diwgTUNTX1BXUl9DVFJMMiArIDUsIDB4MzQpOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBN Q1NfUFdSX0NUUkwyICsgNCwgMHgzMyk7DQo+ICsJZGNzX3dyaXRlX2NtZF9hdChkZXYsIE1DU19H VkREU0VULCAweDc5LCAweDc5KTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1NEX0NU UkwgKyAxLCAweDFCKTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BXUl9DVFJMMSAr IDIsIDB4ODMpOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfU0RfUENIX0NUUkwgKyAx LCAweDgzKTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1JHQl9WSURfU0VULCAweDBF KTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BBTlNFVCwgMHgwMCwgMHgwMSk7DQo+ ICsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX0dPQVZTVCwgMHg4NSwgMHgwMSwgMHgw MCwgMHg4NCwgMHgwMSwgMHgwMCk7DQo+ICsJZGNzX3dyaXRlX2NtZF9hdChkZXYsIE1DU19HT0FD TEtBMSwgMHgxOCwgMHgwNCwgMHgwMywgMHgzOSwgMHgwMCwgMHgwMCwNCj4gKwkJCSAweDAwLCAw eDE4LCAweDAzLCAweDAzLCAweDNBLCAweDAwLCAweDAwLCAweDAwKTsNCj4gKwlkY3Nfd3JpdGVf Y21kX2F0KGRldiwgTUNTX0dPQUNMS0EzLCAweDE4LCAweDAyLCAweDAzLCAweDNCLCAweDAwLCAw eDAwLA0KPiArCQkJIDB4MDAsIDB4MTgsIDB4MDEsIDB4MDMsIDB4M0MsIDB4MDAsIDB4MDAsIDB4 MDApOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfR09BRUNMSywgMHgwMSwgMHgwMSwg MHgyMCwgMHgyMCwgMHgwMCwgMHgwMCwNCj4gKwkJCSAweDAxLCAweDAyLCAweDAwLCAweDAwKTsN Cj4gKw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfTk9fRE9DMiwgMHgwMCk7DQo+ICsN Cj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BBTkNUUkxTRVQxLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwKTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BBTkNUUkxT RVQyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLA0KPiArCQkJIDAsIDAsIDAsIDAsIDAp Ow0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfUEFOQ1RSTFNFVDMsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsDQo+ICsJCQkgMCwgMCwgMCwgMCwgMCk7DQo+ICsJZGNzX3dyaXRl X2NtZF9hdChkZXYsIE1DU19QQU5DVFJMU0VUNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCk7DQo+ICsJZGNzX3dyaXRlX2NtZF9hdChkZXYsIE1DU19QQU5DVFJMU0VUNSwgMCwgNCwgNCwg NCwgNCwgNCwgMCwgMCwgMCwgMCwNCj4gKwkJCSAwLCAwLCAwLCAwLCAwKTsNCj4gKwlkY3Nfd3Jp dGVfY21kX2F0KGRldiwgTUNTX1BBTkNUUkxTRVQ2LCAwLCAwLCAwLCAwLCAwLCAwLCA0LCA0LCA0 LCA0LA0KPiArCQkJIDQsIDAsIDAsIDAsIDApOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBN Q1NfUEFOQ1RSTFNFVDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApOw0KPiArCWRjc193 cml0ZV9jbWRfYXQoZGV2LCBNQ1NfUEFOQ1RSTFNFVDgsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYs IDB4RkYsDQo+ICsJCQkgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRik7DQo+ICsNCj4gKwlk Y3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BBTlUyRDEsIDB4MDAsIDB4MjYsIDB4MDksIDB4MEIs IDB4MDEsIDB4MjUsDQo+ICsJCQkgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCk7DQo+ICsJZGNzX3dy aXRlX2NtZF9hdChkZXYsIE1DU19QQU5VMkQyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLA0KPiArCQkJIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjYsIDB4MEEs IDB4MEMsIDB4MDIpOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfUEFOVTJEMywgMHgy NSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gKwkJCSAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKTsNCj4gKwlkY3Nfd3JpdGVfY21k X2F0KGRldiwgTUNTX1BBTkQyVTEsIDB4MDAsIDB4MjUsIDB4MEMsIDB4MEEsIDB4MDIsIDB4MjYs DQo+ICsJCQkgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCk7DQo+ICsJZGNzX3dyaXRlX2NtZF9hdChk ZXYsIE1DU19QQU5EMlUyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0KPiAr CQkJIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjUsIDB4MEIsIDB4MDksIDB4MDEp Ow0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfUEFORDJVMywgMHgyNiwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gKwkJCSAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwKTsNCj4gKw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2 LCBNQ1NfUFdSX0NUUkwxICsgMSwgMHg2Nik7DQo+ICsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRl diwgTUNTX05PX0RPQzMsIDB4MDYpOw0KPiArDQo+ICsJZGNzX3dyaXRlX2NtZF9hdChkZXYsIE1D U19HTUNUMl8yUCwgMHgwMCwgMHgwOSwgMHgwRiwgMHgwRSwgMHgwNywgMHgxMCwNCj4gKwkJCSAw eDBCLCAweDBBLCAweDA0LCAweDA3LCAweDBCLCAweDA4LCAweDBGLCAweDEwLCAweDBBLA0KPiAr CQkJIDB4MDEpOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfR01DVDJfMk4sIDB4MDAs IDB4MDksIDB4MEYsIDB4MEUsIDB4MDcsIDB4MTAsDQo+ICsJCQkgMHgwQiwgMHgwQSwgMHgwNCwg MHgwNywgMHgwQiwgMHgwOCwgMHgwRiwgMHgxMCwgMHgwQSwNCj4gKwkJCSAweDAxKTsNCj4gKw0K PiArCS8qIEV4aXQgQ01EMiAqLw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfQ01EMl9F TkExLCAweEZGLCAweEZGLCAweEZGKTsNCj4gKw0KPiArCXJldCA9ICBtaXBpX2RzaV9kY3Nfbm9w KGRldmljZSk7DQo+ICsJaWYgKHJldCkNCj4gKwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCXJldCA9 IG1pcGlfZHNpX2Rjc19leGl0X3NsZWVwX21vZGUoZGV2aWNlKTsNCj4gKwlpZiAocmV0KQ0KPiAr CQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJLyogV2FpdCBmb3Igc2xlZXAgb3V0IGV4aXQgKi8NCj4g KwltZGVsYXkoMTIwKTsNCj4gKw0KPiArCS8qIERlZmF1bHQgcG9ydHJhaXQgNDgweDgwMCByZ2Iy NCAqLw0KPiArCWRjc193cml0ZV9zZXEoZGV2LCBNSVBJX0RDU19TRVRfQUREUkVTU19NT0RFLCAw eDAwKTsNCj4gKw0KPiArCXJldCA9ICBtaXBpX2RzaV9kY3Nfc2V0X2NvbHVtbl9hZGRyZXNzKGRl dmljZSwgMCwgNDc5KTsNCj4gKwlpZiAocmV0KQ0KPiArCQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJ cmV0ID0gIG1pcGlfZHNpX2Rjc19zZXRfcGFnZV9hZGRyZXNzKGRldmljZSwgMCwgNzk5KTsNCj4g KwlpZiAocmV0KQ0KPiArCQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJLyogU2VlIG90bTgwMDlhIGRy aXZlciBkb2N1bWVudGF0aW9uIGZvciBwaXhlbCBmb3JtYXQgZGVzY3JpcHRpb25zICovDQo+ICsJ cmV0ID0gIG1pcGlfZHNpX2Rjc19zZXRfcGl4ZWxfZm9ybWF0KGRldmljZSwgTUlQSV9EQ1NfUElY RUxfRk1UXzI0QklUIHwNCj4gKwkJCQkJICAgICBNSVBJX0RDU19QSVhFTF9GTVRfMjRCSVQgPDwg NCk7DQo+ICsJaWYgKHJldCkNCj4gKwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCS8qIERpc2FibGUg Q0FCQyBmZWF0dXJlICovDQo+ICsJZGNzX3dyaXRlX3NlcShkZXYsIE1JUElfRENTX1dSSVRFX1BP V0VSX1NBVkUsIDB4MDApOw0KPiArDQo+ICsJcmV0ID0gbWlwaV9kc2lfZGNzX3NldF9kaXNwbGF5 X29uKGRldmljZSk7DQo+ICsJaWYgKHJldCkNCj4gKwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCXJl dCA9IG1pcGlfZHNpX2Rjc19ub3AoZGV2aWNlKTsNCj4gKwlpZiAocmV0KQ0KPiArCQlyZXR1cm4g cmV0Ow0KPiArDQo+ICsJLyogU2VuZCBDb21tYW5kIEdSQU0gbWVtb3J5IHdyaXRlIChubyBwYXJh bWV0ZXJzKSAqLw0KPiArCWRjc193cml0ZV9zZXEoZGV2LCBNSVBJX0RDU19XUklURV9NRU1PUllf U1RBUlQpOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgb3Rt ODAwOWFfcGFuZWxfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgdWRldmljZSAqZGV2KQ0KPiArew0K PiArCXN0cnVjdCBtaXBpX2RzaV9wYW5lbF9wbGF0ICpwbGF0ID0gZGV2X2dldF9wbGF0ZGF0YShk ZXYpOw0KPiArCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRldmljZSA9IHBsYXQtPmRldmljZTsN Cj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJZGV2aWNlLT5sYW5lcyA9IDI7DQo+ICsJZGV2aWNlLT5m b3JtYXQgPSBNSVBJX0RTSV9GTVRfUkdCODg4Ow0KPiArCWRldmljZS0+bW9kZV9mbGFncyA9IE1J UElfRFNJX01PREVfVklERU8gfA0KPiArCQkJICAgICBNSVBJX0RTSV9NT0RFX1ZJREVPX0JVUlNU IHwNCj4gKwkJCSAgICAgTUlQSV9EU0lfTU9ERV9MUE07DQo+ICsNCj4gKwlyZXQgPSBtaXBpX2Rz aV9hdHRhY2goZGV2aWNlKTsNCj4gKwlpZiAocmV0IDwgMCkNCj4gKwkJcmV0dXJuIHJldDsNCj4g Kw0KPiArCXByX2luZm8oIiVzOiBpbml0aWFsaXplIHBhbmVsXG4iLCBfX2Z1bmNfXyk7DQoNCklz IGl0IHVzZWZ1bCB0byBwcmludCB0aGlzIGVhY2ggdGltZSB0aGUgYmFja2xpZ3RoIGlzIGVuYWJs ZWQgPw0KDQo+ICsJcmV0ID0gb3RtODAwOWFfaW5pdF9zZXF1ZW5jZShkZXYpOw0KPiArCWlmIChy ZXQpDQo+ICsJCXJldHVybiByZXQ7DQo+ICsNCj4gKwkvKg0KPiArCSAqIFBvd2VyIG9uIHRoZSBi YWNrbGlnaHQgd2l0aCB0aGUgcmVxdWVzdGVkIGJyaWdodG5lc3MNCj4gKwkgKiBOb3RlIFdlIGNh biBub3QgdXNlIG1pcGlfZHNpX2Rjc19zZXRfZGlzcGxheV9icmlnaHRuZXNzKCkNCj4gKwkgKiBh cyBvdG04MDA5YSBkcml2ZXIgc3VwcG9ydCBvbmx5IDgtYml0IGJyaWdodG5lc3MgKDEgcGFyYW0p Lg0KPiArCSAqLw0KPiArCXByX2luZm8oIiVzOiBzdGFydCwgYmFja2xpZ2h0XG4iLCBfX2Z1bmNf Xyk7DQoNCmRpdHRvDQoNCj4gKw0KPiArCWRjc193cml0ZV9zZXEoZGV2LCBNSVBJX0RDU19TRVRf RElTUExBWV9CUklHSFRORVNTLA0KPiArCQkgICAgICBPVE04MDA5QV9CQUNLTElHSFRfREVGQVVM VCk7DQo+ICsNCj4gKwkvKiBVcGRhdGUgQnJpZ2h0bmVzcyBDb250cm9sICYgQmFja2xpZ2h0ICov DQo+ICsJZGNzX3dyaXRlX3NlcShkZXYsIE1JUElfRENTX1dSSVRFX0NPTlRST0xfRElTUExBWSwg MHgyNCk7DQo+ICsNCj4gKwkvKiAgbmVlZCB0byB3YWl0IGEgZmV3IHRpbWUgYmVmb3JlIHNldCB0 aGUgRFNJIGJyaWRnZSBpbiB2aWRlbyBtb2RlICovDQo+ICsJbWRlbGF5KDEwKTsNCj4gKw0KPiAr CXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IG90bTgwMDlhX3BhbmVsX29mZGF0 YV90b19wbGF0ZGF0YShzdHJ1Y3QgdWRldmljZSAqZGV2KQ0KPiArew0KPiArCXN0cnVjdCBvdG04 MDA5YV9wYW5lbF9wcml2ICpwcml2ID0gZGV2X2dldF9wcml2KGRldik7DQo+ICsJaW50IHJldDsN Cj4gKw0KPiArCWlmIChJU19FTkFCTEVEKENPTkZJR19ETV9SRUdVTEFUT1IpKSB7DQo+ICsJCXJl dCA9IHVjbGFzc19nZXRfZGV2aWNlX2J5X3BoYW5kbGUoVUNMQVNTX1JFR1VMQVRPUiwgZGV2LA0K PiArCQkJCQkJICAgInBvd2VyLXN1cHBseSIsICZwcml2LT5yZWcpOw0KPiArCQlpZiAocmV0KSB7 DQo+ICsJCQlwcl9lcnIoIiVzOiBXYXJuaW5nOiBjYW5ub3QgZ2V0IHBvd2VyIHN1cHBseVxuIiwN Cj4gKwkJCSAgICAgICBfX2Z1bmNfXyk7DQoNCmRldl9lcnIoKQ0KDQo+ICsJCQlpZiAocmV0ICE9 IC1FTk9FTlQpDQo+ICsJCQkJcmV0dXJuIHJldDsNCj4gKwkJfQ0KPiArCX0NCj4gKw0KPiArCXJl dCA9IGdwaW9fcmVxdWVzdF9ieV9uYW1lKGRldiwgInJlc2V0LWdwaW9zIiwgMCwgJnByaXYtPnJl c2V0LA0KPiArCQkJCSAgIEdQSU9EX0lTX09VVCk7DQo+ICsJaWYgKHJldCkgew0KPiArCQlwcl9l cnIoIiVzOiBXYXJuaW5nOiBjYW5ub3QgZ2V0IHJlc2V0IEdQSU9cbiIsIF9fZnVuY19fKTsNCg0K ZGl0dG8NCg0KPiArCQlpZiAocmV0ICE9IC1FTk9FTlQpDQo+ICsJCQlyZXR1cm4gcmV0Ow0KPiAr CX0NCj4gKw0KPiArCS8qIHJlc2V0IHBhbmVsIG11c3QgYmUgZG9uZSBiZWZvcmUgcHJvYmUgKi8N Cj4gKwlkbV9ncGlvX3NldF92YWx1ZSgmcHJpdi0+cmVzZXQsIHRydWUpOw0KPiArDQo+ICsJcmV0 dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgb3RtODAwOWFfcGFuZWxfcHJvYmUoc3Ry dWN0IHVkZXZpY2UgKmRldikNCj4gK3sNCj4gKwlzdHJ1Y3Qgb3RtODAwOWFfcGFuZWxfcHJpdiAq cHJpdiA9IGRldl9nZXRfcHJpdihkZXYpOw0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlpZiAoSVNf RU5BQkxFRChDT05GSUdfRE1fUkVHVUxBVE9SKSAmJiBwcml2LT5yZWcpIHsNCj4gKwkJcHJfZXJy KCIlczogRW5hYmxlIHJlZ3VsYXRvciAnJXMnXG4iLCBfX2Z1bmNfXywNCj4gKwkJICAgICAgIHBy aXYtPnJlZy0+bmFtZSk7DQoNCmRlYnVnKCkgPw0KDQo+ICsJCXJldCA9IHJlZ3VsYXRvcl9zZXRf ZW5hYmxlKHByaXYtPnJlZywgdHJ1ZSk7DQo+ICsJCWlmIChyZXQpDQo+ICsJCQlyZXR1cm4gcmV0 Ow0KPiArCX0NCj4gKw0KPiArCWRtX2dwaW9fc2V0X3ZhbHVlKCZwcml2LT5yZXNldCwgZmFsc2Up Ow0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg cGFuZWxfb3BzIG90bTgwMDlhX3BhbmVsX29wcyA9IHsNCj4gKwkuZW5hYmxlX2JhY2tsaWdodCA9 IG90bTgwMDlhX3BhbmVsX2VuYWJsZV9iYWNrbGlnaHQsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMg Y29uc3Qgc3RydWN0IHVkZXZpY2VfaWQgb3RtODAwOWFfcGFuZWxfaWRzW10gPSB7DQo+ICsJeyAu Y29tcGF0aWJsZSA9ICJvcmlzZXRlY2gsb3RtODAwOWEiIH0sDQo+ICsJeyB9DQo+ICt9Ow0KPiAr DQo+ICtVX0JPT1RfRFJJVkVSKG90bTgwMDlhX3BhbmVsKSA9IHsNCj4gKwkubmFtZQkJCSAgPSAi b3RtODAwOWFfcGFuZWwiLA0KPiArCS5pZAkJCSAgPSBVQ0xBU1NfUEFORUwsDQo+ICsJLm9mX21h dGNoCQkgID0gb3RtODAwOWFfcGFuZWxfaWRzLA0KPiArCS5vcHMJCQkgID0gJm90bTgwMDlhX3Bh bmVsX29wcywNCj4gKwkub2ZkYXRhX3RvX3BsYXRkYXRhCSAgPSBvdG04MDA5YV9wYW5lbF9vZmRh dGFfdG9fcGxhdGRhdGEsDQo+ICsJLnByb2JlCQkJICA9IG90bTgwMDlhX3BhbmVsX3Byb2JlLA0K PiArCS5wbGF0ZGF0YV9hdXRvX2FsbG9jX3NpemUgPSBzaXplb2Yoc3RydWN0IG1pcGlfZHNpX3Bh bmVsX3BsYXQpLA0KPiArCS5wcml2X2F1dG9fYWxsb2Nfc2l6ZQk9IHNpemVvZihzdHJ1Y3Qgb3Rt ODAwOWFfcGFuZWxfcHJpdiksDQo+ICt9Ow0KPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KVS1Cb290IG1haWxpbmcgbGlzdApVLUJvb3RAbGlzdHMuZGVu eC5kZQpodHRwczovL2xpc3RzLmRlbnguZGUvbGlzdGluZm8vdS1ib290Cg==