From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [PATCH 2nd RESEND v2 3/3] drm/bridge: add Silicon Image SiI8620 driver Date: Mon, 26 Sep 2016 17:05:15 +0530 Message-ID: References: <1473842027-21670-1-git-send-email-a.hajda@samsung.com> <1473842027-21670-4-git-send-email-a.hajda@samsung.com> <57E802D6.8010900@codeaurora.org> <8f2adec2-87ea-2dec-14cf-6d9568be16dd@samsung.com> <07fa4915-b771-2b5f-9dce-caa63a48b6f7@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by gabe.freedesktop.org (Postfix) with ESMTPS id 90F0B6E20A for ; Mon, 26 Sep 2016 11:35:20 +0000 (UTC) In-Reply-To: <07fa4915-b771-2b5f-9dce-caa63a48b6f7@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Hajda , "open list:DRM DRIVERS" , Inki Dae , Daniel Vetter Cc: Marek Szyprowski , Bartlomiej Zolnierkiewicz List-Id: dri-devel@lists.freedesktop.org CgpPbiAwOS8yNi8yMDE2IDA1OjAxIFBNLCBBcmNoaXQgVGFuZWphIHdyb3RlOgo+Cj4KPiBPbiAw OS8yNi8yMDE2IDAzOjA2IFBNLCBBbmRyemVqIEhhamRhIHdyb3RlOgo+PiBIaSwKPj4KPj4gVGhh bmtzIGZvciByZXZpZXcuCj4+Cj4+Cj4+IE9uIDI1LjA5LjIwMTYgMTk6MDEsIEFyY2hpdCBUYW5l amEgd3JvdGU6Cj4+PiBIaSwKPj4+Cj4+PiBPbiA5LzE0LzIwMTYgMjowMyBQTSwgQW5kcnplaiBI YWpkYSB3cm90ZToKPj4+PiBTaUk4NjIwIHRyYW5zbWl0dGVyIGNvbnZlcnRzIGVUTURTL0hETUkg c2lnbmFsIHRvIE1ITCAzLjAuCj4+Pj4gSXQgaXMgY29udHJvbGxlZCB2aWEgSTJDIGJ1cy4gSXRz IGludGVyYWN0aW9uIHdpdGggb3RoZXIKPj4+PiBkZXZpY2VzIGluIHZpZGVvIHBpcGVsaW5lIGlz IHBlcmZvcm1lZCBtYWlubHkgb24gSFcgbGV2ZWwuCj4+Pj4gVGhlIG9ubHkgaW50ZXJhY3Rpb24g aXQgZG9lcyBvbiBkZXZpY2UgZHJpdmVyIGxldmVsIGlzCj4+Pj4gZmlsdGVyaW5nLW91dCB1bnN1 cHBvcnRlZCB2aWRlbyBtb2RlcywgaXQgZXhwb3NlcyBkcm1fYnJpZGdlCj4+Pj4gaW50ZXJmYWNl IHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24uCj4+Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBBbmRy emVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgo+Pj4+IC0tLQo+Pj4+ICAgZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9LY29uZmlnICAgICAgIHwgICAgNyArCj4+Pj4gICBkcml2ZXJzL2dwdS9k cm0vYnJpZGdlL01ha2VmaWxlICAgICAgfCAgICAxICsKPj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9i cmlkZ2Uvc2lsLXNpaTg2MjAuYyB8IDE1NjgKPj4+PiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmggfCAx NTE3Cj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4+PiAgIDQgZmlsZXMg Y2hhbmdlZCwgMzA5MyBpbnNlcnRpb25zKCspCj4+Pj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCj4+Pj4gICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5oCj4+Pj4KPj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnCj4+Pj4gYi9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL0tjb25maWcKPj4+PiBpbmRleCBiNTkwZTY3Li5lN2ZiMTc5IDEwMDY0NAo+Pj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwo+Pj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvS2NvbmZpZwo+Pj4+IEBAIC01MCw2ICs1MCwxMyBAQCBjb25maWcgRFJN X1BBUkFERV9QUzg2MjIKPj4+PiAgICAgICAtLS1oZWxwLS0tCj4+Pj4gICAgICAgICBQYXJhZGUg ZURQLUxWRFMgYnJpZGdlIGNoaXAgZHJpdmVyLgo+Pj4+Cj4+Pj4gK2NvbmZpZyBEUk1fU0lMX1NJ STg2MjAKPj4+PiArICAgIHRyaXN0YXRlICJTaWxpY29uIEltYWdlIFNJSTg2MjAgSERNSS9NSEwg YnJpZGdlIgo+Pj4+ICsgICAgZGVwZW5kcyBvbiBPRgo+Pj4+ICsgICAgc2VsZWN0IERSTV9LTVNf SEVMUEVSCj4+Pj4gKyAgICBoZWxwCj4+Pj4gKyAgICAgIFNpbGljb24gSW1hZ2UgU0lJODYyMCBI RE1JL01ITCBicmlkZ2UgY2hpcCBkcml2ZXIuCj4+Pj4gKwo+Pj4+ICAgY29uZmlnIERSTV9TSUk5 MDJYCj4+Pj4gICAgICAgdHJpc3RhdGUgIlNpbGljb24gSW1hZ2Ugc2lpOTAyeCBSR0IvSERNSSBi cmlkZ2UiCj4+Pj4gICAgICAgZGVwZW5kcyBvbiBPRgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01h a2VmaWxlCj4+Pj4gaW5kZXggZWZkYjA3ZS4uMzA0Y2Y5ZCAxMDA2NDQKPj4+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9NYWtlZmlsZQo+Pj4+IEBAIC01LDYgKzUsNyBAQCBvYmotJChDT05GSUdfRFJNX0RXX0hE TUkpICs9IGR3LWhkbWkubwo+Pj4+ICAgb2JqLSQoQ09ORklHX0RSTV9EV19IRE1JX0FIQl9BVURJ TykgKz0gZHctaGRtaS1haGItYXVkaW8ubwo+Pj4+ICAgb2JqLSQoQ09ORklHX0RSTV9OWFBfUFRO MzQ2MCkgKz0gbnhwLXB0bjM0NjAubwo+Pj4+ICAgb2JqLSQoQ09ORklHX0RSTV9QQVJBREVfUFM4 NjIyKSArPSBwYXJhZGUtcHM4NjIyLm8KPj4+PiArb2JqLSQoQ09ORklHX0RSTV9TSUxfU0lJODYy MCkgKz0gc2lsLXNpaTg2MjAubwo+Pj4+ICAgb2JqLSQoQ09ORklHX0RSTV9TSUk5MDJYKSArPSBz aWk5MDJ4Lm8KPj4+PiAgIG9iai0kKENPTkZJR19EUk1fVE9TSElCQV9UQzM1ODc2NykgKz0gdGMz NTg3Njcubwo+Pj4+ICAgb2JqLSQoQ09ORklHX0RSTV9BTkFMT0dJWF9EUCkgKz0gYW5hbG9naXgv Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuYwo+ Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCj4+Pj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPj4+PiBpbmRleCAwMDAwMDAwLi4zYjI3M2M3Cj4+Pj4gLS0tIC9kZXYvbnVs bAo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuYwo+Pj4+IEBA IC0wLDAgKzEsMTU2OCBAQAo+Pj4+ICsvKgo+Pj4+ICsgKiBEcml2ZXIgZm9yIFNpbGljb24gSW1h Z2UgU2lJODYyMCBNb2JpbGUgSEQgVHJhbnNtaXR0ZXIKPj4+IFdvdWxkIGJlIG5pY2UgdG8gbWVu dGlvbiAiZVRNRFMvSERNSSBzaWduYWwgdG8gTUhMIDMuMC4iIGhlcmUsIHNvIHRoYXQKPj4+IHBl b3BsZSBrbm93IHdoYXQgaXQncyB1c2VkIGZvciB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhlIHJl c3Qgb2YgdGhlCj4+PiBkcml2ZXIuCj4+Cj4+IE9LCj4+Cj4+Pgo+Pj4+ICsgKgo+Pj4+ICsgKiBD b3B5cmlnaHQgKEMpIDIwMTUsIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCj4+Pj4gKyAq IEFuZHJ6ZWogSGFqZGEgPGEuaGFqZGFAc2Ftc3VuZy5jb20+Cj4+Pj4gKyAqCj4+Pj4gKyAqIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKPj4+PiBtb2RpZnkKPj4+PiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKPj4+PiArICogcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4+Pj4gKyAqLwo+Pj4+ICsKPj4+PiArI2luY2x1 ZGUgPGRybS9kcm1fY3J0Yy5oPgo+Pj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+Cj4+Pj4g Kwo+Pj4+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9kZWxh eS5oPgo+Pj4+ICsjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgo+Pj4+ICsjaW5jbHVk ZSA8bGludXgvaTJjLmg+Cj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KPj4+PiAr I2luY2x1ZGUgPGxpbnV4L2lycS5oPgo+Pj4+ICsjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4+ Pj4gKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+Cj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9taGwuaD4K Pj4+PiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+Pj4+ICsjaW5jbHVkZSA8bGludXgvbXV0 ZXguaD4KPj4+PiArI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgo+Pj4+ICsj aW5jbHVkZSA8bGludXgvc2xhYi5oPgo+Pj4+ICsKPj4+PiArI2luY2x1ZGUgInNpbC1zaWk4NjIw LmgiCj4+Pj4gKwo+Pj4+ICsjZGVmaW5lIFZBTF9SWF9IRE1JX0NUUkwyX0RFRlZBTCAgICBWQUxf UlhfSERNSV9DVFJMMl9JRExFX0NOVCgzKQo+Pj4+ICsKPj4+PiArZW51bSBzaWk4NjIwX21vZGUg ewo+Pj4+ICsgICAgQ01fRElTQ09OTkVDVEVELAo+Pj4+ICsgICAgQ01fRElTQ09WRVJZLAo+Pj4+ ICsgICAgQ01fTUhMMSwKPj4+PiArICAgIENNX01ITDMsCj4+Pj4gKyAgICBDTV9FQ0JVU19TCj4+ Pj4gK307Cj4+Pj4gKwo+Pj4+ICtlbnVtIHNpaTg2MjBfc2lua190eXBlIHsKPj4+PiArICAgIFNJ TktfTk9ORSwKPj4+PiArICAgIFNJTktfSERNSSwKPj4+PiArICAgIFNJTktfRFZJCj4+Pj4gK307 Cj4+Pj4gKwo+Pj4+ICtlbnVtIHNpaTg2MjBfbXRfc3RhdGUgewo+Pj4+ICsgICAgTVRfU1RBVEVf UkVBRFksCj4+Pj4gKyAgICBNVF9TVEFURV9CVVNZLAo+Pj4+ICsgICAgTVRfU1RBVEVfRE9ORQo+ Pj4+ICt9Owo+Pj4+ICsKPj4+PiArc3RydWN0IHNpaTg2MjAgewo+Pj4+ICsgICAgc3RydWN0IGRy bV9icmlkZ2UgYnJpZGdlOwo+Pj4+ICsgICAgc3RydWN0IGRldmljZSAqZGV2Owo+Pj4+ICsgICAg c3RydWN0IGNsayAqY2xrX3h0YWw7Cj4+Pj4gKyAgICBzdHJ1Y3QgZ3Bpb19kZXNjICpncGlvX3Jl c2V0Owo+Pj4+ICsgICAgc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb19pbnQ7Cj4+Pj4gKyAgICBzdHJ1 Y3QgcmVndWxhdG9yX2J1bGtfZGF0YSBzdXBwbGllc1syXTsKPj4+PiArICAgIHN0cnVjdCBtdXRl eCBsb2NrOyAvKiBjb250ZXh0IGxvY2ssIHByb3RlY3RzIGZpZWxkcyBiZWxvdyAqLwo+Pj4+ICsg ICAgaW50IGVycm9yOwo+Pj4+ICsgICAgZW51bSBzaWk4NjIwX21vZGUgbW9kZTsKPj4+PiArICAg IGVudW0gc2lpODYyMF9zaW5rX3R5cGUgc2lua190eXBlOwo+Pj4+ICsgICAgdTggY2J1c19zdGF0 dXM7Cj4+Pj4gKyAgICB1OCBzdGF0W01ITF9EU1RfU0laRV07Cj4+Pj4gKyAgICB1OCB4c3RhdFtN SExfWERTX1NJWkVdOwo+Pj4+ICsgICAgdTggZGV2Y2FwW01ITF9EQ0FQX1NJWkVdOwo+Pj4+ICsg ICAgdTggeGRldmNhcFtNSExfWERDX1NJWkVdOwo+Pj4+ICsgICAgdTggYXZpZlsxOV07Cj4+Pj4g KyAgICBzdHJ1Y3QgZWRpZCAqZWRpZDsKPj4+PiArICAgIHVuc2lnbmVkIGludCBnZW4yX3dyaXRl X2J1cnN0OjE7Cj4+Pj4gKyAgICBlbnVtIHNpaTg2MjBfbXRfc3RhdGUgbXRfc3RhdGU7Cj4+Pj4g KyAgICBzdHJ1Y3QgbGlzdF9oZWFkIG10X3F1ZXVlOwo+Pj4+ICt9Owo+Pj4+ICsKPj4+PiArc3Ry dWN0IHNpaTg2MjBfbXRfbXNnOwo+Pj4+ICsKPj4+PiArdHlwZWRlZiB2b2lkICgqc2lpODYyMF9t dF9tc2dfY2IpKHN0cnVjdCBzaWk4NjIwICpjdHgsCj4+Pj4gKyAgICAgICAgICAgICAgICAgIHN0 cnVjdCBzaWk4NjIwX210X21zZyAqbXNnKTsKPj4+PiArCj4+Pj4gK3N0cnVjdCBzaWk4NjIwX210 X21zZyB7Cj4+Pj4gKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Cj4+Pj4gKyAgICB1OCByZWdb NF07Cj4+Pj4gKyAgICB1OCByZXQ7Cj4+Pj4gKyAgICBzaWk4NjIwX210X21zZ19jYiBzZW5kOwo+ Pj4+ICsgICAgc2lpODYyMF9tdF9tc2dfY2IgcmVjdjsKPj4+PiArfTsKPj4+PiArCj4+Pj4gK3N0 YXRpYyBjb25zdCB1OCBzaWk4NjIwX2kyY19wYWdlW10gPSB7Cj4+Pj4gKyAgICAweDM5LCAvKiBN YWluIFN5c3RlbSAqLwo+Pj4+ICsgICAgMHgzZCwgLyogVERNIGFuZCBIU0lDICovCj4+Pj4gKyAg ICAweDQ5LCAvKiBUTURTIFJlY2VpdmVyLCBNSEwgRURJRCAqLwo+Pj4+ICsgICAgMHg0ZCwgLyog ZU1TQywgSERDUCwgSFNJQyAqLwo+Pj4+ICsgICAgMHg1ZCwgLyogTUhMIFNwZWMgKi8KPj4+PiAr ICAgIDB4NjQsIC8qIE1ITCBDQlVTICovCj4+Pj4gKyAgICAweDU5LCAvKiBIYXJkd2FyZSBUUEkg KFRyYW5zbWl0dGVyIFByb2dyYW1taW5nIEludGVyZmFjZSkgKi8KPj4+PiArICAgIDB4NjEsIC8q IGVDQlVTLVMsIGVDQlVTLUQgKi8KPj4+PiArfTsKPj4+PiArCj4+Pj4gK3N0YXRpYyB2b2lkIHNp aTg2MjBfZmV0Y2hfZWRpZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKPj4+PiArc3RhdGljIHZvaWQg c2lpODYyMF9zZXRfdXBzdHJlYW1fZWRpZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKPj4+PiArc3Rh dGljIHZvaWQgc2lpODYyMF9lbmFibGVfaHBkKHN0cnVjdCBzaWk4NjIwICpjdHgpOwo+Pj4+ICtz dGF0aWMgdm9pZCBzaWk4NjIwX21obF9kaXNjb25uZWN0ZWQoc3RydWN0IHNpaTg2MjAgKmN0eCk7 Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgaW50IHNpaTg2MjBfY2xlYXJfZXJyb3Ioc3RydWN0IHNpaTg2 MjAgKmN0eCkKPj4+PiArewo+Pj4+ICsgICAgaW50IHJldCA9IGN0eC0+ZXJyb3I7Cj4+Pj4gKwo+ Pj4+ICsgICAgY3R4LT5lcnJvciA9IDA7Cj4+Pj4gKyAgICByZXR1cm4gcmV0Owo+Pj4+ICt9Cj4+ Pj4gKwo+Pj4+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX3JlYWRfYnVmKHN0cnVjdCBzaWk4NjIwICpj dHgsIHUxNiBhZGRyLCB1OAo+Pj4+ICpidWYsIGludCBsZW4pCj4+Pj4gK3sKPj4+PiArICAgIHN0 cnVjdCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2Owo+Pj4+ICsgICAgc3RydWN0IGkyY19jbGllbnQg KmNsaWVudCA9IHRvX2kyY19jbGllbnQoZGV2KTsKPj4+PiArICAgIHU4IGRhdGEgPSBhZGRyOwo+ Pj4+ICsgICAgc3RydWN0IGkyY19tc2cgbXNnW10gPSB7Cj4+Pj4gKyAgICAgICAgewo+Pj4+ICsg ICAgICAgICAgICAuYWRkciA9IHNpaTg2MjBfaTJjX3BhZ2VbYWRkciA+PiA4XSwKPj4+PiArICAg ICAgICAgICAgLmZsYWdzID0gY2xpZW50LT5mbGFncywKPj4+PiArICAgICAgICAgICAgLmxlbiA9 IDEsCj4+Pj4gKyAgICAgICAgICAgIC5idWYgPSAmZGF0YQo+Pj4+ICsgICAgICAgIH0sCj4+Pj4g KyAgICAgICAgewo+Pj4+ICsgICAgICAgICAgICAuYWRkciA9IHNpaTg2MjBfaTJjX3BhZ2VbYWRk ciA+PiA4XSwKPj4+PiArICAgICAgICAgICAgLmZsYWdzID0gY2xpZW50LT5mbGFncyB8IEkyQ19N X1JELAo+Pj4+ICsgICAgICAgICAgICAubGVuID0gbGVuLAo+Pj4+ICsgICAgICAgICAgICAuYnVm ID0gYnVmCj4+Pj4gKyAgICAgICAgfSwKPj4+PiArICAgIH07Cj4+Pj4gKyAgICBpbnQgcmV0Owo+ Pj4+ICsKPj4+PiArICAgIGlmIChjdHgtPmVycm9yKQo+Pj4+ICsgICAgICAgIHJldHVybjsKPj4+ PiArCj4+Pj4gKyAgICByZXQgPSBpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCBtc2csIDIp Owo+Pj4+ICsgICAgZGV2X2RiZyhkZXYsICJyZWFkIGF0ICUwNHg6ICUqcGgsICVkXG4iLCBhZGRy LCBsZW4sIGJ1ZiwgcmV0KTsKPj4+PiArCj4+Pj4gKyAgICBpZiAocmV0ICE9IDIpIHsKPj4+PiAr ICAgICAgICBkZXZfZXJyKGRldiwgIlJlYWQgYXQgJSMwNnggb2YgJWQgYnl0ZXMgZmFpbGVkIHdp dGggY29kZQo+Pj4+ICVkLlxuIiwKPj4+PiArICAgICAgICAgICAgYWRkciwgbGVuLCByZXQpOwo+ Pj4+ICsgICAgICAgIGN0eC0+ZXJyb3IgPSByZXQgPCAwID8gcmV0IDogLUVJTzsKPj4+PiArICAg IH0KPj4+PiArfQo+Pj4+ICsKPj4+PiArc3RhdGljIHU4IHNpaTg2MjBfcmVhZGIoc3RydWN0IHNp aTg2MjAgKmN0eCwgdTE2IGFkZHIpCj4+Pj4gK3sKPj4+PiArICAgIHU4IHJldDsKPj4+PiArCj4+ Pj4gKyAgICBzaWk4NjIwX3JlYWRfYnVmKGN0eCwgYWRkciwgJnJldCwgMSk7Cj4+Pj4gKyAgICBy ZXR1cm4gcmV0Owo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX3dyaXRl X2J1ZihzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1MTYgYWRkciwgY29uc3QKPj4+PiB1OCAqYnVmLAo+ Pj4+ICsgICAgICAgICAgICAgICAgICBpbnQgbGVuKQo+Pj4+ICt7Cj4+Pj4gKyAgICBzdHJ1Y3Qg ZGV2aWNlICpkZXYgPSBjdHgtPmRldjsKPj4+PiArICAgIHN0cnVjdCBpMmNfY2xpZW50ICpjbGll bnQgPSB0b19pMmNfY2xpZW50KGRldik7Cj4+Pj4gKyAgICB1OCBkYXRhWzJdOwo+Pj4+ICsgICAg c3RydWN0IGkyY19tc2cgbXNnID0gewo+Pj4+ICsgICAgICAgIC5hZGRyID0gc2lpODYyMF9pMmNf cGFnZVthZGRyID4+IDhdLAo+Pj4+ICsgICAgICAgIC5mbGFncyA9IGNsaWVudC0+ZmxhZ3MsCj4+ Pj4gKyAgICAgICAgLmxlbiA9IGxlbiArIDEsCj4+Pj4gKyAgICB9Owo+Pj4+ICsgICAgaW50IHJl dDsKPj4+PiArCj4+Pj4gKyAgICBpZiAoY3R4LT5lcnJvcikKPj4+PiArICAgICAgICByZXR1cm47 Cj4+Pj4gKwo+Pj4+ICsgICAgaWYgKGxlbiA+IDEpIHsKPj4+PiArICAgICAgICBtc2cuYnVmID0g a21hbGxvYyhsZW4gKyAxLCBHRlBfS0VSTkVMKTsKPj4+PiArICAgICAgICBpZiAoIW1zZy5idWYp IHsKPj4+PiArICAgICAgICAgICAgY3R4LT5lcnJvciA9IC1FTk9NRU07Cj4+Pj4gKyAgICAgICAg ICAgIHJldHVybjsKPj4+PiArICAgICAgICB9Cj4+Pj4gKyAgICAgICAgbWVtY3B5KG1zZy5idWYg KyAxLCBidWYsIGxlbik7Cj4+Pj4gKyAgICB9IGVsc2Ugewo+Pj4+ICsgICAgICAgIG1zZy5idWYg PSBkYXRhOwo+Pj4+ICsgICAgICAgIG1zZy5idWZbMV0gPSAqYnVmOwo+Pj4+ICsgICAgfQo+Pj4+ ICsKPj4+PiArICAgIG1zZy5idWZbMF0gPSBhZGRyOwo+Pj4+ICsKPj4+PiArICAgIHJldCA9IGky Y190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2csIDEpOwo+Pj4+ICsgICAgZGV2X2RiZyhk ZXYsICJ3cml0ZSBhdCAlMDR4OiAlKnBoLCAlZFxuIiwgYWRkciwgbGVuLCBidWYsIHJldCk7Cj4+ Pj4gKwo+Pj4+ICsgICAgaWYgKHJldCAhPSAxKSB7Cj4+Pj4gKyAgICAgICAgZGV2X2VycihkZXYs ICJXcml0ZSBhdCAlIzA2eCBvZiAlKnBoIGZhaWxlZCB3aXRoIGNvZGUgJWQuXG4iLAo+Pj4+ICsg ICAgICAgICAgICBhZGRyLCBsZW4sIGJ1ZiwgcmV0KTsKPj4+PiArICAgICAgICBjdHgtPmVycm9y ID0gcmV0ID86IC1FSU87Cj4+Pj4gKyAgICB9Cj4+Pj4gKwo+Pj4+ICsgICAgaWYgKGxlbiA+IDEp Cj4+Pj4gKyAgICAgICAga2ZyZWUobXNnLmJ1Zik7Cj4+Pj4gK30KPj4+PiArCj4+Pj4gKyNkZWZp bmUgc2lpODYyMF93cml0ZShjdHgsIGFkZHIsIGFyci4uLikgXAo+Pj4+ICsoe1wKPj4+PiArICAg IHU4IGRbXSA9IHsgYXJyIH07IFwKPj4+PiArICAgIHNpaTg2MjBfd3JpdGVfYnVmKGN0eCwgYWRk ciwgZCwgQVJSQVlfU0laRShkKSk7IFwKPj4+PiArfSkKPj4+PiArCj4+Pj4gK3N0YXRpYyB2b2lk IF9fc2lpODYyMF93cml0ZV9zZXEoc3RydWN0IHNpaTg2MjAgKmN0eCwgdTE2ICpzZXEsIGludAo+ Pj4+IGxlbikKPj4+PiArewo+Pj4+ICsgICAgaW50IGk7Cj4+Pj4gKwo+Pj4+ICsgICAgZm9yIChp ID0gMDsgaSA8IGxlbjsgaSArPSAyKQo+Pj4+ICsgICAgICAgIHNpaTg2MjBfd3JpdGUoY3R4LCBz ZXFbaV0sIHNlcVtpICsgMV0pOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICsjZGVmaW5lIHNpaTg2MjBf d3JpdGVfc2VxKGN0eCwgc2VxLi4uKSBcCj4+Pj4gKyh7XAo+Pj4+ICsgICAgdTE2IGRbXSA9IHsg c2VxIH07IFwKPj4+PiArICAgIF9fc2lpODYyMF93cml0ZV9zZXEoY3R4LCBkLCBBUlJBWV9TSVpF KGQpKTsgXAo+Pj4+ICt9KQo+Pj4+ICsKPj4+IElzIGl0IHBvc3NpYmxlIHRvIHVzZSByZWdtYXBf YnVsa19yZWFkL3dyaXRlIGFwaSBoZXJlIGluc3RlYWQ/Cj4+Cj4+IHNpaTg2MjAgYWRkcmVzcyBz cGFjZSBpcyBkaXZpZGVkIGludG8gOCBwYWdlcyAoc2VlIHNpaTg2MjBfaTJjX3BhZ2UKPj4gdmFy aWFibGUpLCBldmVyeSBwYWdlIGlzIG1hcHBlZCB0byBzZXBhcmF0ZSBpMmMgc2xhdmUgYWRkcmVz cy4KPj4gSS9PIGFjY2VzcyBoZWxwZXJzIGRlZmluZWQgYWJvdmUgd29ya3Mgd2l0aCB0aGlzIGFk ZHJlc3Mgc3BhY2UsCj4+IGl0IGlzIGltcG9ydGFudCBlc3BlY2lhbGx5IGZvciBzaWk4NjIwX3dy aXRlX3NlcSwgd2hpY2ggYWxsb3cgdG8gc2V0Cj4+IHJlZ2lzdGVycyBsb2NhdGVkIGluIGRpZmZl cmVudCBwYWdlcyB3aXRoaW4gb25lIGNhbGwuCj4+Cj4+IFRoZW9yZXRpY2FsbHkgaXQgY291bGQg YmUgcG9zc2libGUgdG8gcmVnaXN0ZXIgc2VwYXJhdGUgcmVnbWFwIGZvciBldmVyeQo+PiBwYWdl IGFuZCByZXdyaXRlIGhlbHBlcnMgYWJvdmUgdG8gdXNlIHRoZW0sIGJ1dCB0aGUgYnVyZGVuIHNl ZW1zCj4+IHRvIGJlIHNpbWlsYXIgb3IgYmlnZ2VyIGFuZCBubyByZWFsIGJlbmVmaXQuCj4KPiBP a2F5LCB0aGFua3MgZm9yIHRoZSBjbGFyaWZpY2F0aW9uLiBJIGd1ZXNzIGl0IGRvZXNuJ3QgbWFr ZSBtdWNoCj4gc2Vuc2UgdG8gdXNlIHJlZ21hcCBoZXJlLgo+Cj4+Pgo+Pj4+ICtzdGF0aWMgdm9p ZCBzaWk4NjIwX3NldGJpdHMoc3RydWN0IHNpaTg2MjAgKmN0eCwgdTE2IGFkZHIsIHU4IG1hc2ss Cj4+Pj4gdTggdmFsKQo+Pj4+ICt7Cj4+Pj4gKyAgICB2YWwgPSAodmFsICYgbWFzaykgfCAoc2lp ODYyMF9yZWFkYihjdHgsIGFkZHIpICYgfm1hc2spOwo+Pj4+ICsgICAgc2lpODYyMF93cml0ZShj dHgsIGFkZHIsIHZhbCk7Cj4+Pj4gK30KPj4+PiArCj4+Cj4+ICguLi4pCj4+Cj4+Pj4gKwo+Pj4+ ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBzaWk4NjIwICpicmlkZ2VfdG9fc2lpODYyMChzdHJ1Y3Qg ZHJtX2JyaWRnZQo+Pj4+ICpicmlkZ2UpCj4+Pj4gK3sKPj4+PiArICAgIHJldHVybiBjb250YWlu ZXJfb2YoYnJpZGdlLCBzdHJ1Y3Qgc2lpODYyMCwgYnJpZGdlKTsKPj4+PiArfQo+Pj4+ICsKPj4+ PiArdm9pZCBzaWk4NjIwX2JyaWRnZV9kdW1teShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ Pj4+ICt7Cj4+Pj4gKwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4gV2UgY2FuIG5vdyBnZXQgcmlkIG9mIHRo ZSBkdW1teSBicmlkZ2Ugb3BzIGFuZCBub3QgcG9wdWxhdGUgYW55dGhpbmcuCj4+Cj4+IFllYWgs IHdvcmxkIGhhcyBjaGFuZ2VkIGJldHdlZW4gcmVzZW5kcywgSSB3aWxsIHJlbW92ZSBpdCBpbiBu ZXh0Cj4+IGl0ZXJhdGlvbi4KPj4KPj4+Cj4+Pj4gK2Jvb2wgc2lpODYyMF9tb2RlX2ZpeHVwKHN0 cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4+Pj4gKyAgICAgICAgICAgY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGUsCj4+Pj4gKyAgICAgICAgICAgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUpCj4+Pj4gK3sKPj4+PiArICAgIHN0cnVjdCBzaWk4NjIwICpj dHggPSBicmlkZ2VfdG9fc2lpODYyMChicmlkZ2UpOwo+Pj4+ICsgICAgYm9vbCByZXQgPSBmYWxz ZTsKPj4+PiArICAgIGludCBtYXhfY2xvY2sgPSA3NDI1MDsKPj4+PiArCj4+Pj4gKyAgICBtdXRl eF9sb2NrKCZjdHgtPmxvY2spOwo+Pj4+ICsKPj4+PiArICAgIGlmIChtb2RlLT5mbGFncyAmIERS TV9NT0RFX0ZMQUdfSU5URVJMQUNFKQo+Pj4+ICsgICAgICAgIGdvdG8gb3V0Owo+Pj4+ICsKPj4+ PiArICAgIGlmIChjdHgtPmRldmNhcFtNSExfRENBUF9WSURfTElOS19NT0RFXSAmCj4+Pj4gTUhM X0RDQVBfVklEX0xJTktfUFBJWEVMKQo+Pj4+ICsgICAgICAgIG1heF9jbG9jayA9IDMwMDAwMDsK Pj4+PiArCj4+Pj4gKyAgICByZXQgPSBtb2RlLT5jbG9jayA8PSBtYXhfY2xvY2s7Cj4+Pj4gKwo+ Pj4+ICtvdXQ6Cj4+Pj4gKyAgICBtdXRleF91bmxvY2soJmN0eC0+bG9jayk7Cj4+Pj4gKwo+Pj4+ ICsgICAgcmV0dXJuIHJldDsKPj4+PiArfQo+Pj4+ICsKPj4+PiArCj4+Pj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyBzaWk4NjIwX2JyaWRnZV9mdW5jcyA9IHsKPj4+PiAr ICAgIC5wcmVfZW5hYmxlID0gc2lpODYyMF9icmlkZ2VfZHVtbXksCj4+Pj4gKyAgICAuZW5hYmxl ID0gc2lpODYyMF9icmlkZ2VfZHVtbXksCj4+Pj4gKyAgICAuZGlzYWJsZSA9IHNpaTg2MjBfYnJp ZGdlX2R1bW15LAo+Pj4+ICsgICAgLnBvc3RfZGlzYWJsZSA9IHNpaTg2MjBfYnJpZGdlX2R1bW15 LAo+Pj4+ICsgICAgLm1vZGVfZml4dXAgPSBzaWk4NjIwX21vZGVfZml4dXAsCj4+Pj4gK307Cj4+ Pj4gKwo+Pj4+ICtzdGF0aWMgaW50IHNpaTg2MjBfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNs aWVudCwKPj4+PiArICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkK Pj4+PiArewo+Pj4+ICsgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJmNsaWVudC0+ZGV2Owo+Pj4+ ICsgICAgc3RydWN0IHNpaTg2MjAgKmN0eDsKPj4+PiArICAgIGludCByZXQ7Cj4+Pj4gKwo+Pj4+ ICsgICAgY3R4ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpjdHgpLCBHRlBfS0VSTkVMKTsK Pj4+PiArICAgIGlmICghY3R4KQo+Pj4+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOwo+Pj4+ICsK Pj4+PiArICAgIGN0eC0+ZGV2ID0gZGV2Owo+Pj4+ICsgICAgbXV0ZXhfaW5pdCgmY3R4LT5sb2Nr KTsKPj4+PiArICAgIElOSVRfTElTVF9IRUFEKCZjdHgtPm10X3F1ZXVlKTsKPj4+PiArCj4+Pj4g KyAgICBjdHgtPmNsa194dGFsID0gZGV2bV9jbGtfZ2V0KGRldiwgInh0YWwiKTsKPj4+PiArICAg IGlmIChJU19FUlIoY3R4LT5jbGtfeHRhbCkpIHsKPj4+PiArICAgICAgICBkZXZfZXJyKGRldiwg ImZhaWxlZCB0byBnZXQgeHRhbCBjbG9jayBmcm9tIERUXG4iKTsKPj4+PiArICAgICAgICByZXR1 cm4gUFRSX0VSUihjdHgtPmNsa194dGFsKTsKPj4+PiArICAgIH0KPj4+PiArCj4+Pj4gKyAgICBp ZiAoIWNsaWVudC0+aXJxKSB7Cj4+Pj4gKyAgICAgICAgZGV2X2VycihkZXYsICJubyBpcnEgcHJv dmlkZWRcbiIpOwo+Pj4+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Pj4+ICsgICAgfQo+Pj4+ ICsgICAgaXJxX3NldF9zdGF0dXNfZmxhZ3MoY2xpZW50LT5pcnEsIElSUV9OT0FVVE9FTik7Cj4+ Pj4gKyAgICByZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKGRldiwgY2xpZW50LT5pcnEs IE5VTEwsCj4+Pj4gKyAgICAgICAgICAgIHNpaTg2MjBfaXJxX3RocmVhZCwgSVJRRl9UUklHR0VS X0hJR0ggfCBJUlFGX09ORVNIT1QsCj4+Pj4gKyAgICAgICAgICAgICJzaWk4NjIwIiwgY3R4KTsK Pj4+PiArCj4+Pj4gKyAgICBjdHgtPmdwaW9fcmVzZXQgPSBkZXZtX2dwaW9kX2dldChkZXYsICJy ZXNldCIsIEdQSU9EX09VVF9ISUdIKTsKPj4+PiArICAgIGlmIChJU19FUlIoY3R4LT5ncGlvX3Jl c2V0KSkgewo+Pj4+ICsgICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCByZXNldCBn cGlvIGZyb20gRFRcbiIpOwo+Pj4+ICsgICAgICAgIHJldHVybiBQVFJfRVJSKGN0eC0+Z3Bpb19y ZXNldCk7Cj4+Pj4gKyAgICB9Cj4+Pj4gKwo+Pj4+ICsgICAgY3R4LT5zdXBwbGllc1swXS5zdXBw bHkgPSAiY3ZjYzEwIjsKPj4+PiArICAgIGN0eC0+c3VwcGxpZXNbMV0uc3VwcGx5ID0gImlvdmNj MTgiOwo+Pj4+ICsgICAgcmV0ID0gZGV2bV9yZWd1bGF0b3JfYnVsa19nZXQoZGV2LCAyLCBjdHgt PnN1cHBsaWVzKTsKPj4+PiArICAgIGlmIChyZXQpCj4+Pj4gKyAgICAgICAgcmV0dXJuIHJldDsK Pj4+PiArCj4+Pj4gKyAgICBpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBjdHgpOwo+Pj4+ICsK Pj4+PiArICAgIGN0eC0+YnJpZGdlLmZ1bmNzID0gJnNpaTg2MjBfYnJpZGdlX2Z1bmNzOwo+Pj4+ ICsgICAgY3R4LT5icmlkZ2Uub2Zfbm9kZSA9IGRldi0+b2Zfbm9kZTsKPj4+PiArICAgIGRybV9i cmlkZ2VfYWRkKCZjdHgtPmJyaWRnZSk7Cj4+Pj4gKwo+Pj4+ICsgICAgc2lpODYyMF9jYWJsZV9p bihjdHgpOwo+Pj4+ICsKPj4+PiArICAgIHJldHVybiAwOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICtz dGF0aWMgaW50IHNpaTg2MjBfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCj4+Pj4g K3sKPj4+PiArICAgIHN0cnVjdCBzaWk4NjIwICpjdHggPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xp ZW50KTsKPj4+PiArCj4+Pj4gKyAgICBkaXNhYmxlX2lycSh0b19pMmNfY2xpZW50KGN0eC0+ZGV2 KS0+aXJxKTsKPj4+PiArICAgIG11dGV4X2xvY2soJmN0eC0+bG9jayk7Cj4+Pj4gKyAgICBkcm1f YnJpZGdlX3JlbW92ZSgmY3R4LT5icmlkZ2UpOwo+Pj4gRG8gd2UgbmVlZCB0byBjYWxsIGRybV9i cmlkZ2VfcmVtb3ZlIHdpdGggdGhlIGxvY2sgaGVsZCB0b28/Cj4+Cj4+IE5vLCBpbiBmYWN0IGFm dGVyIGRpc2FibGluZyBpcnEgdGhlcmUgd2lsbCBiZSBubyBjb25jdXJyZW50IGFjY2Vzcwo+PiB0 byB0aGUgY29udGV4dCBzbyBsb2NraW5nIGhlcmUgY2FuIGJlIHJlbW92ZWQuCj4+Cj4+IE9uIHRo ZSBvdGhlciBzaWRlIGRybV9icmlkZ2VfcmVtb3ZlIGRvZXMgbm90aGluZyBleGNlcHQgcmVtb3Zp bmcKPj4gZnJvbSBicmlkZ2UgbGlzdCwgc28gaXQgaXMgcG9zc2libGUgdGhhdCBicmlkZ2UgY2Fu IGJlIHVuYm91bmQgd2hlbiBpdCBpcwo+PiBhdHRhY2hlZCB0byB3b3JraW5nIGVuY29kZXIsIGlu IHN1Y2ggc2l0dWF0aW9uIGVuY29kZXIgd2lsbCBzdGF5IHdpdGgKPj4gcG9pbnRlciB0byBub24t ZXhpc3RpbmcgYnJpZGdlIC0gaW4gc3VjaCBzaXR1YXRpb24gZXZlcnl0aGluZyBjYW4gaGFwcGVu Lgo+PiBJIHN1cHBvc2UgdGhpcyBidWcgYWZmZWN0cyBtb3N0IGJyaWRnZXMgYW5kIHBhbmVscyBh bmQgZXZlbiBpZiBpdAo+PiBjb3VsZCBiZQo+PiBmaXhlZCBpbiBicmlkZ2UgZHJpdmVyIEkgZ3Vl c3MgZHJtX2NvcmUgc2hvdWxkIGJlIGJldHRlciBwbGFjZSBmb3IgaXQuCj4KPiBSaWdodCwgSSB0 aGluayBpZiB0aGUga21zIGRyaXZlciB1c2luZyB0aGUgYnJpZGdlIHRha2VzIGEgcmVmZXJlbmNl IG9mCj4gdGhlIGJyaWRnZSBtb2R1bGUgZHVyaW5nIGRybV9icmlkZ2VfYXR0YWNoLCBpdCB3b3Vs ZCBwcmV2ZW50IHJlbW92aW5nCj4gdGhlIG1vZHVsZSB1bnRpbCB0aGUga21zIGRyaXZlciBkb2Vz bid0IGNhbGwgYSBkcm1fYnJpZGdlX2RldGFjaCgpLCBidXQKPiBJJ20gbm90IHN1cmUgaWYgdGhh dCdzIHRoZSByaWdodCBhcHByb2FjaC4KPgo+IEFub3RoZXIgb3B0aW9uIGlzIHRvIGNvbXBvbmVu dGl6ZSB0aGUgYnJpZGdlIGRyaXZlcnMgdG9vLCB3aGljaCB3b3VsZAo+IGVuc3VyZSB0aGF0IGJy aWRnZSBjb21wb25lbnRzIGFyZSBib3VuZCBiZWZvcmUgdGhlIG1hc3RlciBpcyBib3VuZCwgYW5k Cj4gdW5ib3VuZCBvbmx5IGFmdGVyIHRoZSBtYXN0ZXIgaXMgdW5ib3VuZC4KCk9vcHMsIEkgbWVh bnQgdGhlIG90aGVyIHdheSByb3VuZC4KCkFyY2hpdAoKPgo+IFdpbGwgd29yayBvbiBhbiBSRkMg Zm9yIHRoaXMgYW5kIGdldCBzb21lIG9waW5pb25zLgo+Cj4gVGhhbmtzLAo+IEFyY2hpdAo+Cj4+ Cj4+IFJlZ2FyZHMKPj4gQW5kcnplago+Pgo+Pgo+CgotLSAKUXVhbGNvbW0gSW5ub3ZhdGlvbiBD ZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgQ29kZSBBdXJvcmEgRm9ydW0sCmEgTGludXggRm91 bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==