From mboxrd@z Thu Jan 1 00:00:00 1970 From: Russell King - ARM Linux Subject: Re: [PATCH v3 5/7] drm/i2c: tda9950: add CEC driver Date: Fri, 20 Apr 2018 16:31:37 +0100 Message-ID: <20180420153137.GZ16141@n2100.armlinux.org.uk> References: <20180409121529.GA31403@n2100.armlinux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:3201:214:fdff:fe10:1be6]) by gabe.freedesktop.org (Postfix) with ESMTPS id 95424899DE for ; Fri, 20 Apr 2018 15:31:49 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Hans Verkuil Cc: David Airlie , devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org SGkgSGFucywKCkFueSBjb21tZW50cz8KClRoYW5rcy4KCk9uIE1vbiwgQXByIDA5LCAyMDE4IGF0 IDAxOjE2OjMyUE0gKzAxMDAsIFJ1c3NlbGwgS2luZyB3cm90ZToKPiBBZGQgYSBDRUMgZHJpdmVy IGZvciB0aGUgVERBOTk1MCwgd2hpY2ggaXMgYSBzdGFuZC1hbG9uZSBJMkMgQ0VDIGRldmljZSwK PiBidXQgaXMgYWxzbyBpbnRlZ3JhdGVkIGludG8gSERNSSB0cmFuc2NlaXZlcnMgc3VjaCBhcyB0 aGUgVERBOTk4OSBhbmQKPiBUREExOTk4OS4KPiAKPiBUaGUgVERBOTk1MCBjb250YWlucyBhIGNv bW1hbmQgcHJvY2Vzc29yIHdoaWNoIGhhbmRsZXMgcmV0cmFuc21pc3Npb25zCj4gYW5kIHRoZSBs b3cgbGV2ZWwgYnVzIHByb3RvY29sLiAgVGhlIGRyaXZlciBqdXN0IGhhcyB0byByZWFkIGFuZCB3 cml0ZQo+IHRoZSBtZXNzYWdlcywgYW5kIGhhbmRsZSBlcnJvciBjb25kaXRpb25zLgo+IAo+IFNp Z25lZC1vZmYtYnk6IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+Cj4g LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pMmMvS2NvbmZpZyAgICAgICAgICAgfCAgIDUgKwo+ICBk cml2ZXJzL2dwdS9kcm0vaTJjL01ha2VmaWxlICAgICAgICAgIHwgICAxICsKPiAgZHJpdmVycy9n cHUvZHJtL2kyYy90ZGE5OTUwLmMgICAgICAgICB8IDUwOSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gIGluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS90ZGE5OTUwLmggfCAg MTYgKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCA1MzEgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTUwLmMKPiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS90ZGE5OTUwLmgKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2kyYy9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2kyYy9LY29u ZmlnCj4gaW5kZXggYTZjOTJiZWI0MTBhLi4zYTIzMmY1ZmYwYTEgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2kyYy9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2kyYy9LY29u ZmlnCj4gQEAgLTI2LDQgKzI2LDkgQEAgY29uZmlnIERSTV9JMkNfTlhQX1REQTk5OFgKPiAgCWhl bHAKPiAgCSAgU3VwcG9ydCBmb3IgTlhQIFNlbWljb25kdWN0b3JzIFREQTk5OFggSERNSSBlbmNv ZGVycy4KPiAgCj4gK2NvbmZpZyBEUk1fSTJDX05YUF9UREE5OTUwCj4gKwl0cmlzdGF0ZSAiTlhQ IFNlbWljb25kdWN0b3JzIFREQTk5NTAvVERBOTk4WCBIRE1JIENFQyIKPiArCXNlbGVjdCBDRUNf Tk9USUZJRVIKPiArCXNlbGVjdCBDRUNfQ09SRQo+ICsKPiAgZW5kbWVudQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTJjL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2kyYy9NYWtl ZmlsZQo+IGluZGV4IGIyMDEwMGMxOGZmYi4uYTk2MmY2ZjA4NTY4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pMmMvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL01h a2VmaWxlCj4gQEAgLTcsMyArNyw0IEBAIG9iai0kKENPTkZJR19EUk1fSTJDX1NJTDE2NCkgKz0g c2lsMTY0Lm8KPiAgCj4gIHRkYTk5OHgteSA6PSB0ZGE5OTh4X2Rydi5vCj4gIG9iai0kKENPTkZJ R19EUk1fSTJDX05YUF9UREE5OThYKSArPSB0ZGE5OTh4Lm8KPiArb2JqLSQoQ09ORklHX0RSTV9J MkNfTlhQX1REQTk5NTApICs9IHRkYTk5NTAubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTJjL3RkYTk5NTAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk1MC5jCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjNmNzM5NmNhYWQ0OAo+IC0tLSAv ZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5NTAuYwo+IEBAIC0wLDAg KzEsNTA5IEBACj4gKy8qCj4gKyAqICBUREE5OTUwIENvbnN1bWVyIEVsZWN0cm9uaWNzIENvbnRy b2wgZHJpdmVyCj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCj4gKyAqIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ICsgKgo+ICsgKiBUaGUg TlhQIFREQTk5NTAgaW1wbGVtZW50cyB0aGUgSERNSSBDb25zdW1lciBFbGVjdHJvbmljcyBDb250 cm9sCj4gKyAqIGludGVyZmFjZS4gIFRoZSBob3N0IGludGVyZmFjZSBpcyBzaW1pbGFyIHRvIGEg bWFpbGJveDogdGhlIGRhdGEKPiArICogcmVnaXN0ZXJzIHN0YXJ0aW5nIGF0IFJFR19DRFIwIGFy ZSB3cml0dGVuIHRvIHNlbmQgYSBjb21tYW5kIHRvIHRoZQo+ICsgKiBpbnRlcm5hbCBDUFUsIGFu ZCByZXBsaWVzIGFyZSByZWFkIGZyb20gdGhlc2UgcmVnaXN0ZXJzLgo+ICsgKgo+ICsgKiBBcyB0 aGUgZGF0YSByZWdpc3RlcnMgcmVwcmVzZW50IGEgbWFpbGJveCwgdGhleSBtdXN0IGJlIGFjY2Vz c2VkCj4gKyAqIGFzIGEgc2luZ2xlIEkyQyB0cmFuc2FjdGlvbi4gIFNlZSB0aGUgVERBOTk1MCBk YXRhIHNoZWV0IGZvciBkZXRhaWxzLgo+ICsgKi8KPiArI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+ Cj4gKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5o Pgo+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kYXRhL3RkYTk5NTAuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPiArI2luY2x1ZGUg PGRybS9kcm1fZWRpZC5oPgo+ICsjaW5jbHVkZSA8bWVkaWEvY2VjLmg+Cj4gKyNpbmNsdWRlIDxt ZWRpYS9jZWMtbm90aWZpZXIuaD4KPiArCj4gK2VudW0gewo+ICsJUkVHX0NTUiA9IDB4MDAsCj4g KwlDU1JfQlVTWSA9IEJJVCg3KSwKPiArCUNTUl9JTlQgID0gQklUKDYpLAo+ICsJQ1NSX0VSUiAg PSBCSVQoNSksCj4gKwo+ICsJUkVHX0NFUiA9IDB4MDEsCj4gKwo+ICsJUkVHX0NWUiA9IDB4MDIs Cj4gKwo+ICsJUkVHX0NDUiA9IDB4MDMsCj4gKwlDQ1JfUkVTRVQgPSBCSVQoNyksCj4gKwlDQ1Jf T04gICAgPSBCSVQoNiksCj4gKwo+ICsJUkVHX0FDS0ggPSAweDA0LAo+ICsJUkVHX0FDS0wgPSAw eDA1LAo+ICsKPiArCVJFR19DQ09OUiA9IDB4MDYsCj4gKwlDQ09OUl9FTkFCTEVfRVJST1IgPSBC SVQoNCksCj4gKwlDQ09OUl9SRVRSWV9NQVNLID0gNywKPiArCj4gKwlSRUdfQ0RSMCA9IDB4MDcs Cj4gKwo+ICsJQ0RSMV9SRVEgPSAweDAwLAo+ICsJQ0RSMV9DTkYgPSAweDAxLAo+ICsJQ0RSMV9J TkQgPSAweDgxLAo+ICsJQ0RSMV9FUlIgPSAweDgyLAo+ICsJQ0RSMV9JRVIgPSAweDgzLAo+ICsK PiArCUNEUjJfQ05GX1NVQ0NFU1MgICAgPSAweDAwLAo+ICsJQ0RSMl9DTkZfT0ZGX1NUQVRFICA9 IDB4ODAsCj4gKwlDRFIyX0NORl9CQURfUkVRICAgID0gMHg4MSwKPiArCUNEUjJfQ05GX0NFQ19B Q0NFU1MgPSAweDgyLAo+ICsJQ0RSMl9DTkZfQVJCX0VSUk9SICA9IDB4ODMsCj4gKwlDRFIyX0NO Rl9CQURfVElNSU5HID0gMHg4NCwKPiArCUNEUjJfQ05GX05BQ0tfQUREUiAgPSAweDg1LAo+ICsJ Q0RSMl9DTkZfTkFDS19EQVRBICA9IDB4ODYsCj4gK307Cj4gKwo+ICtzdHJ1Y3QgdGRhOTk1MF9w cml2IHsKPiArCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQ7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpo ZG1pOwo+ICsJc3RydWN0IGNlY19hZGFwdGVyICphZGFwOwo+ICsJc3RydWN0IHRkYTk5NTBfZ2x1 ZSAqZ2x1ZTsKPiArCXUxNiBhZGRyZXNzZXM7Cj4gKwlzdHJ1Y3QgY2VjX21zZyByeF9tc2c7Cj4g KwlzdHJ1Y3QgY2VjX25vdGlmaWVyICpub3RpZnk7Cj4gKwlib29sIG9wZW47Cj4gK307Cj4gKwo+ ICtzdGF0aWMgaW50IHRkYTk5NTBfd3JpdGVfcmFuZ2Uoc3RydWN0IGkyY19jbGllbnQgKmNsaWVu dCwgdTggYWRkciwgdTggKnAsIGludCBjbnQpCj4gK3sKPiArCXN0cnVjdCBpMmNfbXNnIG1zZzsK PiArCXU4IGJ1ZltjbnQgKyAxXTsKPiArCWludCByZXQ7Cj4gKwo+ICsJYnVmWzBdID0gYWRkcjsK PiArCW1lbWNweShidWYgKyAxLCBwLCBjbnQpOwo+ICsKPiArCW1zZy5hZGRyID0gY2xpZW50LT5h ZGRyOwo+ICsJbXNnLmZsYWdzID0gMDsKPiArCW1zZy5sZW4gPSBjbnQgKyAxOwo+ICsJbXNnLmJ1 ZiA9IGJ1ZjsKPiArCj4gKwlkZXZfZGJnKCZjbGllbnQtPmRldiwgIndyIDB4JTAyeDogJSpwaFxu IiwgYWRkciwgY250LCBwKTsKPiArCj4gKwlyZXQgPSBpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFw dGVyLCAmbXNnLCAxKTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCWRldl9lcnIoJmNsaWVudC0+ZGV2 LCAiRXJyb3IgJWQgd3JpdGluZyB0byBjZWM6MHgleFxuIiwgcmV0LCBhZGRyKTsKPiArCXJldHVy biByZXQgPCAwID8gcmV0IDogMDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdGRhOTk1MF93cml0 ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCB1OCBhZGRyLCB1OCB2YWwpCj4gK3sKPiArCXRk YTk5NTBfd3JpdGVfcmFuZ2UoY2xpZW50LCBhZGRyLCAmdmFsLCAxKTsKPiArfQo+ICsKPiArc3Rh dGljIGludCB0ZGE5OTUwX3JlYWRfcmFuZ2Uoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTgg YWRkciwgdTggKnAsIGludCBjbnQpCj4gK3sKPiArCXN0cnVjdCBpMmNfbXNnIG1zZ1syXTsKPiAr CWludCByZXQ7Cj4gKwo+ICsJbXNnWzBdLmFkZHIgPSBjbGllbnQtPmFkZHI7Cj4gKwltc2dbMF0u ZmxhZ3MgPSAwOwo+ICsJbXNnWzBdLmxlbiA9IDE7Cj4gKwltc2dbMF0uYnVmID0gJmFkZHI7Cj4g Kwltc2dbMV0uYWRkciA9IGNsaWVudC0+YWRkcjsKPiArCW1zZ1sxXS5mbGFncyA9IEkyQ19NX1JE Owo+ICsJbXNnWzFdLmxlbiA9IGNudDsKPiArCW1zZ1sxXS5idWYgPSBwOwo+ICsKPiArCXJldCA9 IGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsIG1zZywgMik7Cj4gKwlpZiAocmV0IDwgMCkK PiArCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkVycm9yICVkIHJlYWRpbmcgZnJvbSBjZWM6MHgl eFxuIiwgcmV0LCBhZGRyKTsKPiArCj4gKwlkZXZfZGJnKCZjbGllbnQtPmRldiwgInJkIDB4JTAy eDogJSpwaFxuIiwgYWRkciwgY250LCBwKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ ICtzdGF0aWMgdTggdGRhOTk1MF9yZWFkKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHU4IGFk ZHIpCj4gK3sKPiArCWludCByZXQ7Cj4gKwl1OCB2YWw7Cj4gKwo+ICsJcmV0ID0gdGRhOTk1MF9y ZWFkX3JhbmdlKGNsaWVudCwgYWRkciwgJnZhbCwgMSk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQl2 YWwgPSAwOwo+ICsKPiArCXJldHVybiB2YWw7Cj4gK30KPiArCj4gK3N0YXRpYyBpcnFyZXR1cm5f dCB0ZGE5OTUwX2lycShpbnQgaXJxLCB2b2lkICpkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgdGRhOTk1 MF9wcml2ICpwcml2ID0gZGF0YTsKPiArCXVuc2lnbmVkIGludCB0eF9zdGF0dXM7Cj4gKwl1OCBj c3IsIGNjb25yLCBidWZbMTldOwo+ICsJdTggYXJiX2xvc3RfY250LCBuYWNrX2NudCwgZXJyX2Nu dDsKPiArCj4gKwlpZiAoIXByaXYtPm9wZW4pCj4gKwkJcmV0dXJuIElSUV9OT05FOwo+ICsKPiAr CWNzciA9IHRkYTk5NTBfcmVhZChwcml2LT5jbGllbnQsIFJFR19DU1IpOwo+ICsJaWYgKCEoY3Ny ICYgQ1NSX0lOVCkpCj4gKwkJcmV0dXJuIElSUV9OT05FOwo+ICsKPiArCWNjb25yID0gdGRhOTk1 MF9yZWFkKHByaXYtPmNsaWVudCwgUkVHX0NDT05SKSAmIENDT05SX1JFVFJZX01BU0s7Cj4gKwo+ ICsJdGRhOTk1MF9yZWFkX3JhbmdlKHByaXYtPmNsaWVudCwgUkVHX0NEUjAsIGJ1Ziwgc2l6ZW9m KGJ1ZikpOwo+ICsKPiArCS8qCj4gKwkgKiBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW46IHRoZSBk YXRhIHNoZWV0IHNheXMgdGhhdCB0aGVyZSB3aWxsCj4gKwkgKiBhbHdheXMgYmUgYSB2YWxpZCBt ZXNzYWdlIGlmIHRoZSBpbnRlcnJ1cHQgbGluZSBpcyBhc3NlcnRlZC4KPiArCSAqLwo+ICsJaWYg KGJ1ZlswXSA9PSAwKSB7Cj4gKwkJZGV2X3dhcm4oJnByaXYtPmNsaWVudC0+ZGV2LCAiaW50ZXJy dXB0IHBlbmRpbmcsIGJ1dCBubyBtZXNzYWdlP1xuIik7Cj4gKwkJcmV0dXJuIElSUV9OT05FOwo+ ICsJfQo+ICsKPiArCXN3aXRjaCAoYnVmWzFdKSB7Cj4gKwljYXNlIENEUjFfQ05GOiAvKiB0cmFu c21pdCByZXN1bHQgKi8KPiArCQlhcmJfbG9zdF9jbnQgPSBuYWNrX2NudCA9IGVycl9jbnQgPSAw Owo+ICsJCXN3aXRjaCAoYnVmWzJdKSB7Cj4gKwkJY2FzZSBDRFIyX0NORl9TVUNDRVNTOgo+ICsJ CQl0eF9zdGF0dXMgPSBDRUNfVFhfU1RBVFVTX09LOwo+ICsJCQlicmVhazsKPiArCj4gKwkJY2Fz ZSBDRFIyX0NORl9BUkJfRVJST1I6Cj4gKwkJCXR4X3N0YXR1cyA9IENFQ19UWF9TVEFUVVNfQVJC X0xPU1Q7Cj4gKwkJCWFyYl9sb3N0X2NudCA9IGNjb25yOwo+ICsJCQlicmVhazsKPiArCj4gKwkJ Y2FzZSBDRFIyX0NORl9OQUNLX0FERFI6Cj4gKwkJCXR4X3N0YXR1cyA9IENFQ19UWF9TVEFUVVNf TkFDSzsKPiArCQkJbmFja19jbnQgPSBjY29ucjsKPiArCQkJYnJlYWs7Cj4gKwo+ICsJCWRlZmF1 bHQ6IC8qIHNvbWUgb3RoZXIgZXJyb3IsIHJlZmVyIHRvIFREQTk5NTAgZG9jcyAqLwo+ICsJCQlk ZXZfZXJyKCZwcml2LT5jbGllbnQtPmRldiwgIkNORiByZXBseSBlcnJvciAweCUwMnhcbiIsCj4g KwkJCQlidWZbMl0pOwo+ICsJCQl0eF9zdGF0dXMgPSBDRUNfVFhfU1RBVFVTX0VSUk9SOwo+ICsJ CQllcnJfY250ID0gY2NvbnI7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCQkvKiBUREE5OTUwIGV4 ZWN1dGVzIGFsbCByZXRyaWVzIGZvciB1cyAqLwo+ICsJCXR4X3N0YXR1cyB8PSBDRUNfVFhfU1RB VFVTX01BWF9SRVRSSUVTOwo+ICsJCWNlY190cmFuc21pdF9kb25lKHByaXYtPmFkYXAsIHR4X3N0 YXR1cywgYXJiX2xvc3RfY250LAo+ICsJCQkJICBuYWNrX2NudCwgMCwgZXJyX2NudCk7Cj4gKwkJ YnJlYWs7Cj4gKwo+ICsJY2FzZSBDRFIxX0lORDoKPiArCQlwcml2LT5yeF9tc2cubGVuID0gYnVm WzBdIC0gMjsKPiArCQlpZiAocHJpdi0+cnhfbXNnLmxlbiA+IENFQ19NQVhfTVNHX1NJWkUpCj4g KwkJCXByaXYtPnJ4X21zZy5sZW4gPSBDRUNfTUFYX01TR19TSVpFOwo+ICsKPiArCQltZW1jcHko cHJpdi0+cnhfbXNnLm1zZywgYnVmICsgMiwgcHJpdi0+cnhfbXNnLmxlbik7Cj4gKwkJY2VjX3Jl Y2VpdmVkX21zZyhwcml2LT5hZGFwLCAmcHJpdi0+cnhfbXNnKTsKPiArCQlicmVhazsKPiArCj4g KwlkZWZhdWx0OiAvKiB1bmtub3duICovCj4gKwkJZGV2X2VycigmcHJpdi0+Y2xpZW50LT5kZXYs ICJ1bmtub3duIHNlcnZpY2UgaWQgMHglMDJ4XG4iLAo+ICsJCQlidWZbMV0pOwo+ICsJCWJyZWFr Owo+ICsJfQo+ICsKPiArCXJldHVybiBJUlFfSEFORExFRDsKPiArfQo+ICsKPiArc3RhdGljIGlu dCB0ZGE5OTUwX2NlY190cmFuc21pdChzdHJ1Y3QgY2VjX2FkYXB0ZXIgKmFkYXAsIHU4IGF0dGVt cHRzLAo+ICsJCQkJdTMyIHNpZ25hbF9mcmVlX3RpbWUsIHN0cnVjdCBjZWNfbXNnICptc2cpCj4g K3sKPiArCXN0cnVjdCB0ZGE5OTUwX3ByaXYgKnByaXYgPSBhZGFwLT5wcml2Owo+ICsJdTggYnVm W0NFQ19NQVhfTVNHX1NJWkUgKyAyXTsKPiArCj4gKwlidWZbMF0gPSAyICsgbXNnLT5sZW47Cj4g KwlidWZbMV0gPSBDRFIxX1JFUTsKPiArCW1lbWNweShidWYgKyAyLCBtc2ctPm1zZywgbXNnLT5s ZW4pOwo+ICsKPiArCWlmIChhdHRlbXB0cyA+IDUpCj4gKwkJYXR0ZW1wdHMgPSA1Owo+ICsKPiAr CXRkYTk5NTBfd3JpdGUocHJpdi0+Y2xpZW50LCBSRUdfQ0NPTlIsIGF0dGVtcHRzKTsKPiArCj4g KwlyZXR1cm4gdGRhOTk1MF93cml0ZV9yYW5nZShwcml2LT5jbGllbnQsIFJFR19DRFIwLCBidWYs IDIgKyBtc2ctPmxlbik7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgdGRhOTk1MF9jZWNfYWRhcF9s b2dfYWRkcihzdHJ1Y3QgY2VjX2FkYXB0ZXIgKmFkYXAsIHU4IGFkZHIpCj4gK3sKPiArCXN0cnVj dCB0ZGE5OTUwX3ByaXYgKnByaXYgPSBhZGFwLT5wcml2Owo+ICsJdTE2IGFkZHJlc3NlczsKPiAr CXU4IGJ1ZlsyXTsKPiArCj4gKwlpZiAoYWRkciA9PSBDRUNfTE9HX0FERFJfSU5WQUxJRCkKPiAr CQlhZGRyZXNzZXMgPSBwcml2LT5hZGRyZXNzZXMgPSAwOwo+ICsJZWxzZQo+ICsJCWFkZHJlc3Nl cyA9IHByaXYtPmFkZHJlc3NlcyB8PSBCSVQoYWRkcik7Cj4gKwo+ICsJLyogVERBOTk1MCBkb2Vz bid0IHdhbnQgYWRkcmVzcyAxNSBzZXQgKi8KPiArCWFkZHJlc3NlcyAmPSAweDdmZmY7Cj4gKwli dWZbMF0gPSBhZGRyZXNzZXMgPj4gODsKPiArCWJ1ZlsxXSA9IGFkZHJlc3NlczsKPiArCj4gKwly ZXR1cm4gdGRhOTk1MF93cml0ZV9yYW5nZShwcml2LT5jbGllbnQsIFJFR19BQ0tILCBidWYsIDIp Owo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBXaGVuIG9wZXJhdGluZyBhcyBwYXJ0IG9mIHRoZSBUREE5 OTh4LCB3ZSBuZWVkIGFkZGl0aW9uYWwgaGFuZGxpbmcKPiArICogdG8gaW5pdGlhbGlzZSBhbmQg c2h1dCBkb3duIHRoZSBUREE5OTUwIHBhcnQgb2YgdGhlIGRldmljZS4gIFRoZXNlCj4gKyAqIHR3 byBob29rcyBhcmUgcHJvdmlkZWQgdG8gYWxsb3cgdGhlIFREQTk5OHggY29kZSB0byBwZXJmb3Jt IHRob3NlCj4gKyAqIGFjdGl2aXRpZXMuCj4gKyAqLwo+ICtzdGF0aWMgaW50IHRkYTk5NTBfZ2x1 ZV9vcGVuKHN0cnVjdCB0ZGE5OTUwX3ByaXYgKnByaXYpCj4gK3sKPiArCWludCByZXQgPSAwOwo+ ICsKPiArCWlmIChwcml2LT5nbHVlICYmIHByaXYtPmdsdWUtPm9wZW4pCj4gKwkJcmV0ID0gcHJp di0+Z2x1ZS0+b3Blbihwcml2LT5nbHVlLT5kYXRhKTsKPiArCj4gKwlwcml2LT5vcGVuID0gdHJ1 ZTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCB0ZGE5OTUwX2ds dWVfcmVsZWFzZShzdHJ1Y3QgdGRhOTk1MF9wcml2ICpwcml2KQo+ICt7Cj4gKwlwcml2LT5vcGVu ID0gZmFsc2U7Cj4gKwo+ICsJaWYgKHByaXYtPmdsdWUgJiYgcHJpdi0+Z2x1ZS0+cmVsZWFzZSkK PiArCQlwcml2LT5nbHVlLT5yZWxlYXNlKHByaXYtPmdsdWUtPmRhdGEpOwo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50IHRkYTk5NTBfb3BlbihzdHJ1Y3QgdGRhOTk1MF9wcml2ICpwcml2KQo+ICt7Cj4g KwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gcHJpdi0+Y2xpZW50Owo+ICsJaW50IHJldDsK PiArCj4gKwlyZXQgPSB0ZGE5OTUwX2dsdWVfb3Blbihwcml2KTsKPiArCWlmIChyZXQpCj4gKwkJ cmV0dXJuIHJldDsKPiArCj4gKwkvKiBSZXNldCB0aGUgVERBOTk1MCwgYW5kIHdhaXQgMjUwbXMg Zm9yIGl0IHRvIHJlY292ZXIgKi8KPiArCXRkYTk5NTBfd3JpdGUoY2xpZW50LCBSRUdfQ0NSLCBD Q1JfUkVTRVQpOwo+ICsJbXNsZWVwKDI1MCk7Cj4gKwo+ICsJdGRhOTk1MF9jZWNfYWRhcF9sb2df YWRkcihwcml2LT5hZGFwLCBDRUNfTE9HX0FERFJfSU5WQUxJRCk7Cj4gKwo+ICsJLyogU3RhcnQg dGhlIGNvbW1hbmQgcHJvY2Vzc29yICovCj4gKwl0ZGE5OTUwX3dyaXRlKGNsaWVudCwgUkVHX0ND UiwgQ0NSX09OKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdGRh OTk1MF9yZWxlYXNlKHN0cnVjdCB0ZGE5OTUwX3ByaXYgKnByaXYpCj4gK3sKPiArCXN0cnVjdCBp MmNfY2xpZW50ICpjbGllbnQgPSBwcml2LT5jbGllbnQ7Cj4gKwlpbnQgdGltZW91dCA9IDUwOwo+ ICsJdTggY3NyOwo+ICsKPiArCS8qIFN0b3AgdGhlIGNvbW1hbmQgcHJvY2Vzc29yICovCj4gKwl0 ZGE5OTUwX3dyaXRlKGNsaWVudCwgUkVHX0NDUiwgMCk7Cj4gKwo+ICsJLyogV2FpdCB1cCB0byAu NXMgZm9yIGl0IHRvIHNpZ25hbCBub24tYnVzeSAqLwo+ICsJZG8gewo+ICsJCWNzciA9IHRkYTk5 NTBfcmVhZChjbGllbnQsIFJFR19DU1IpOwo+ICsJCWlmICghKGNzciAmIENTUl9CVVNZKSB8fCAt LXRpbWVvdXQpCj4gKwkJCWJyZWFrOwo+ICsJCW1zbGVlcCgxMCk7Cj4gKwl9IHdoaWxlICgxKTsK PiArCj4gKwkvKiBXYXJuIHRoZSB1c2VyIHRoYXQgdGhlaXIgSVJRIG1heSBkaWUgaWYgaXQncyBz aGFyZWQuICovCj4gKwlpZiAoY3NyICYgQ1NSX0JVU1kpCj4gKwkJZGV2X3dhcm4oJmNsaWVudC0+ ZGV2LCAiY29tbWFuZCBwcm9jZXNzb3IgZmFpbGVkIHRvIHN0b3AsIGlycSVkIG1heSBkaWUgKGNz cj0weCUwMngpXG4iLAo+ICsJCQkgY2xpZW50LT5pcnEsIGNzcik7Cj4gKwo+ICsJdGRhOTk1MF9n bHVlX3JlbGVhc2UocHJpdik7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgdGRhOTk1MF9jZWNfYWRh cF9lbmFibGUoc3RydWN0IGNlY19hZGFwdGVyICphZGFwLCBib29sIGVuYWJsZSkKPiArewo+ICsJ c3RydWN0IHRkYTk5NTBfcHJpdiAqcHJpdiA9IGFkYXAtPnByaXY7Cj4gKwo+ICsJaWYgKCFlbmFi bGUpIHsKPiArCQl0ZGE5OTUwX3JlbGVhc2UocHJpdik7Cj4gKwkJcmV0dXJuIDA7Cj4gKwl9IGVs c2Ugewo+ICsJCXJldHVybiB0ZGE5OTUwX29wZW4ocHJpdik7Cj4gKwl9Cj4gK30KPiArCj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgY2VjX2FkYXBfb3BzIHRkYTk5NTBfY2VjX29wcyA9IHsKPiArCS5h ZGFwX2VuYWJsZSA9IHRkYTk5NTBfY2VjX2FkYXBfZW5hYmxlLAo+ICsJLmFkYXBfbG9nX2FkZHIg PSB0ZGE5OTUwX2NlY19hZGFwX2xvZ19hZGRyLAo+ICsJLmFkYXBfdHJhbnNtaXQgPSB0ZGE5OTUw X2NlY190cmFuc21pdCwKPiArfTsKPiArCj4gKy8qCj4gKyAqIFdoZW4gb3BlcmF0aW5nIGFzIHBh cnQgb2YgdGhlIFREQTk5OHgsIHdlIG5lZWQgdG8gY2xhaW0gYWRkaXRpb25hbAo+ICsgKiByZXNv dXJjZXMuICBUaGVzZSB0d28gaG9va3MgcGVybWl0IHRoZSBtYW5hZ2VtZW50IG9mIHRob3NlIHJl c291cmNlcy4KPiArICovCj4gK3N0YXRpYyB2b2lkIHRkYTk5NTBfZGV2bV9nbHVlX2V4aXQodm9p ZCAqZGF0YSkKPiArewo+ICsJc3RydWN0IHRkYTk5NTBfZ2x1ZSAqZ2x1ZSA9IGRhdGE7Cj4gKwo+ ICsJaWYgKGdsdWUgJiYgZ2x1ZS0+ZXhpdCkKPiArCQlnbHVlLT5leGl0KGdsdWUtPmRhdGEpOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHRkYTk5NTBfZGV2bV9nbHVlX2luaXQoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgdGRhOTk1MF9nbHVlICpnbHVlKQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsK PiArCWlmIChnbHVlICYmIGdsdWUtPmluaXQpIHsKPiArCQlyZXQgPSBnbHVlLT5pbml0KGdsdWUt PmRhdGEpOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJcmV0 ID0gZGV2bV9hZGRfYWN0aW9uKGRldiwgdGRhOTk1MF9kZXZtX2dsdWVfZXhpdCwgZ2x1ZSk7Cj4g KwlpZiAocmV0KQo+ICsJCXRkYTk5NTBfZGV2bV9nbHVlX2V4aXQoZ2x1ZSk7Cj4gKwo+ICsJcmV0 dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdGRhOTk1MF9jZWNfZGVsKHZvaWQgKmRh dGEpCj4gK3sKPiArCXN0cnVjdCB0ZGE5OTUwX3ByaXYgKnByaXYgPSBkYXRhOwo+ICsKPiArCWNl Y19kZWxldGVfYWRhcHRlcihwcml2LT5hZGFwKTsKPiArfQo+ICsKPiArc3RhdGljIGludCB0ZGE5 OTUwX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCj4gKwkJCSBjb25zdCBzdHJ1Y3Qg aTJjX2RldmljZV9pZCAqaWQpCj4gK3sKPiArCXN0cnVjdCB0ZGE5OTUwX2dsdWUgKmdsdWUgPSBj bGllbnQtPmRldi5wbGF0Zm9ybV9kYXRhOwo+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJmNsaWVu dC0+ZGV2Owo+ICsJc3RydWN0IHRkYTk5NTBfcHJpdiAqcHJpdjsKPiArCXVuc2lnbmVkIGxvbmcg aXJxZmxhZ3M7Cj4gKwlpbnQgcmV0Owo+ICsJdTggY3ZyOwo+ICsKPiArCS8qCj4gKwkgKiBXZSBt dXN0IGhhdmUgSTJDIGZ1bmN0aW9uYWxpdHk6IG91ciBtdWx0aS1ieXRlIGFjY2Vzc2VzCj4gKwkg KiBtdXN0IGJlIHBlcmZvcm1lZCBhcyBhIHNpbmdsZSBjb250aWd1b3VzIHRyYW5zYWN0aW9uLgo+ ICsJICovCj4gKwlpZiAoIWkyY19jaGVja19mdW5jdGlvbmFsaXR5KGNsaWVudC0+YWRhcHRlciwg STJDX0ZVTkNfSTJDKSkgewo+ICsJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAo+ICsJCQkiYWRhcHRl ciBkb2VzIG5vdCBzdXBwb3J0IEkyQyBmdW5jdGlvbmFsaXR5XG4iKTsKPiArCQlyZXR1cm4gLUVO WElPOwo+ICsJfQo+ICsKPiArCS8qIFdlIG11c3QgaGF2ZSBhbiBpbnRlcnJ1cHQgdG8gYmUgZnVu Y3Rpb25hbC4gKi8KPiArCWlmIChjbGllbnQtPmlycSA8PSAwKSB7Cj4gKwkJZGV2X2VycigmY2xp ZW50LT5kZXYsICJkcml2ZXIgcmVxdWlyZXMgYW4gaW50ZXJydXB0XG4iKTsKPiArCQlyZXR1cm4g LUVOWElPOwo+ICsJfQo+ICsKPiArCXByaXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnBy aXYpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghcHJpdikKPiArCQlyZXR1cm4gLUVOT01FTTsKPiAr Cj4gKwlwcml2LT5jbGllbnQgPSBjbGllbnQ7Cj4gKwlwcml2LT5nbHVlID0gZ2x1ZTsKPiArCj4g KwlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBwcml2KTsKPiArCj4gKwkvKgo+ICsJICogSWYg d2UncmUgcGFydCBvZiBhIFREQTk5OHgsIHdlIHdhbnQgdGhlIGNsYXNzIGRldmljZXMgdG8gYmUK PiArCSAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgSERNSSBUeCBzbyB3ZSBoYXZlIGEgdGlnaHQgcmVs YXRpb25zaGlwCj4gKwkgKiBiZXR3ZWVuIHRoZSBIRE1JIGludGVyZmFjZSBhbmQgdGhlIENFQyBp bnRlcmZhY2UuCj4gKwkgKi8KPiArCXByaXYtPmhkbWkgPSBkZXY7Cj4gKwlpZiAoZ2x1ZSAmJiBn bHVlLT5wYXJlbnQpCj4gKwkJcHJpdi0+aGRtaSA9IGdsdWUtPnBhcmVudDsKPiArCj4gKwlwcml2 LT5hZGFwID0gY2VjX2FsbG9jYXRlX2FkYXB0ZXIoJnRkYTk5NTBfY2VjX29wcywgcHJpdiwgInRk YTk5NTAiLAo+ICsJCQkJCSAgQ0VDX0NBUF9ERUZBVUxUUywKPiArCQkJCQkgIENFQ19NQVhfTE9H X0FERFJTKTsKPiArCWlmIChJU19FUlIocHJpdi0+YWRhcCkpCj4gKwkJcmV0dXJuIFBUUl9FUlIo cHJpdi0+YWRhcCk7Cj4gKwo+ICsJcmV0ID0gZGV2bV9hZGRfYWN0aW9uKGRldiwgdGRhOTk1MF9j ZWNfZGVsLCBwcml2KTsKPiArCWlmIChyZXQpIHsKPiArCQljZWNfZGVsZXRlX2FkYXB0ZXIocHJp di0+YWRhcCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlyZXQgPSB0ZGE5OTUwX2Rl dm1fZ2x1ZV9pbml0KGRldiwgZ2x1ZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4g Kwo+ICsJcmV0ID0gdGRhOTk1MF9nbHVlX29wZW4ocHJpdik7Cj4gKwlpZiAocmV0KQo+ICsJCXJl dHVybiByZXQ7Cj4gKwo+ICsJY3ZyID0gdGRhOTk1MF9yZWFkKGNsaWVudCwgUkVHX0NWUik7Cj4g Kwo+ICsJZGV2X2luZm8oJmNsaWVudC0+ZGV2LAo+ICsJCSAiVERBOTk1MCBDRUMgaW50ZXJmYWNl LCBoYXJkd2FyZSB2ZXJzaW9uICV1LiV1XG4iLAo+ICsJCSBjdnIgPj4gNCwgY3ZyICYgMTUpOwo+ ICsKPiArCXRkYTk5NTBfZ2x1ZV9yZWxlYXNlKHByaXYpOwo+ICsKPiArCWlycWZsYWdzID0gSVJR Rl9UUklHR0VSX0ZBTExJTkc7Cj4gKwlpZiAoZ2x1ZSkKPiArCQlpcnFmbGFncyA9IGdsdWUtPmly cV9mbGFnczsKPiArCj4gKwlyZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKGRldiwgY2xp ZW50LT5pcnEsIE5VTEwsIHRkYTk5NTBfaXJxLAo+ICsJCQkJCWlycWZsYWdzIHwgSVJRRl9TSEFS RUQgfCBJUlFGX09ORVNIT1QsCj4gKwkJCQkJZGV2X25hbWUoJmNsaWVudC0+ZGV2KSwgcHJpdik7 Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXByaXYtPm5vdGlmeSA9 IGNlY19ub3RpZmllcl9nZXQocHJpdi0+aGRtaSk7Cj4gKwlpZiAoIXByaXYtPm5vdGlmeSkKPiAr CQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlyZXQgPSBjZWNfcmVnaXN0ZXJfYWRhcHRlcihwcml2 LT5hZGFwLCBwcml2LT5oZG1pKTsKPiArCWlmIChyZXQgPCAwKSB7Cj4gKwkJY2VjX25vdGlmaWVy X3B1dChwcml2LT5ub3RpZnkpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJLyoKPiAr CSAqIENFQyBkb2N1bWVudGF0aW9uIHNheXMgd2UgbXVzdCBub3QgY2FsbCBjZWNfZGVsZXRlX2Fk YXB0ZXIKPiArCSAqIGFmdGVyIGEgc3VjY2Vzc2Z1bCBjYWxsIHRvIGNlY19yZWdpc3Rlcl9hZGFw dGVyKCkuCj4gKwkgKi8KPiArCWRldm1fcmVtb3ZlX2FjdGlvbihkZXYsIHRkYTk5NTBfY2VjX2Rl bCwgcHJpdik7Cj4gKwo+ICsJY2VjX3JlZ2lzdGVyX2NlY19ub3RpZmllcihwcml2LT5hZGFwLCBw cml2LT5ub3RpZnkpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHRk YTk5NTBfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCj4gK3sKPiArCXN0cnVjdCB0 ZGE5OTUwX3ByaXYgKnByaXYgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKPiArCj4gKwlj ZWNfdW5yZWdpc3Rlcl9hZGFwdGVyKHByaXYtPmFkYXApOwo+ICsJY2VjX25vdGlmaWVyX3B1dChw cml2LT5ub3RpZnkpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0 IGkyY19kZXZpY2VfaWQgdGRhOTk1MF9pZHNbXSA9IHsKPiArCXsgInRkYTk5NTAiLCAwIH0sCj4g Kwl7IH0sCj4gK307Cj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUoaTJjLCB0ZGE5OTUwX2lkcyk7Cj4g Kwo+ICtzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgdGRhOTk1MF9kcml2ZXIgPSB7Cj4gKwkucHJv YmUgPSB0ZGE5OTUwX3Byb2JlLAo+ICsJLnJlbW92ZSA9IHRkYTk5NTBfcmVtb3ZlLAo+ICsJLmRy aXZlciA9IHsKPiArCQkubmFtZSA9ICJ0ZGE5OTUwIiwKPiArCX0sCj4gKwkuaWRfdGFibGUgPSB0 ZGE5OTUwX2lkcywKPiArfTsKPiArCj4gK21vZHVsZV9pMmNfZHJpdmVyKHRkYTk5NTBfZHJpdmVy KTsKPiArCj4gK01PRFVMRV9BVVRIT1IoIlJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51 eC5vcmcudWs+Iik7Cj4gK01PRFVMRV9ERVNDUklQVElPTigiVERBOTk1MC9UREE5OTh4IENvbnN1 bWVyIEVsZWN0cm9uaWNzIENvbnRyb2wgRHJpdmVyIik7Cj4gK01PRFVMRV9MSUNFTlNFKCJHUEwg djIiKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL3RkYTk5NTAu aCBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS90ZGE5OTUwLmgKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uYzY1ZWZkNDYxMTAyCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS90ZGE5OTUwLmgKPiBAQCAtMCww ICsxLDE2IEBACj4gKyNpZm5kZWYgTElOVVhfUExBVEZPUk1fREFUQV9UREE5OTUwX0gKPiArI2Rl ZmluZSBMSU5VWF9QTEFURk9STV9EQVRBX1REQTk5NTBfSAo+ICsKPiArc3RydWN0IGRldmljZTsK PiArCj4gK3N0cnVjdCB0ZGE5OTUwX2dsdWUgewo+ICsJc3RydWN0IGRldmljZSAqcGFyZW50Owo+ ICsJdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7Cj4gKwl2b2lkICpkYXRhOwo+ICsJaW50ICgqaW5p dCkodm9pZCAqKTsKPiArCXZvaWQgKCpleGl0KSh2b2lkICopOwo+ICsJaW50ICgqb3Blbikodm9p ZCAqKTsKPiArCXZvaWQgKCpyZWxlYXNlKSh2b2lkICopOwo+ICt9Owo+ICsKPiArI2VuZGlmCj4g LS0gCj4gMi43LjQKPiAKCi0tIApSTUsncyBQYXRjaCBzeXN0ZW06IGh0dHA6Ly93d3cuYXJtbGlu dXgub3JnLnVrL2RldmVsb3Blci9wYXRjaGVzLwpGVFRDIGJyb2FkYmFuZCBmb3IgMC44bWlsZSBs aW5lIGluIHN1YnVyYmlhOiBzeW5jIGF0IDguOE1icHMgZG93biA2MzBrYnBzIHVwCkFjY29yZGlu ZyB0byBzcGVlZHRlc3QubmV0OiA4LjIxTWJwcyBkb3duIDUxMGticHMgdXAKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==