From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jyri Sarha Subject: Re: [PATCH 2/3] drm/bridge: Add ti-ftp410 HDMI transmitter driver Date: Thu, 10 Nov 2016 11:16:53 +0200 Message-ID: References: <9b6a6a4405de344cb9fbea735fea37adee1d726e.1478103726.git.jsarha@ti.com> <12424154.kJqhEf2pOz@avalon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <12424154.kJqhEf2pOz@avalon> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Laurent Pinchart Cc: devicetree@vger.kernel.org, bcousson@baylibre.com, khilman@baylibre.com, dri-devel@lists.freedesktop.org, bgolaszewski@baylibre.com, tomi.valkeinen@ti.com List-Id: devicetree@vger.kernel.org T24gMTEvMDMvMTYgMTk6NDYsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4gSGkgSnlyaSwKPiAK PiBUaGFuayB5b3UgZm9yIHRoZSBwYXRjaC4KPiAKPiBPbiBXZWRuZXNkYXkgMDIgTm92IDIwMTYg MTg6MzI6MTYgSnlyaSBTYXJoYSB3cm90ZToKPj4gQWRkIHZlcnkgYmFzaWMgdGktZnRwNDEwIEhE TUkgdHJhbnNtaXR0ZXIgZHJpdmVyLiBUaGUgb25seSBmZWF0dXJlCj4+IHNlcGFyYXRpbmcgdGhp cyBmcm9tIGEgY29tcGxldGVseSBkdW1teSBicmlkZ2UgaXMgdGhlIEREQyBpMmMKPj4gc3VwcG9y dC4gSG93ZXZlciwgb3RoZXIgSFcgc3BlY2lmaWMgZmVhdHVyZXMgbWF5IGJlIGFkZGVkIGxhdGVy IHdoZW4KPj4gbmVlZGVkLiBGb3IgaW5zdGFuY2UgdGhlcmUgaXMgYSBzZXQgb2YgcmVnaXN0ZXJz IGJlaGluZCBpMmMgaWYgaXQgaXMKPj4gY29ubmVjdGVkLiBUaGUgaW1wbGVtZW50YXRpb25zIGlz IHRlc3RlZCBhZ2FpbnN0IG15IG5ldyB0aWxjZGMgYnJpZGdlCj4+IHN1cHBvcnQgYW5kIHdvcmtz IHdpdGggQmVhZ2xlQm9uZSBEVkktRCBDYXBlIFJldiBBMy4gQSBEVCBiaW5kaW5nCj4+IGRvY3Vt ZW50IGlzIGFsc28gYWRkZWQuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEp5cmkgU2FyaGEgPGpzYXJo YUB0aS5jb20+Cj4+IC0tLQo+PiAgLi4uL2JpbmRpbmdzL2Rpc3BsYXkvYnJpZGdlL3RpLHRmcDQx MC50eHQgICAgICAgICAgfCAgMzAgKysrKwo+PiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29u ZmlnICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwo+PiAgZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+PiAgZHJpdmVycy9ncHUvZHJt L2JyaWRnZS90aS10ZnA0MTAuYyAgICAgICAgICAgICAgICAgfCAxOTkgKysrKysrKysrKysrKysr KysrCj4+ICA0IGZpbGVzIGNoYW5nZWQsIDIzNyBpbnNlcnRpb25zKCspCj4+ICBjcmVhdGUgbW9k ZSAxMDA2NDQKPj4gRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYnJp ZGdlL3RpLHRmcDQxMC50eHQgY3JlYXRlIG1vZGUKPj4gMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvdGktdGZwNDEwLmMKPj4KPj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNl dHJlZS9iaW5kaW5ncy9kaXNwbGF5L2JyaWRnZS90aSx0ZnA0MTAudHh0Cj4+IGIvRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYnJpZGdlL3RpLHRmcDQxMC50eHQgbmV3 IGZpbGUKPj4gbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMC4uZGM5MzcxMwo+PiAtLS0gL2Rl di9udWxsCj4+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5 L2JyaWRnZS90aSx0ZnA0MTAudHh0Cj4+IEBAIC0wLDAgKzEsMzAgQEAKPj4gK1RGUDQxMCBIRE1J L0RWSSBicmlkZ2UgYmluZGluZ3MKPiAKPiBJJ2QgbmFtZSB0aGUgZG9jdW1lbnQgIlRJIFRGUDQx MCBEVkkgVHJhbnNtaXR0ZXIiLiBEVkkgYnJpZGdlIGRvZXNuJ3QgdGVsbCAKPiB3aGV0aGVyIHRo ZSBkZXZpY2UgaXMgYSByZWNlaXZlciBvciB0cmFuc21pdHRlci4KPiAKPj4gK1JlcXVpcmVkIHBy b3BlcnRpZXM6Cj4+ICsJLSBjb21wYXRpYmxlOiAidGksdGZwNDEwIgo+IAo+IFRoZSBkZXZpY2Ug aXMgYW4gSTJDIHNsYXZlLCBpdCBzaG91bGQgaGF2ZSBhIHJlZyBwcm9wZXJ0eS4gR2l2ZW4gdGhh dCB0aGUgY2hpcCAKPiBjYW4gYmUgdXNlZCB3aXRob3V0IGJlaW5nIGNvbnRyb2xsZWQgdGhyb3Vn aCBJMkMsIHRoZSByZWcgcHJvcGVydHkgc2hvdWxkIGJlIAo+IG9wdGlvbmFsLiBZb3Ugc2hvdWxk IGRvY3VtZW50IHRoaXMgY2xlYXJseSwgYW5kIGV4cGxhaW4gaG93IHRoZSBEVCBub2RlIGNhbiBi ZSAKPiBpbnN0YW50aWF0ZWQgYXMgYSBjaGlsZCBvZiBhbiBJMkMgY29udHJvbGxlciB3aGVuIHRo ZSBJMkMgaW50ZXJmYWNlIGlzIHVzZWQsIAo+IG9yIGluIG90aGVyIHBhcnRzIG9mIHRoZSBkZXZp Y2UgdHJlZSBvdGhlcndpc2UuCj4gCj4+ICtPcHRpb25hbCBwcm9wZXJ0aWVzOgo+PiArCS0gZGRj LWkyYzogcGhhbmRsZSBvZiBhbiBJMkMgY29udHJvbGxlciB1c2VkIGZvciBEREMgRURJRCBwcm9i aW5nCj4gCj4gVGhlIFRGUDQxMCBkb2Vzbid0IGhhbmRsZSBEREMsIHRoaXMgcHJvcGVydHkgc2hv dWxkIGJlIHBhcnQgb2YgdGhlIGNvbm5lY3RvciAKPiBub2RlLgo+Cj4+ICtPcHRpb25hbCBzdWJu b2RlczoKPj4gKwktIHZpZGVvIGlucHV0OiB0aGlzIHN1Ym5vZGUgY2FuIGNvbnRhaW4gYSB2aWRl byBpbnB1dCBwb3J0IG5vZGUKPj4gKwkgIHRvIGNvbm5lY3QgdGhlIGJyaWRnZSB0byBhIGRpc3Bs YXkgY29udHJvbGxlciBvdXRwdXQgKFNlZSB0aGlzCj4+ICsJICBkb2N1bWVudGF0aW9uIFsxXSku Cj4gCj4gWW91IGFsc28gbmVlZCBhbiBvdXRwdXQgcG9ydCBmb3IgdGhlIERWSSBvdXRwdXQuIFRo b3NlIHR3byBwb3J0cyBzaG91bGQgYmUgCj4gcmVxdWlyZWQsIG5vdCBvcHRpb25hbC4KPiAKCk9r LiBTbyBJIG5lZWQgYW5vdGhlciBkZXZpY2Ugbm9kZS4gU2hvdWxkIEkgY3JlYXRlIHNvbWUgc3Bl Y2lmaWMKY29tcGF0aWJsZSBzdHJpbmcgZm9yIGNvbm5lY3RvcnMgYmVoaW5kIHRmcDQxMCwgb3Ig YSBnZW5lcmljIERWSS9IRE1JCmNvbm5lY3RvciB3aXRoIG9wdGlvbmFsIGRkYy1pMmMgcGhhbmRs ZT8KClRoZSBpbXBsZW1lbnRhdGlvbiBzaWRlIGlzIG5vdCBzbyBjcml0aWNhbCwgYmVjYXVzZSBp dCBtb3JlIGVhc2lseQpjaGFuZ2VkLCBidXQgc2hvdWxkIEkgY3JlYXRlIGFuIGluZGVwZW5kZW50 IGdlbmVyaWMgcGxhdGZvcm0tZGV2aWNlCmRyaXZlciBmb3Igc3VjaCBEVkkvSERNSSBjb25uZWN0 b3Igb3IganVzdCBpbXBsZW1lbnQgdGhlIGNvbm5lY3RvciBzaWRlCndpdGhpbiB0ZnA0MTAgZHJp dmVyPwoKPj4gK1sxXTogRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lZGlhL3Zp ZGVvLWludGVyZmFjZXMudHh0Cj4+ICsKPj4gK0V4YW1wbGU6Cj4+ICsJaGRtaS1icmlkZ2Ugewo+ PiArCQljb21wYXRpYmxlID0gInRpLHRmcDQxMCI7Cj4+ICsJCXBvcnRzIHsKPj4gKwkJCSNhZGRy ZXNzLWNlbGxzID0gPDE+Owo+PiArCQkJI3NpemUtY2VsbHMgPSA8MD47Cj4+ICsKPj4gKwkJCXBv cnRAMCB7Cj4+ICsJCQkJcmVnID0gPDA+Owo+PiArCQkJCWJyaWRnZV9pbjogZW5kcG9pbnQgewo+ PiArCQkJCQlyZW1vdGUtZW5kcG9pbnQgPSA8JmRjX291dD47Cj4+ICsJCQkJfTsKPj4gKwkJCX07 Cj4+ICsJCX07Cj4+ICsJfTsKPiAKPiAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwo+PiBpbmRleCBi ZDZhY2M4Li5hNDI0ZTAzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL0tj b25maWcKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnCj4+IEBAIC04MSw2 ICs4MSwxMyBAQCBjb25maWcgRFJNX1RPU0hJQkFfVEMzNTg3NjcKPj4gIAktLS1oZWxwLS0tCj4+ ICAJICBUb3NoaWJhIFRDMzU4NzY3IGVEUCBicmlkZ2UgY2hpcCBkcml2ZXIuCj4+Cj4+ICtjb25m aWcgRFJNX1RJX1RGUDQxMAo+PiArCXRyaXN0YXRlICJUSSBURlA0MTAgRFZJL0hETUkgYnJpZGdl Igo+PiArCWRlcGVuZHMgb24gT0YKPj4gKwlzZWxlY3QgRFJNX0tNU19IRUxQRVIKPj4gKwktLS1o ZWxwLS0tCj4+ICsJICBUZXhhcyBJbnN0cnVtZW50cyBURlA0MTAgRFZJL0hETUkgVHJhbnNtaXR0 ZXIgZHJpdmVyCj4+ICsKPj4gIHNvdXJjZSAiZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dp eC9LY29uZmlnIgo+Pgo+PiAgc291cmNlICJkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEv S2NvbmZpZyIKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvTWFrZWZpbGUK Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlIGluZGV4IDk3ZWQxYTUuLjhiMDY1 ZDkgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQo+PiBAQCAtMTEsMyArMTEsNCBAQCBv YmotJChDT05GSUdfRFJNX1NJSTkwMlgpICs9IHNpaTkwMngubwo+PiAgb2JqLSQoQ09ORklHX0RS TV9UT1NISUJBX1RDMzU4NzY3KSArPSB0YzM1ODc2Ny5vCj4+ICBvYmotJChDT05GSUdfRFJNX0FO QUxPR0lYX0RQKSArPSBhbmFsb2dpeC8KPj4gIG9iai0kKENPTkZJR19EUk1fSTJDX0FEVjc1MTEp ICs9IGFkdjc1MTEvCj4+ICtvYmotJChDT05GSUdfRFJNX1RJX1RGUDQxMCkgKz0gdGktdGZwNDEw Lm8KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktdGZwNDEwLmMKPj4g Yi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXRmcDQxMC5jIG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4+IGluZGV4IDAwMDAwMDAuLmIwNzUzZDIKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXRmcDQxMC5jCj4+IEBAIC0wLDAgKzEsMTk5IEBACj4+ICsv Kgo+PiArICogQ29weXJpZ2h0IChDKSAyMDE2IFRleGFzIEluc3RydW1lbnRzCj4+ICsgKiBBdXRo b3I6IEp5cmkgU2FyaGEgPGpzYXJoYUB0aS5jb20+Cj4+ICsgKgo+PiArICogVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkg aXQKPj4gKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZAo+PiBieSArICogdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbi4KPj4gKyAqCj4+ICsgKi8KPj4gKwo+PiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5o Pgo+PiArI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+Cj4+ICsKPj4gKyNpbmNsdWRlIDxkcm0v ZHJtUC5oPgo+PiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+PiArI2luY2x1 ZGUgPGRybS9kcm1fY3J0Yy5oPgo+PiArI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4K Pj4gKwo+PiArc3RydWN0IHRmcDQxMCB7Cj4+ICsJc3RydWN0IGRybV9icmlkZ2UJYnJpZGdlOwo+ PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yCWNvbm5lY3RvcjsKPj4gKwo+PiArCXN0cnVjdCBpMmNf YWRhcHRlcgkqZGRjOwo+PiArCj4+ICsJc3RydWN0IGRldmljZSAqZGV2Owo+PiArfTsKPj4gKwo+ PiArc3RhdGljIGlubGluZSBzdHJ1Y3QgdGZwNDEwICoKPj4gK2RybV9icmlkZ2VfdG9fdGZwNDEw KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4+ICt7Cj4+ICsJcmV0dXJuIGNvbnRhaW5lcl9v ZihicmlkZ2UsIHN0cnVjdCB0ZnA0MTAsIGJyaWRnZSk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBp bmxpbmUgc3RydWN0IHRmcDQxMCAqCj4+ICtkcm1fY29ubmVjdG9yX3RvX3RmcDQxMChzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiArewo+PiArCXJldHVybiBjb250YWluZXJfb2Yo Y29ubmVjdG9yLCBzdHJ1Y3QgdGZwNDEwLCBjb25uZWN0b3IpOwo+PiArfQo+PiArCj4+ICtzdGF0 aWMgaW50IHRmcDQxMF9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK Pj4gK3sKPj4gKwlzdHJ1Y3QgdGZwNDEwICpoZG1pID0gZHJtX2Nvbm5lY3Rvcl90b190ZnA0MTAo Y29ubmVjdG9yKTsKPj4gKwlzdHJ1Y3QgZWRpZCAqZWRpZDsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ ICsJaWYgKCFoZG1pLT5kZGMpCj4+ICsJCWdvdG8gZmFsbGJhY2s7Cj4+ICsKPj4gKwllZGlkID0g ZHJtX2dldF9lZGlkKGNvbm5lY3RvciwgaGRtaS0+ZGRjKTsKPj4gKwlpZiAoIWVkaWQpIHsKPj4g KwkJRFJNX0lORk8oIkVESUQgcmVhZCBmYWlsZWQuIEZhbGxiYWNrIHRvIHN0YW5kYXJkIG1vZGVz XG4iKTsKPj4gKwkJZ290byBmYWxsYmFjazsKPj4gKwl9Cj4+ICsKPj4gKwlkcm1fbW9kZV9jb25u ZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPj4gKwo+PiArCXJl dHVybiBkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9yLCBlZGlkKTsKPj4gK2ZhbGxiYWNrOgo+ PiArCS8qIE5vIEVESUQsIGZhbGxiYWNrIG9uIHRoZSBYR0Egc3RhbmRhcmQgbW9kZXMgKi8KPj4g KwlyZXQgPSBkcm1fYWRkX21vZGVzX25vZWRpZChjb25uZWN0b3IsIDE5MjAsIDEyMDApOwo+PiAr Cj4+ICsJLyogQW5kIHByZWZlciBhIG1vZGUgcHJldHR5IG11Y2ggYW55dGhpbmcgY2FuIGhhbmRs ZSAqLwo+PiArCWRybV9zZXRfcHJlZmVycmVkX21vZGUoY29ubmVjdG9yLCAxMDI0LCA3NjgpOwo+ PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBk cm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB0ZnA0MTBfY29uX2hlbHBlcl9mdW5jcyA9IHsKPj4g KwkuZ2V0X21vZGVzCT0gdGZwNDEwX2dldF9tb2RlcywKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBl bnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCj4+ICt0ZnA0MTBfY29ubmVjdG9yX2RldGVjdChzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+PiArewo+PiArCXN0cnVj dCB0ZnA0MTAgKmhkbWkgPSBkcm1fY29ubmVjdG9yX3RvX3RmcDQxMChjb25uZWN0b3IpOwo+PiAr Cj4+ICsJaWYgKGhkbWktPmRkYykgewo+PiArCQlpZiAoZHJtX3Byb2JlX2RkYyhoZG1pLT5kZGMp KQo+PiArCQkJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwo+PiArCQllbHNlCj4+ ICsJCQlyZXR1cm4gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7Cj4+ICsJfQo+PiArCj4+ ICsJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfdW5rbm93bjsKPj4gK30KPj4gKwo+PiArc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHRmcDQxMF9jb25fZnVuY3MgPSB7Cj4+ ICsJLmRwbXMJCQk9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAo+PiArCS5kZXRl Y3QJCQk9IHRmcDQxMF9jb25uZWN0b3JfZGV0ZWN0LAo+PiArCS5maWxsX21vZGVzCQk9IGRybV9o ZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKPj4gKwkuZGVzdHJveQkJPSBkcm1f Y29ubmVjdG9yX2NsZWFudXAsCj4+ICsJLnJlc2V0CQkJPSBkcm1fYXRvbWljX2hlbHBlcl9jb25u ZWN0b3JfcmVzZXQsCj4+ICsJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUJPSBkcm1fYXRvbWljX2hl bHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlLAo+PiArCS5hdG9taWNfZGVzdHJveV9zdGF0 ZQk9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAo+PiArfTsKPj4g Kwo+PiArc3RhdGljIGludCB0ZnA0MTBfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Up Cj4+ICt7Cj4+ICsJc3RydWN0IHRmcDQxMCAqaGRtaSA9IGRybV9icmlkZ2VfdG9fdGZwNDEwKGJy aWRnZSk7Cj4+ICsJaW50IHJldDsKPj4gKwo+PiArCWlmICghYnJpZGdlLT5lbmNvZGVyKSB7Cj4+ ICsJCWRldl9lcnIoaGRtaS0+ZGV2LCAiTWlzc2luZyBlbmNvZGVyXG4iKTsKPj4gKwkJcmV0dXJu IC1FTk9ERVY7Cj4+ICsJfQo+PiArCj4+ICsJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZoZG1p LT5jb25uZWN0b3IsCj4+ICsJCQkJICZ0ZnA0MTBfY29uX2hlbHBlcl9mdW5jcyk7Cj4+ICsJcmV0 ID0gZHJtX2Nvbm5lY3Rvcl9pbml0KGJyaWRnZS0+ZGV2LCAmaGRtaS0+Y29ubmVjdG9yLAo+PiAr CQkJCSAmdGZwNDEwX2Nvbl9mdW5jcywgRFJNX01PREVfQ09OTkVDVE9SX0hETUlBKTsKPj4gKwlp ZiAocmV0KSB7Cj4+ICsJCWRldl9lcnIoaGRtaS0+ZGV2LCAiZHJtX2Nvbm5lY3Rvcl9pbml0KCkg ZmFpbGVkOiAlZFxuIiwgcmV0KTsKPj4gKwkJcmV0dXJuIHJldDsKPj4gKwl9Cj4+ICsKPj4gKwlk cm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoJmhkbWktPmNvbm5lY3RvciwKPj4gKwkJ CQkJICBicmlkZ2UtPmVuY29kZXIpOwo+PiArCj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyB0ZnA0MTBfYnJpZGdlX2Z1bmNz ID0gewo+PiArCS5hdHRhY2gJCT0gdGZwNDEwX2F0dGFjaCwKPj4gK307Cj4+ICsKPj4gK3N0YXRp YyBpbnQgdGZwNDEwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4+ICt7Cj4+ ICsJc3RydWN0IGRldmljZV9ub2RlICpkZGNfcGhhbmRsZTsKPj4gKwlzdHJ1Y3QgdGZwNDEwICpo ZG1pOwo+PiArCWludCByZXQ7Cj4+ICsKPj4gKwlpZiAoIXBkZXYtPmRldi5vZl9ub2RlKSB7Cj4+ ICsJCWRldl9lcnIoJnBkZXYtPmRldiwgImRldmljZS10cmVlIGRhdGEgaXMgbWlzc2luZ1xuIik7 Cj4+ICsJCXJldHVybiAtRU5YSU87Cj4+ICsJfQo+PiArCj4+ICsJaGRtaSA9IGRldm1fa3phbGxv YygmcGRldi0+ZGV2LCBzaXplb2YoKmhkbWkpLCBHRlBfS0VSTkVMKTsKPj4gKwlpZiAoIWhkbWkp Cj4+ICsJCXJldHVybiAtRU5PTUVNOwo+PiArCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGhk bWkpOwo+PiArCj4+ICsJZGRjX3BoYW5kbGUgPSBvZl9wYXJzZV9waGFuZGxlKHBkZXYtPmRldi5v Zl9ub2RlLCAiZGRjLWkyYyIsIDApOwo+PiArCWlmIChkZGNfcGhhbmRsZSkgewo+PiArCQloZG1p LT5kZGMgPSBvZl9nZXRfaTJjX2FkYXB0ZXJfYnlfbm9kZShkZGNfcGhhbmRsZSk7Cj4+ICsJCW9m X25vZGVfcHV0KGRkY19waGFuZGxlKTsKPj4gKwkJaWYgKCFoZG1pLT5kZGMpCj4+ICsJCQlyZXR1 cm4gLUVQUk9CRV9ERUZFUjsKPj4gKwl9IGVsc2Ugewo+PiArCQlkZXZfaW5mbygmcGRldi0+ZGV2 LAo+PiArCQkJICJObyBkZGMgaTJjIGJ1cywgZGlzYWJsaW5nIEVESUQgcmVhZG91dFxuIik7Cj4+ ICsJfQo+PiArCj4+ICsJaGRtaS0+YnJpZGdlLmZ1bmNzID0gJnRmcDQxMF9icmlkZ2VfZnVuY3M7 Cj4+ICsJaGRtaS0+YnJpZGdlLm9mX25vZGUgPSBwZGV2LT5kZXYub2Zfbm9kZTsKPj4gKwloZG1p LT5kZXYgPSAmcGRldi0+ZGV2Owo+PiArCj4+ICsJcmV0ID0gZHJtX2JyaWRnZV9hZGQoJmhkbWkt PmJyaWRnZSk7Cj4+ICsJaWYgKHJldCkgewo+PiArCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJkcm1f YnJpZGdlX2FkZCgpIGZhaWxlZDogJWRcbiIsIHJldCk7Cj4+ICsJCWdvdG8gZmFpbDsKPj4gKwl9 Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gK2ZhaWw6Cj4+ICsJaTJjX3B1dF9hZGFwdGVyKGhkbWkt PmRkYyk7Cj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCB0ZnA0MTBf cmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4+ICt7Cj4+ICsJc3RydWN0IHRm cDQxMCAqaGRtaSA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwo+PiArCj4+ICsJZHJtX2Jy aWRnZV9yZW1vdmUoJmhkbWktPmJyaWRnZSk7Cj4+ICsKPj4gKwlpZiAoaGRtaS0+ZGRjKQo+PiAr CQlpMmNfcHV0X2FkYXB0ZXIoaGRtaS0+ZGRjKTsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+ PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB0ZnA0MTBfbWF0Y2hbXSA9 IHsKPj4gKwl7IC5jb21wYXRpYmxlID0gInRpLHRmcDQxMCIgfSwKPj4gKwl7fSwKPj4gK307Cj4+ ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0ZnA0MTBfbWF0Y2gpOwo+PiArCj4+ICtzdHJ1Y3Qg cGxhdGZvcm1fZHJpdmVyIHRmcDQxMF9kcml2ZXIgPSB7Cj4+ICsJLnByb2JlCT0gdGZwNDEwX3By b2JlLAo+PiArCS5yZW1vdmUJPSB0ZnA0MTBfcmVtb3ZlLAo+PiArCS5kcml2ZXIJPSB7Cj4+ICsJ CS5uYW1lCQk9ICJ0ZnA0MTAtYnJpZGdlIiwKPj4gKwkJLm9mX21hdGNoX3RhYmxlCT0gdGZwNDEw X21hdGNoLAo+PiArCX0sCj4+ICt9Owo+PiArbW9kdWxlX3BsYXRmb3JtX2RyaXZlcih0ZnA0MTBf ZHJpdmVyKTsKPj4gKwo+PiArTU9EVUxFX0FVVEhPUigiSnlyaSBTYXJoYSA8anNhcmhhQHRpLmNv bT4iKTsKPj4gK01PRFVMRV9ERVNDUklQVElPTigiVEkgVEZQNDEwIEhETUkgYnJpZGdlIGRyaXZl ciIpOwo+PiArTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwo+IAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==