From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hyungwon Hwang Subject: Re: [PATCH v2 1/6] drm/exynos: add Exynos5433 decon driver Date: Thu, 26 Mar 2015 11:14:39 +0900 Message-ID: <20150326111439.4c7e8f01@hwh-ubuntu> References: <1426666591-16103-1-git-send-email-human.hwang@samsung.com> <1426666591-16103-2-git-send-email-human.hwang@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Daniel Stone Cc: "devicetree@vger.kernel.org" , Seung-Woo Kim , dh09.lee@samsung.com, dri-devel , cw00.choi@samsung.com List-Id: devicetree@vger.kernel.org RGVhciBEYW5pZWwsCgpPbiBXZWQsIDE4IE1hciAyMDE1IDEyOjI0OjQwICswMDAwCkRhbmllbCBT dG9uZSA8ZGFuaWVsQGZvb2lzaGJhci5vcmc+IHdyb3RlOgoKPiBIaSwKPiBTb21lIGZlZWRiYWNr IGNvbW1lbnRzIC0gbW9zdCBvZiB0aGVzZSBhcmUgbm90IHVuaXF1ZSB0byB5b3VyIDU0MzMKPiBE RUNPTiBkcml2ZXIgYnV0IGVuZGVtaWMgdGhyb3VnaG91dCBFeHlub3MsIHNvIEkgZG9uJ3QgYmxh bWUgeW91IGZvcgo+IHRoZW0gLSBidXQgdGhleSBzaG91bGQgYmUgZml4ZWQgYW55d2F5Lgo+IAo+ IE9uIDE4IE1hcmNoIDIwMTUgYXQgMDg6MTYsIEh5dW5nd29uIEh3YW5nIDxodW1hbi5od2FuZ0Bz YW1zdW5nLmNvbT4KPiB3cm90ZToKPiA+ICtzdGF0aWMgdm9pZCBkZWNvbl9kcG1zX29uKHN0cnVj dCBleHlub3NfZGVjb24gKmRlY29uKQo+ID4gK3sKPiA+ICsgICAgICAgaW50IHJldDsKPiA+ICsg ICAgICAgaW50IGk7Cj4gPiArCj4gPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpF KGRlY29uX2Nsa3NfbmFtZSk7IGkrKykgewo+ID4gKyAgICAgICAgICAgICAgIHJldCA9IGNsa19w cmVwYXJlX2VuYWJsZShkZWNvbi0+Y2xrc1tpXSk7Cj4gPiArICAgICAgICAgICAgICAgaWYgKHJl dCA8IDApCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycjsKPiA+ICsgICAgICAg fQo+ID4gKwo+ID4gKyAgICAgICBzZXRfYml0KEJJVF9DTEtTX0VOQUJMRUQsICZkZWNvbi0+ZW5h YmxlZCk7Cj4gCj4gRG8geW91IHJlYWxseSBub3QgZXZlbiBuZWVkIHRvIHNldCBhIGNvbnRyb2wg cmVnaXN0ZXI/Cj4gCj4gPiArc3RhdGljIHZvaWQgZGVjb25fY29tbWl0KHN0cnVjdCBleHlub3Nf ZHJtX2NydGMgKmNydGMpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgZXh5bm9zX2RlY29uICpk ZWNvbiA9IGNydGMtPmN0eDsKPiA+ICsgICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUgPSAmY3J0Yy0+YmFzZS5tb2RlOwo+ID4gKyAgICAgICB1MzIgdmFsOwo+ID4gKwo+ID4gKyAg ICAgICAvKiBlbmFibGUgY2xvY2sgZ2F0ZSAqLwo+ID4gKyAgICAgICB2YWwgPSBDTVVfQ0xLR0FH RV9NT0RFX1NGUl9GIHwgQ01VX0NMS0dBR0VfTU9ERV9NRU1fRjsKPiA+ICsgICAgICAgd3JpdGVs KHZhbCwgZGVjb24tPmFkZHIgKyBERUNPTl9DTVUpOwo+ID4gKwo+ID4gKyAgICAgICAvKiBsY2Qg b24gYW5kIHVzZSBjb21tYW5kIGlmICovCj4gPiArICAgICAgIHZhbCA9IFZJRE9VVF9MQ0RfT047 Cj4gPiArICAgICAgIGlmIChkZWNvbi0+aTgwX2lmKQo+ID4gKyAgICAgICAgICAgICAgIHZhbCB8 PSBWSURPVVRfQ09NTUFORF9JRjsKPiA+ICsgICAgICAgZWxzZQo+ID4gKyAgICAgICAgICAgICAg IHZhbCB8PSBWSURPVVRfUkdCX0lGOwo+ID4gKyAgICAgICB3cml0ZWwodmFsLCBkZWNvbi0+YWRk ciArIERFQ09OX1ZJRE9VVENPTjApOwo+IAo+IFRoaXMgc2VlbXMgbXVjaCBtb3JlIGxpa2VseSB0 byBiZSBEUE1TLCBubz8KPiAKPiA+ICsgICAgICAgWy4uLl0KPiA+ICsgICAgICAgLyogZW5hYmxl IG91dHB1dCBhbmQgZGlzcGxheSBzaWduYWwgKi8KPiA+ICsgICAgICAgdmFsID0gVklEQ09OMF9F TlZJRCB8IFZJRENPTjBfRU5WSURfRjsKPiA+ICsgICAgICAgd3JpdGVsKHZhbCwgZGVjb24tPmFk ZHIgKyBERUNPTl9WSURDT04wKTsKPiAKPiBBcyBkb2VzIHRoaXMuCj4gCj4gSGF2ZSB5b3UgdGVz dGVkIERQTVMgb24vb2ZmLCB3aXRob3V0IGVuYWJsaW5nL2Rpc2FibGluZyB0aGUgQ1JUQwo+IGZp cnN0PyBEb2VzIGl0IHdvcms/CgpZZXMuIEkgbWlzdW5kZXJzdGFuZGVkIHRoZSBiZWhhdmlvciBv ZiB0aGUgZHJpdmVyLiBJIHdpbGwgc2VuZCB0aGUKZml4ZWQgdmVyc2lvbiBmb3Igd29ya2luZyBE UE1TLiBUaGFua3MuCgo+IAo+ID4gK3N0YXRpYyB2b2lkIGRlY29uX3dpbl9tb2RlX3NldChzdHJ1 Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpwbGFuZSkKPiA+ICt7Cj4gPiArICAgICAgIHN0 cnVjdCBleHlub3NfZGVjb24gKmRlY29uID0gY3J0Yy0+Y3R4Owo+ID4gKyAgICAgICBzdHJ1Y3Qg ZGVjb25fcmVnX2RhdGEgKnJlZ19kYXRhOwo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgYnl0ZXNf cGVyX3BpeGVsID0gcGxhbmUtPmJwcCA+PiAzOwo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgdmFs X2g7Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCB2YWxfbDsKPiA+ICsgICAgICAgdW5zaWduZWQg aW50IHdpbjsKPiA+ICsgICAgICAgZG1hX2FkZHJfdCBhZGRyOwo+ID4gKyAgICAgICB1MzIgdmFs ID0gMDsKPiA+ICsKPiA+ICsgICAgICAgaWYgKCFwbGFuZSkgewo+ID4gKyAgICAgICAgICAgICAg IERSTV9FUlJPUigicGxhbmUgaXMgTlVMTFxuIik7Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJu Owo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiArICAgICAgIHdpbiA9IHBsYW5lLT56cG9zOwo+ID4g KyAgICAgICBpZiAod2luID09IERFRkFVTFRfWlBPUykKPiA+ICsgICAgICAgICAgICAgICB3aW4g PSAwOwo+ID4gKwo+ID4gKyAgICAgICBpZiAod2luIDwgMCB8fCB3aW4gPj0gNSkKPiA+ICsgICAg ICAgICAgICAgICByZXR1cm47Cj4gCj4gSXQgd291bGQgYmUgbmljZSB0byBoYXZlIGEgI2RlZmlu ZSBmb3IgdGhlIGxhcmdlc3Qtc3VwcG9ydGVkIHdpbmRvdwo+IG51bWJlci4KClllcy4gVGhhdCB3 b3VsZCBiZSBiZXR0ZXIuCgo+IAo+ID4gKyAgICAgICByZWdfZGF0YSA9ICZkZWNvbi0+cmVnX2Rh dGFbd2luXTsKPiA+ICsKPiA+ICsgICAgICAgc3dpdGNoIChwbGFuZS0+cGl4ZWxfZm9ybWF0KSB7 Cj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9YUkdCMTU1NToKPiA+ICsgICAgICAgICAgICAg ICB2YWwgfD0gV0lOQ09OeF9CUFBNT0RFXzE2QlBQX0kxNTU1Owo+ID4gKyAgICAgICAgICAgICAg IHZhbCB8PSBXSU5DT054X0hBV1NXUF9GOwo+ID4gKyAgICAgICAgICAgICAgIHZhbCB8PSBXSU5D T054X0JVUlNUTEVOXzE2V09SRDsKPiA+ICsgICAgICAgICAgICAgICBicmVhazsKPiA+ICsgICAg ICAgY2FzZSBEUk1fRk9STUFUX1JHQjU2NToKPiA+ICsgICAgICAgICAgICAgICB2YWwgfD0gV0lO Q09OeF9CUFBNT0RFXzE2QlBQXzU2NTsKPiA+ICsgICAgICAgICAgICAgICB2YWwgfD0gV0lOQ09O eF9IQVdTV1BfRjsKPiA+ICsgICAgICAgICAgICAgICB2YWwgfD0gV0lOQ09OeF9CVVJTVExFTl8x NldPUkQ7Cj4gPiArICAgICAgICAgICAgICAgYnJlYWs7Cj4gPiArICAgICAgIGNhc2UgRFJNX0ZP Uk1BVF9YUkdCODg4ODoKPiA+ICsgICAgICAgICAgICAgICB2YWwgfD0gV0lOQ09OeF9CUFBNT0RF XzI0QlBQXzg4ODsKPiA+ICsgICAgICAgICAgICAgICB2YWwgfD0gV0lOQ09OeF9XU1dQX0Y7Cj4g PiArICAgICAgICAgICAgICAgdmFsIHw9IFdJTkNPTnhfQlVSU1RMRU5fMTZXT1JEOwo+ID4gKyAg ICAgICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6 Cj4gPiArICAgICAgICAgICAgICAgdmFsIHw9IFdJTkNPTnhfQlBQTU9ERV8zMkJQUF9BODg4ODsK PiA+ICsgICAgICAgICAgICAgICB2YWwgfD0gV0lOQ09OeF9XU1dQX0YgfCBXSU5DT054X0JMRF9Q SVhfRiB8Cj4gPiBXSU5DT054X0FMUEhBX1NFTF9GOwo+ID4gKyAgICAgICAgICAgICAgIHZhbCB8 PSBXSU5DT054X0JVUlNUTEVOXzE2V09SRDsKPiA+ICsgICAgICAgICAgICAgICBicmVhazsKPiA+ ICsgICAgICAgZGVmYXVsdDoKPiAKPiBQbGVhc2UgcmVtb3ZlIHRoZSAnZGVmYXVsdCcgY2FzZS4g SWYgeW91IGdldCBoZXJlIHdpdGggYSBmb3JtYXQgeW91Cj4gZG9uJ3Qga25vdyBob3cgdG8gY29u ZmlndXJlLCB0aGVuIGl0IGlzIGEgYnVnIGFuZCBzaG91bGQgYmUgZml4ZWQ6IHRoZQo+IHBsYW5l IHNob3VsZCBuZXZlciBhZHZlcnRpc2UgYSBmb3JtYXQgdGhhdCBpdCBjYW5ub3Qgc3VwcG9ydC4K PiAKClllcy4gSSBhZ3JlZS4KCj4gPiArICAgICAgICAgICAgICAgdmFsIHw9IFdJTkNPTnhfQlBQ TU9ERV8yNEJQUF84ODg7Cj4gPiArICAgICAgICAgICAgICAgdmFsIHw9IFdJTkNPTnhfV1NXUF9G Owo+ID4gKyAgICAgICAgICAgICAgIHZhbCB8PSBXSU5DT054X0JVUlNUTEVOXzE2V09SRDsKPiA+ ICsgICAgICAgICAgICAgICBicmVhazsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICBy ZWdfZGF0YS0+d2luY29uID0gdmFsOwo+ID4gKyAgICAgICByZWdfZGF0YS0+dmlkb3NkX2EgPSBD T09SRElOQVRFX1gocGxhbmUtPmNydGNfeCkgfAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDT09SRElOQVRFX1kocGxhbmUtPmNydGNfeSk7Cj4gPiArICAgICAgIHJlZ19kYXRh LT52aWRvc2RfYiA9Cj4gPiArICAgICAgICAgICAgICAgQ09PUkRJTkFURV9YKHBsYW5lLT5jcnRj X3ggKyBwbGFuZS0+Y3J0Y193aWR0aCAtIDEpCj4gPiB8Cj4gPiArICAgICAgICAgICAgICAgQ09P UkRJTkFURV9ZKHBsYW5lLT5jcnRjX3kgKyBwbGFuZS0+Y3J0Y19oZWlnaHQgLQo+ID4gMSk7Cj4g PiArICAgICAgIHJlZ19kYXRhLT52aWRvc2RfYyA9IFZJRE9TRF9XeF9BTFBIQV9SX0YoMHgwKSB8 Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZJRE9TRF9XeF9BTFBIQV9HX0Yo MHgwKSB8Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZJRE9TRF9XeF9BTFBI QV9CX0YoMHgwKTsKPiA+ICsgICAgICAgcmVnX2RhdGEtPnZpZG9zZF9kID0gVklET1NEX1d4X0FM UEhBX1JfRigweDApIHwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVklET1NE X1d4X0FMUEhBX0dfRigweDApIHwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VklET1NEX1d4X0FMUEhBX0JfRigweDApOwo+ID4gKwo+ID4gKyAgICAgICBhZGRyID0gcGxhbmUt PmRtYV9hZGRyWzBdOwo+ID4gKyAgICAgICBhZGRyICs9IHBsYW5lLT5mYl93aWR0aCAqIHBsYW5l LT5mYl95ICogYnl0ZXNfcGVyX3BpeGVsOwo+IAo+IFJlcGxhY2UgcGxhbmUtPmZiX3dpZHRoICog Ynl0ZXNfcGVyX3BpeGVsIGJ5IHBsYW5lLT5mYl9waXRjaCBwbGVhc2UsCj4gYW5kIHNldCBwbGFu ZS0+ZmJfcGl0Y2ggZnJvbSBleHlub3NfZHJtX3BsYW5lLT5waXRjaC4gU2VlIHRoaXMgcGF0Y2g6 Cj4gaHR0cHM6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9saW51eC1zYW1zdW5nLXNvY0B2Z2VyLmtl cm5lbC5vcmcvbXNnNDI4NjEuaHRtbAo+IAo+IFlvdSBzaG91bGQgYmUgYWJsZSB0byB0ZXN0IHRo aXMgY2FzZSwgZWl0aGVyIGJ5IG1ha2luZyBhIHNwZWNpYWxpc2VkCj4gdXNlcnNwYWNlIHByb2dy YW0gd2hpY2ggaGFzIGEgbGFyZ2VyIHBpdGNoIHdpdGggZ2FyYmFnZSB2YWx1ZXMgaW4gdGhlCj4g cGFkZGluZyAoc2VlCj4gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93 aW5kb3dzL2Rlc2t0b3AvYWE0NzM3ODAodj12cy44NSkuYXNweCksCj4gb3IgYnkgdGVzdGluZyBh IHJlc29sdXRpb24gd2hlcmUgd2lkdGgqYnl0ZXNwcCBpcyBub3QgYSBtdWx0aXBsZSBvZgo+IDQs IGUuZy4gMTM2Nng3NjguCj4gCgpZZXMuIEkgYWdyZWUuCgo+ID4gKyAgICAgICBhZGRyICs9IHBs YW5lLT5mYl94ICogYnl0ZXNfcGVyX3BpeGVsOwo+ID4gKwo+ID4gKyAgICAgICByZWdfZGF0YS0+ dmlkd19hZGQwID0gYWRkcjsKPiA+ICsKPiA+ICsgICAgICAgYWRkciArPSBwbGFuZS0+ZmJfd2lk dGggKiBwbGFuZS0+Y3J0Y19oZWlnaHQgKgo+ID4gYnl0ZXNfcGVyX3BpeGVsOwo+IAo+IEFnYWlu LCByZXBsYWNlIGZiX3dpZHRoKmJ5dGVzX3Blcl9waXhlbCB3aXRoIGZiX3BpdGNoLgo+IAo+ID4g KyAgICAgICByZWdfZGF0YS0+dmlkd19hZGQxID0gYWRkcjsKPiA+ICsKPiA+ICsgICAgICAgdmFs X2ggPSAocGxhbmUtPmZiX3dpZHRoIC0gcGxhbmUtPmNydGNfd2lkdGgpICoKPiA+IGJ5dGVzX3Bl cl9waXhlbDsKPiAKPiB2YWxfaCA9IHBsYW5lLT5mYl9waXRjaCAtIChwbGFuZS0+Y3J0Y193aWR0 aCAqIGJ5dGVzX3Blcl9waXhlbCk7Cj4gCj4gPiArc3RhdGljIHZvaWQgZGVjb25fd2luX2NvbW1p dChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLCBpbnQKPiA+IHpwb3MpICt7Cj4gPiArICAg ICAgIHN0cnVjdCBleHlub3NfZGVjb24gKmRlY29uID0gY3J0Yy0+Y3R4Owo+ID4gKyAgICAgICBz dHJ1Y3QgZGVjb25fcmVnX2RhdGEgKnJlZ19kYXRhOwo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQg d2luID0genBvczsKPiA+ICsgICAgICAgdTMyIHZhbDsKPiA+ICsKPiA+ICsgICAgICAgaWYgKHdp biA9PSBERUZBVUxUX1pQT1MpCj4gPiArICAgICAgICAgICAgICAgd2luID0gMDsKPiA+ICsKPiA+ ICsgICAgICAgaWYgKHdpbiA8IDAgfHwgd2luID49IDUpCj4gPiArICAgICAgICAgICAgICAgcmV0 dXJuOwo+ID4gKwo+ID4gKyAgICAgICByZWdfZGF0YSA9ICZkZWNvbi0+cmVnX2RhdGFbd2luXTsK PiA+ICsKPiA+ICsgICAgICAgLyogc2hhZG93IHVwZGF0ZSBkaXNhYmxlICovCj4gPiArICAgICAg IHZhbCA9IHJlYWRsKGRlY29uLT5hZGRyICsgREVDT05fU0hBRE9XQ09OKTsKPiA+ICsgICAgICAg dmFsIHw9IFNIQURPV0NPTl9XeF9QUk9URUNUKHdpbik7Cj4gPiArICAgICAgIHdyaXRlbCh2YWws IGRlY29uLT5hZGRyICsgREVDT05fU0hBRE9XQ09OKTsKPiA+ICsKPiA+ICsgICAgICAgd3JpdGVs KHJlZ19kYXRhLT52aWRvc2RfYSwgZGVjb24tPmFkZHIgKwo+ID4gREVDT05fVklET1NEeEEod2lu KSk7Cj4gPiArICAgICAgIHdyaXRlbChyZWdfZGF0YS0+dmlkb3NkX2IsIGRlY29uLT5hZGRyICsK PiA+IERFQ09OX1ZJRE9TRHhCKHdpbikpOwo+ID4gKyAgICAgICB3cml0ZWwocmVnX2RhdGEtPnZp ZG9zZF9jLCBkZWNvbi0+YWRkciArCj4gPiBERUNPTl9WSURPU0R4Qyh3aW4pKTsKPiA+ICsgICAg ICAgd3JpdGVsKHJlZ19kYXRhLT52aWRvc2RfZCwgZGVjb24tPmFkZHIgKwo+ID4gREVDT05fVklE T1NEeEQod2luKSk7Cj4gPiArICAgICAgIHdyaXRlbChyZWdfZGF0YS0+dmlkd19hZGQwLCBkZWNv bi0+YWRkciArCj4gPiBERUNPTl9WSURXMHhBREQwQjAod2luKSk7Cj4gPiArICAgICAgIHdyaXRl bChyZWdfZGF0YS0+dmlkd19hZGQxLCBkZWNvbi0+YWRkciArCj4gPiBERUNPTl9WSURXMHhBREQx QjAod2luKSk7Cj4gPiArICAgICAgIHdyaXRlbChyZWdfZGF0YS0+dmlkd19hZGQyLCBkZWNvbi0+ YWRkciArCj4gPiBERUNPTl9WSURXMHhBREQyKHdpbikpOyArCj4gPiArICAgICAgIC8qIHdpbmRv dyBlbmFibGUgKi8KPiA+ICsgICAgICAgdmFsID0gcmVnX2RhdGEtPndpbmNvbjsKPiA+ICsgICAg ICAgdmFsIHw9IFdJTkNPTnhfRU5XSU5fRjsKPiA+ICsgICAgICAgd3JpdGVsKHZhbCwgZGVjb24t PmFkZHIgKyBERUNPTl9XSU5DT054KHdpbikpOwo+ID4gKwo+ID4gKyAgICAgICAvKiBzaGFkb3cg dXBkYXRlIGVuYWJsZSAqLwo+ID4gKyAgICAgICB2YWwgPSByZWFkbChkZWNvbi0+YWRkciArIERF Q09OX1NIQURPV0NPTik7Cj4gPiArICAgICAgIHZhbCAmPSB+U0hBRE9XQ09OX1d4X1BST1RFQ1Qo d2luKTsKPiA+ICsgICAgICAgd3JpdGVsKHZhbCwgZGVjb24tPmFkZHIgKyBERUNPTl9TSEFET1dD T04pOwo+ID4gKwo+ID4gKyAgICAgICAvKiBzdGFuZGFsb25lIHVwZGF0ZSAqLwo+ID4gKyAgICAg ICB2YWwgPSByZWFkbChkZWNvbi0+YWRkciArIERFQ09OX1VQREFURSk7Cj4gPiArICAgICAgIHZh bCB8PSBTVEFOREFMT05FX1VQREFURV9GOwo+ID4gKyAgICAgICB3cml0ZWwodmFsLCBkZWNvbi0+ YWRkciArIERFQ09OX1VQREFURSk7Cj4gPiArCj4gPiArICAgICAgIGlmIChkZWNvbi0+aTgwX2lm KQo+ID4gKyAgICAgICAgICAgICAgIGF0b21pY19zZXQoJmRlY29uLT53aW5fdXBkYXRlZCwgMSk7 Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGRlY29uX3dpbl9kaXNhYmxlKHN0cnVjdCBl eHlub3NfZHJtX2NydGMgKmNydGMsIGludAo+ID4genBvcykgK3sKPiA+ICsgICAgICAgc3RydWN0 IGV4eW5vc19kZWNvbiAqZGVjb24gPSBjcnRjLT5jdHg7Cj4gPiArICAgICAgIHN0cnVjdCBkZWNv bl9yZWdfZGF0YSAqcmVnX2RhdGE7Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCB3aW4gPSB6cG9z Owo+ID4gKyAgICAgICB1MzIgdmFsOwo+ID4gKwo+ID4gKyAgICAgICBpZiAod2luID09IERFRkFV TFRfWlBPUykKPiA+ICsgICAgICAgICAgICAgICB3aW4gPSAwOwo+ID4gKwo+ID4gKyAgICAgICBp ZiAod2luIDwgMCB8fCB3aW4gPj0gNSkKPiA+ICsgICAgICAgICAgICAgICByZXR1cm47Cj4gPiAr Cj4gPiArICAgICAgIHJlZ19kYXRhID0gJmRlY29uLT5yZWdfZGF0YVt3aW5dOwo+ID4gKwo+ID4g KyAgICAgICAvKiBzaGFkb3cgdXBkYXRlIGRpc2FibGUgKi8KPiA+ICsgICAgICAgdmFsID0gcmVh ZGwoZGVjb24tPmFkZHIgKyBERUNPTl9TSEFET1dDT04pOwo+ID4gKyAgICAgICB2YWwgfD0gU0hB RE9XQ09OX1d4X1BST1RFQ1Qod2luKTsKPiA+ICsgICAgICAgd3JpdGVsKHZhbCwgZGVjb24tPmFk ZHIgKyBERUNPTl9TSEFET1dDT04pOwo+ID4gKwo+ID4gKyAgICAgICAvKiB3aW5kb3cgZGlzYWJs ZSAqLwo+ID4gKyAgICAgICB2YWwgPSByZWdfZGF0YS0+d2luY29uOwo+ID4gKyAgICAgICB2YWwg Jj0gfldJTkNPTnhfRU5XSU5fRjsKPiA+ICsgICAgICAgd3JpdGVsKHZhbCwgZGVjb24tPmFkZHIg KyBERUNPTl9XSU5DT054KHdpbikpOwo+ID4gKwo+ID4gKyAgICAgICAvKiBzaGFkb3cgdXBkYXRl IGVuYWJsZSAqLwo+ID4gKyAgICAgICB2YWwgPSByZWFkbChkZWNvbi0+YWRkciArIERFQ09OX1NI QURPV0NPTik7Cj4gPiArICAgICAgIHZhbCAmPSB+U0hBRE9XQ09OX1d4X1BST1RFQ1Qod2luKTsK PiA+ICsgICAgICAgd3JpdGVsKHZhbCwgZGVjb24tPmFkZHIgKyBERUNPTl9TSEFET1dDT04pOwo+ ID4gKwo+ID4gKyAgICAgICAvKiBzdGFuZGFsb25lIHVwZGF0ZSAqLwo+ID4gKyAgICAgICB2YWwg PSByZWFkbChkZWNvbi0+YWRkciArIERFQ09OX1VQREFURSk7Cj4gPiArICAgICAgIHZhbCB8PSBT VEFOREFMT05FX1VQREFURV9GOwo+ID4gKyAgICAgICB3cml0ZWwodmFsLCBkZWNvbi0+YWRkciAr IERFQ09OX1VQREFURSk7Cj4gPiArfQo+ID4gKwo+ID4gK3ZvaWQgZGVjb25fdGVfaXJxX2hhbmRs ZXIoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVj dCBleHlub3NfZGVjb24gKmRlY29uID0gY3J0Yy0+Y3R4Owo+ID4gKyAgICAgICB1MzIgdmFsOwo+ ID4gKwo+ID4gKyAgICAgICBpZiAoIXRlc3RfYml0KEJJVF9DTEtTX0VOQUJMRUQsICZkZWNvbi0+ ZW5hYmxlZCkpCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuOwo+ID4gKwo+ID4gKyAgICAgICBp ZiAoYXRvbWljX2FkZF91bmxlc3MoJmRlY29uLT53aW5fdXBkYXRlZCwgLTEsIDApKSB7Cj4gPiAr ICAgICAgICAgICAgICAgLyogdHJpZ2dlciAqLwo+ID4gKyAgICAgICAgICAgICAgIHZhbCA9IHJl YWRsKGRlY29uLT5hZGRyICsgREVDT05fVFJJR0NPTik7Cj4gPiArICAgICAgICAgICAgICAgdmFs IHw9IFRSSUdDT05fU1dUUklHQ01EOwo+ID4gKyAgICAgICAgICAgICAgIHdyaXRlbCh2YWwsIGRl Y29uLT5hZGRyICsgREVDT05fVFJJR0NPTik7Cj4gPiArICAgICAgIH0KPiA+ICt9Cj4gPiArCj4g PiArc3RhdGljIHN0cnVjdCBleHlub3NfZHJtX2NydGNfb3BzIGRlY29uX2NydGNfb3BzID0gewo+ ID4gKyAgICAgICAuZHBtcyAgICAgICAgICAgICAgICAgICA9IGRlY29uX2RwbXMsCj4gPiArICAg ICAgIC5lbmFibGVfdmJsYW5rICAgICAgICAgID0gZGVjb25fZW5hYmxlX3ZibGFuaywKPiA+ICsg ICAgICAgLmRpc2FibGVfdmJsYW5rICAgICAgICAgPSBkZWNvbl9kaXNhYmxlX3ZibGFuaywKPiA+ ICsgICAgICAgLmNvbW1pdCAgICAgICAgICAgICAgICAgPSBkZWNvbl9jb21taXQsCj4gPiArICAg ICAgIC53aW5fbW9kZV9zZXQgICAgICAgICAgID0gZGVjb25fd2luX21vZGVfc2V0LAo+ID4gKyAg ICAgICAud2luX2NvbW1pdCAgICAgICAgICAgICA9IGRlY29uX3dpbl9jb21taXQsCj4gPiArICAg ICAgIC53aW5fZGlzYWJsZSAgICAgICAgICAgID0gZGVjb25fd2luX2Rpc2FibGUsCj4gPiArICAg ICAgIC50ZV9oYW5kbGVyICAgICAgICAgICAgID0gZGVjb25fdGVfaXJxX2hhbmRsZXIsCj4gPiAr fTsKPiA+ICsKPiA+ICtzdGF0aWMgaW50IGRlY29uX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gPiB2b2lkICpkYXRhKSArewo+ID4gKyAgICAgICBzdHJ1 Y3QgZXh5bm9zX2RlY29uICpkZWNvbiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ID4gKyAgICAg ICBzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRhdGE7Cj4gPiArICAgICAgIHN0cnVjdCBl eHlub3NfZHJtX3ByaXZhdGUgKnByaXYgPSBkcm1fZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICsKPiA+ ICsgICAgICAgZGVjb24tPmRybV9kZXYgPSBkcm1fZGV2Owo+ID4gKyAgICAgICBkZWNvbi0+cGlw ZSA9IHByaXYtPnBpcGUrKzsKPiA+ICsKPiA+ICsgICAgICAgZGVjb24tPmNydGMgPSBleHlub3Nf ZHJtX2NydGNfY3JlYXRlKGRybV9kZXYsIGRlY29uLT5waXBlLAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgRVhZTk9TX0RJU1BMQVlfVFlQRV9MQ0QsICZkZWNvbl9jcnRjX29wcywKPiA+IGRl Y29uKTsKPiA+ICsgICAgICAgaWYgKElTX0VSUihkZWNvbi0+Y3J0YykpCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuIFBUUl9FUlIoZGVjb24tPmNydGMpOwo+IAo+IFNob3VsZCBmYWlsaW5nIHRv IHJlZ2lzdGVyIHRoZSBDUlRDIGFsc28gZGVjcmVtZW50IHByaXYtPnBpcGU/Cj4gCgpZZXMuIFRo YXQncyByaWdodC4KCj4gPiArCj4gPiArICAgICAgIHJldHVybiAwOwo+ID4gK30KPiA+ICsKPiA+ ICtzdGF0aWMgdm9pZCBkZWNvbl91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2 aWNlCj4gPiAqbWFzdGVyLCB2b2lkICpkYXRhKSArewo+ID4gKyAgICAgICBzdHJ1Y3QgZXh5bm9z X2RlY29uICpkZWNvbiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ID4gKwo+ID4gKyAgICAgICBk ZWNvbl9kcG1zKGRlY29uLT5jcnRjLCBEUk1fTU9ERV9EUE1TX09GRik7Cj4gPiArfQo+IAo+IEFz IGFib3ZlLCBpdCBzZWVtcyBsaWtlIERQTVMgd2lsbCBub3QgZG8gZW5vdWdoIGhlcmUuCj4gCj4g PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIGRlY29uX2NvbXBvbmVudF9vcHMg PSB7Cj4gPiArICAgICAgIC5iaW5kICAgPSBkZWNvbl9iaW5kLAo+ID4gKyAgICAgICAudW5iaW5k ID0gZGVjb25fdW5iaW5kLAo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGlycXJldHVybl90IGRl Y29uX3ZzeW5jX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiA+ICt7Cj4gPiAr ICAgICAgIHN0cnVjdCBleHlub3NfZGVjb24gKmRlY29uID0gZGV2X2lkOwo+ID4gKyAgICAgICB1 MzIgdmFsOwo+ID4gKwo+ID4gKyAgICAgICBpZiAoIXRlc3RfYml0KEJJVF9DTEtTX0VOQUJMRUQs ICZkZWNvbi0+ZW5hYmxlZCkpCj4gPiArICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gPiArCj4g PiArICAgICAgIHZhbCA9IHJlYWRsKGRlY29uLT5hZGRyICsgREVDT05fVklESU5UQ09OMSk7Cj4g PiArICAgICAgIGlmICh2YWwgJiBWSURJTlRDT04xX0lOVEZSTVBFTkQpIHsKPiA+ICsgICAgICAg ICAgICAgICBpZiAoZGVjb24tPmRybV9kZXYpCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBk cm1faGFuZGxlX3ZibGFuayhkZWNvbi0+ZHJtX2RldiwKPiA+IGRlY29uLT5waXBlKTsKPiAKPiBJ ZiBkZWNvbi0+ZHJtX2RldiBpcyBldmVyIE5VTEwsIGl0IHNvdW5kcyBsaWtlIHNvbWV0aGluZyBo YXMgZ29uZSB2ZXJ5Cj4gc2VyaW91c2x5IHdyb25nLgoKZGVjb24tPmRybV9kZXYgd2lsbCBub3Qg YmUgTlVMTCBhdCBhbnkgdGltZS4gU28gSSB3aWxsIHJlbW92ZSB0aGUgaWYKc3RhdGVtZW50LgoK PiAKPiA+ICsgICAgICAgICAgICAgICAvKiBjbGVhciAqLwo+ID4gKyAgICAgICAgICAgICAgIHdy aXRlbChWSURJTlRDT04xX0lOVEZSTVBFTkQsIGRlY29uLT5hZGRyICsKPiA+IERFQ09OX1ZJRElO VENPTjEpOwo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiArb3V0Ogo+ID4gKyAgICAgICByZXR1cm4g SVJRX0hBTkRMRUQ7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpcnFyZXR1cm5fdCBkZWNvbl9s Y2Rfc3lzX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiA+ICt7Cj4gPiArICAg ICAgIHN0cnVjdCBleHlub3NfZGVjb24gKmRlY29uID0gZGV2X2lkOwo+ID4gKyAgICAgICB1MzIg dmFsOwo+ID4gKwo+ID4gKyAgICAgICBpZiAoIXRlc3RfYml0KEJJVF9DTEtTX0VOQUJMRUQsICZk ZWNvbi0+ZW5hYmxlZCkpCj4gPiArICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gPiArCj4gPiAr ICAgICAgIHZhbCA9IHJlYWRsKGRlY29uLT5hZGRyICsgREVDT05fVklESU5UQ09OMSk7Cj4gPiAr ICAgICAgIGlmICh2YWwgJiBWSURJTlRDT04xX0lOVEZSTURPTkVQRU5EKSB7Cj4gPiArICAgICAg ICAgICAgICAgaWYgKGRlY29uLT5kcm1fZGV2KQo+ID4gKwo+ID4gZXh5bm9zX2RybV9jcnRjX2Zp bmlzaF9wYWdlZmxpcChkZWNvbi0+ZHJtX2RldiwKPiA+ICsKPiA+IGRlY29uLT5waXBlKTsKPiAK PiBEaXR0byAtIHdoZW4gd291bGQgZHJtX2RldiBiZSBOVUxMPwoKRGl0dG8uCgo+IAo+ID4gKyAg ICAgICAgICAgICAgIC8qIGNsZWFyICovCj4gPiArICAgICAgICAgICAgICAgd3JpdGVsKFZJRElO VENPTjFfSU5URlJNRE9ORVBFTkQsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRlY29uLT5hZGRyICsgREVDT05fVklESU5UQ09OMSk7Cj4gPiArICAgICAgIH0KPiA+ICsKPiA+ ICtvdXQ6Cj4gPiArICAgICAgIHJldHVybiBJUlFfSEFORExFRDsKPiA+ICt9Cj4gPiArCj4gPiAr c3RhdGljIGludCBleHlub3M1NDMzX2RlY29uX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2 Owo+ID4gKyAgICAgICBzdHJ1Y3QgZXh5bm9zX2RlY29uICpkZWNvbjsKPiA+ICsgICAgICAgc3Ry dWN0IHJlc291cmNlICpyZXM7Cj4gPiArICAgICAgIGludCByZXQ7Cj4gPiArICAgICAgIGludCBp Owo+ID4gKwo+ID4gKyAgICAgICBkZWNvbiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZGVj b24pLCBHRlBfS0VSTkVMKTsKPiA+ICsgICAgICAgaWYgKCFkZWNvbikKPiA+ICsgICAgICAgICAg ICAgICByZXR1cm4gLUVOT01FTTsKPiA+ICsKPiA+ICsgICAgICAgZGVjb24tPmRldiA9IGRldjsK PiA+ICsgICAgICAgaWYgKG9mX2dldF9jaGlsZF9ieV9uYW1lKGRldi0+b2Zfbm9kZSwgImk4MC1p Zi10aW1pbmdzIikpCj4gPiArICAgICAgICAgICAgICAgZGVjb24tPmk4MF9pZiA9IHRydWU7Cj4g PiArCj4gPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRlY29uX2Nsa3NfbmFt ZSk7IGkrKykgewo+ID4gKyAgICAgICAgICAgICAgIHN0cnVjdCBjbGsgKmNsazsKPiA+ICsKPiA+ ICsgICAgICAgICAgICAgICBjbGsgPSBkZXZtX2Nsa19nZXQoZGVjb24tPmRldiwgZGVjb25fY2xr c19uYW1lW2ldKTsKPiA+ICsgICAgICAgICAgICAgICBpZiAoSVNfRVJSKGNsaykpCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihjbGspOwo+ID4gKwo+ID4gKyAgICAg ICAgICAgICAgIGRlY29uLT5jbGtzW2ldID0gY2xrOwo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiAr ICAgICAgIHJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwg MCk7Cj4gPiArICAgICAgIGlmICghcmVzKSB7Cj4gPiArICAgICAgICAgICAgICAgZGV2X2Vycihk ZXYsICJjYW5ub3QgZmluZCBJTyByZXNvdXJjZVxuIik7Cj4gPiArICAgICAgICAgICAgICAgcmV0 dXJuIC1FTlhJTzsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICBkZWNvbi0+YWRkciA9 IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4gPiArICAgICAgIGlmIChJU19FUlIo ZGVjb24tPmFkZHIpKSB7Cj4gPiArICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJpb3JlbWFw IGZhaWxlZFxuIik7Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoZGVjb24tPmFk ZHIpOwo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiArICAgICAgIHJlcyA9IHBsYXRmb3JtX2dldF9y ZXNvdXJjZV9ieW5hbWUocGRldiwgSU9SRVNPVVJDRV9JUlEsCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBkZWNvbi0+aTgwX2lmID8gImxjZF9zeXMiIDogInZzeW5jIik7Cj4gPiArICAgICAg IGlmICghcmVzKSB7Cj4gPiArICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJjYW5ub3QgZmlu ZCBJUlEgcmVzb3VyY2VcbiIpOwo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5YSU87Cj4g PiArICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgcmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYs IHJlcy0+c3RhcnQsIGRlY29uLT5pODBfaWYgPwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ZGVjb25fbGNkX3N5c19pcnFfaGFuZGxlciA6Cj4gPiBkZWNvbl92c3luY19pcnFfaGFuZGxlciwg MCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICJkcm1fZGVjb24iLCBkZWNvbik7Cj4gPiAr ICAgICAgIGlmIChyZXQgPCAwKSB7Cj4gPiArICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJs Y2Rfc3lzIGlycSByZXF1ZXN0IGZhaWxlZFxuIik7Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJu IHJldDsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICByZXQgPSBleHlub3NfZHJtX2Nv bXBvbmVudF9hZGQoZGV2LCBFWFlOT1NfREVWSUNFX1RZUEVfQ1JUQywKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYWU5PU19ESVNQTEFZX1RZUEVfTENEKTsKPiA+ ICsgICAgICAgaWYgKHJldCA8IDApCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ ICsKPiA+ICsgICAgICAgcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZGVjb24pOwo+ID4gKwo+ ID4gKyAgICAgICByZXQgPSBjb21wb25lbnRfYWRkKGRldiwgJmRlY29uX2NvbXBvbmVudF9vcHMp Owo+ID4gKyAgICAgICBpZiAocmV0IDwgMCkgewo+ID4gKyAgICAgICAgICAgICAgIGV4eW5vc19k cm1fY29tcG9uZW50X2RlbChkZXYsCj4gPiBFWFlOT1NfREVWSUNFX1RZUEVfQ1JUQyk7Cj4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAg ICByZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBleHlub3M1NDMzX2RlY29u X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gK3sKPiA+ICsgICAgICAg Y29tcG9uZW50X2RlbCgmcGRldi0+ZGV2LCAmZGVjb25fY29tcG9uZW50X29wcyk7Cj4gPiArICAg ICAgIGV4eW5vc19kcm1fY29tcG9uZW50X2RlbCgmcGRldi0+ZGV2LAo+ID4gRVhZTk9TX0RFVklD RV9UWVBFX0NSVEMpOyArCj4gPiArICAgICAgIHJldHVybiAwOwo+ID4gK30KPiA+ICsKPiA+ICtz dGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZAo+ID4gZXh5bm9zNTQzM19kZWNvbl9kcml2 ZXJfZHRfbWF0Y2hbXSA9IHsKPiA+ICsgICAgICAgeyAuY29tcGF0aWJsZSA9ICJzYW1zdW5nLGV4 eW5vczU0MzMtZGVjb24iIH0sCj4gPiArICAgICAgIHt9LAo+ID4gK307Cj4gPiArTU9EVUxFX0RF VklDRV9UQUJMRShvZiwgZXh5bm9zNTQzM19kZWNvbl9kcml2ZXJfZHRfbWF0Y2gpOwo+ID4gKwo+ ID4gK3N0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZXh5bm9zNTQzM19kZWNvbl9kcml2ZXIgPSB7Cj4g PiArICAgICAgIC5wcm9iZSAgICAgICAgICA9IGV4eW5vczU0MzNfZGVjb25fcHJvYmUsCj4gPiAr ICAgICAgIC5yZW1vdmUgICAgICAgICA9IGV4eW5vczU0MzNfZGVjb25fcmVtb3ZlLAo+ID4gKyAg ICAgICAuZHJpdmVyICAgICAgICAgPSB7Cj4gPiArICAgICAgICAgICAgICAgLm5hbWUgICA9ICJl eHlub3M1NDMzLWRlY29uIiwKPiA+ICsgICAgICAgICAgICAgICAub3duZXIgID0gVEhJU19NT0RV TEUsCj4gPiArICAgICAgICAgICAgICAgLm9mX21hdGNoX3RhYmxlID0gZXh5bm9zNTQzM19kZWNv bl9kcml2ZXJfZHRfbWF0Y2gsCj4gPiArICAgICAgIH0sCj4gPiArfTsKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmMKPiA+IGIvZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5jIGluZGV4IDk4YTIzOWEuLjFmYTBkZDAKPiA+ IDEwMDY0NCAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuYwo+ID4gQEAgLTU1 Niw2ICs1NTYsOSBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciAqY29uc3QKPiA+IGV4 eW5vc19kcm1fa21zX2RyaXZlcnNbXSA9IHsgI2lmZGVmIENPTkZJR19EUk1fRVhZTk9TX0ZJTUQK PiA+ICAgICAgICAgJmZpbWRfZHJpdmVyLAo+ID4gICNlbmRpZgo+ID4gKyNpZmRlZiBDT05GSUdf RFJNX0VYWU5PUzU0MzNfREVDT04KPiA+ICsgICAgICAgJmV4eW5vczU0MzNfZGVjb25fZHJpdmVy LAo+ID4gKyNlbmRpZgo+ID4gICNpZmRlZiBDT05GSUdfRFJNX0VYWU5PUzdfREVDT04KPiA+ICAg ICAgICAgJmRlY29uX2RyaXZlciwKPiA+ICAjZW5kaWYKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmgKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfZHJtX2Rydi5oIGluZGV4IDlhZmQzOTAuLjQwOTk2ZDgKPiA+IDEwMDY0NCAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmgKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuaAo+ID4gQEAgLTM0NCw2ICszNDQs NyBAQCB2b2lkIGV4eW5vc19kcm1fY29tcG9uZW50X2RlbChzdHJ1Y3QgZGV2aWNlCj4gPiAqZGV2 LCBlbnVtIGV4eW5vc19kcm1fZGV2aWNlX3R5cGUgZGV2X3R5cGUpOwo+ID4KPiA+ICBleHRlcm4g c3RydWN0IHBsYXRmb3JtX2RyaXZlciBmaW1kX2RyaXZlcjsKPiA+ICtleHRlcm4gc3RydWN0IHBs YXRmb3JtX2RyaXZlciBleHlub3M1NDMzX2RlY29uX2RyaXZlcjsKPiA+ICBleHRlcm4gc3RydWN0 IHBsYXRmb3JtX2RyaXZlciBkZWNvbl9kcml2ZXI7Cj4gPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9y bV9kcml2ZXIgZHBfZHJpdmVyOwo+ID4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGRz aV9kcml2ZXI7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9yZWdzLWV4 eW5vczU0MzMtZGVjb24uaAo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL3JlZ3MtZXh5bm9z NTQzMy1kZWNvbi5oIG5ldyBmaWxlIG1vZGUKPiA+IDEwMDY0NCBpbmRleCAwMDAwMDAwLi45ZTdm ODUxCj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL3Jl Z3MtZXh5bm9zNTQzMy1kZWNvbi5oCj4gPiBAQCAtMCwwICsxLDE2MyBAQAo+ID4gKy8qCj4gPiAr ICogQ29weXJpZ2h0IChDKSAyMDE0IFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uTHRkCj4gPiArICoK PiA+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCj4gPiBtb2RpZnkKPiA+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMgo+ID4gYXMKPiA+ICsgKiBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbnIKPiA+ICsgKi8KPiA+ICsKPiA+ ICsjaWZuZGVmIEVYWU5PU19SRUdTX0RFQ09OX0gKPiA+ICsjZGVmaW5lIEVYWU5PU19SRUdTX0RF Q09OX0gKPiA+ICsKPiA+ICsvKiBFeHlub3M1NDNYIERFQ09OICovCj4gPiArI2RlZmluZSBERUNP Tl9WSURDT04wICAgICAgICAgICAgICAgICAgMHgwMDAwCj4gPiArI2RlZmluZSBERUNPTl9WSURP VVRDT04wICAgICAgICAgICAgICAgMHgwMDEwCj4gPiArI2RlZmluZSBERUNPTl9XSU5DT054KG4p ICAgICAgICAgICAgICAgKDB4MDAyMCArICgobikgKiA0KSkKPiA+ICsjZGVmaW5lIERFQ09OX1ZJ RE9TRHhIKG4pICAgICAgICAgICAgICAoMHgwMDgwICsgKChuKSAqIDQpKQo+ID4gKyNkZWZpbmUg REVDT05fU0hBRE9XQ09OICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEEwCj4gPiArI2RlZmlu ZSBERUNPTl9WSURPU0R4QShuKSAgICAgICAgICAgICAgKDB4MDBCMCArICgobikgKiAweDIwKSkK PiA+ICsjZGVmaW5lIERFQ09OX1ZJRE9TRHhCKG4pICAgICAgICAgICAgICAoMHgwMEI0ICsgKChu KSAqIDB4MjApKQo+ID4gKyNkZWZpbmUgREVDT05fVklET1NEeEMobikgICAgICAgICAgICAgICgw eDAwQjggKyAoKG4pICogMHgyMCkpCj4gPiArI2RlZmluZSBERUNPTl9WSURPU0R4RChuKSAgICAg ICAgICAgICAgKDB4MDBCQyArICgobikgKiAweDIwKSkKPiA+ICsjZGVmaW5lIERFQ09OX1ZJRE9T RHhFKG4pICAgICAgICAgICAgICAoMHgwMEMwICsgKChuKSAqIDB4MjApKQo+ID4gKyNkZWZpbmUg REVDT05fVklEVzB4QUREMEIwKG4pICAgICAgICAgICgweDAxNTAgKyAoKG4pICogMHgxMCkpCj4g PiArI2RlZmluZSBERUNPTl9WSURXMHhBREQwQjEobikgICAgICAgICAgKDB4MDE1NCArICgobikg KiAweDEwKSkKPiA+ICsjZGVmaW5lIERFQ09OX1ZJRFcweEFERDBCMihuKSAgICAgICAgICAoMHgw MTU4ICsgKChuKSAqIDB4MTApKQo+ID4gKyNkZWZpbmUgREVDT05fVklEVzB4QUREMUIwKG4pICAg ICAgICAgICgweDAxQTAgKyAoKG4pICogMHgxMCkpCj4gPiArI2RlZmluZSBERUNPTl9WSURXMHhB REQxQjEobikgICAgICAgICAgKDB4MDFBNCArICgobikgKiAweDEwKSkKPiA+ICsjZGVmaW5lIERF Q09OX1ZJRFcweEFERDFCMihuKSAgICAgICAgICAoMHgwMUE4ICsgKChuKSAqIDB4MTApKQo+ID4g KyNkZWZpbmUgREVDT05fVklEVzB4QUREMihuKSAgICAgICAgICAgICgweDAyMDAgKyAoKG4pICog NCkpCj4gPiArI2RlZmluZSBERUNPTl9MT0NBTHhTSVpFKG4pICAgICAgICAgICAgKDB4MDIxNCAr ICgobikgKgo+ID4gNCkpY2hhbmdlLWJvb3RpbmctbW9kZS5zaCAtLXVwZGF0ZSArI2RlZmluZQo+ ID4gREVDT05fVklESU5UQ09OMCAgICAgICAgICAgICAgIDB4MDIyMCArI2RlZmluZQo+ID4gREVD T05fVklESU5UQ09OMSAgICAgICAgICAgICAgIDB4MDIyNCArI2RlZmluZQo+ID4gREVDT05fV3hL RVlDT04wKG4pICAgICAgICAgICAgICgweDAyMzAgKyAoKG4gLSAxKSAqIDgpKSArI2RlZmluZQo+ ID4gREVDT05fV3hLRVlDT04xKG4pICAgICAgICAgICAgICgweDAyMzQgKyAoKG4gLSAxKSAqIDgp KSArI2RlZmluZQo+ID4gREVDT05fV3hLRVlBTFBIQShuKSAgICAgICAgICAgICgweDAyNTAgKyAo KG4gLSAxKSAqIDQpKSArI2RlZmluZQo+ID4gREVDT05fV0lOeE1BUChuKSAgICAgICAgICAgICAg ICgweDAyNzAgKyAoKG4pICogNCkpICsjZGVmaW5lCj4gPiBERUNPTl9RT1NMVVQwN18wMCAgICAg ICAgICAgICAgMHgwMkMwICsjZGVmaW5lCj4gPiBERUNPTl9RT1NMVVQxNV8wOCAgICAgICAgICAg ICAgMHgwMkM0ICsjZGVmaW5lCj4gPiBERUNPTl9RT1NDVFJMICAgICAgICAgICAgICAgICAgMHgw MkM4ICsjZGVmaW5lCj4gPiBERUNPTl9CTEVOREVSUXgobikgICAgICAgICAgICAgKDB4MDMwMCAr ICgobiAtIDEpICogNCkpICsjZGVmaW5lCj4gPiBERUNPTl9CTEVORENPTiAgICAgICAgICAgICAg ICAgMHgwMzEwICsjZGVmaW5lCj4gPiBERUNPTl9PUEVfVklEVzB4QUREMChuKSAgICAgICAgICAg ICAgICAoMHgwNDAwICsgKChuKSAqIDQpKQo+ID4gKyNkZWZpbmUgREVDT05fT1BFX1ZJRFcweEFE RDEobikgICAgICAgICAgICAgICAgKDB4MDQxNCArICgobikgKgo+ID4gNCkpICsjZGVmaW5lIERF Q09OX0ZSQU1FRklGT19SRUc3ICAgICAgICAgICAweDA1MUMgKyNkZWZpbmUKPiA+IERFQ09OX0ZS QU1FRklGT19SRUc4ICAgICAgICAgICAweDA1MjAgKyNkZWZpbmUKPiA+IERFQ09OX0ZSQU1FRklG T19TVEFUVVMgICAgICAgICAweDA1MjQgKyNkZWZpbmUKPiA+IERFQ09OX0NNVSAgICAgICAgICAg ICAgICAgICAgICAweDE0MDQgKyNkZWZpbmUKPiA+IERFQ09OX1VQREFURSAgICAgICAgICAgICAg ICAgICAweDE0MTAgKyNkZWZpbmUKPiA+IERFQ09OX1VQREFURV9TQ0hFTUUgICAgICAgICAgICAw eDE0MzggKyNkZWZpbmUKPiA+IERFQ09OX1ZJRENPTjEgICAgICAgICAgICAgICAgICAweDIwMDAg KyNkZWZpbmUKPiA+IERFQ09OX1ZJRENPTjIgICAgICAgICAgICAgICAgICAweDIwMDQgKyNkZWZp bmUKPiA+IERFQ09OX1ZJRENPTjMgICAgICAgICAgICAgICAgICAweDIwMDggKyNkZWZpbmUKPiA+ IERFQ09OX1ZJRENPTjQgICAgICAgICAgICAgICAgICAweDIwMEMgKyNkZWZpbmUKPiA+IERFQ09O X1ZJRFRDT04yICAgICAgICAgICAgICAgICAweDIwMjggKyNkZWZpbmUKPiA+IERFQ09OX0ZSQU1F X1NJWkUgICAgICAgICAgICAgICAweDIwMzggKyNkZWZpbmUKPiA+IERFQ09OX0xJTkVDTlRfT1Bf VEhSRVNIT0xEICAgICAweDIwM0MgKyNkZWZpbmUKPiA+IERFQ09OX1RSSUdDT04gICAgICAgICAg ICAgICAgICAweDIwNDAgKyNkZWZpbmUKPiA+IERFQ09OX1RSSUdTS0lQICAgICAgICAgICAgICAg ICAweDIwNTAgKyNkZWZpbmUKPiA+IERFQ09OX0NSQ1JEQVRBICAgICAgICAgICAgICAgICAweDIw QjAgKyNkZWZpbmUKPiA+IERFQ09OX0NSQ0NUUkwgICAgICAgICAgICAgICAgICAweDIwQjQgKwo+ ID4gKy8qIEV4eW5vczU0MzAgREVDT04gKi8KPiA+ICsjZGVmaW5lIERFQ09OX1ZJRFRDT04wICAg ICAgICAgICAgICAgICAweDIwMjAKPiA+ICsjZGVmaW5lIERFQ09OX1ZJRFRDT04xICAgICAgICAg ICAgICAgICAweDIwMjQKPiA+ICsKPiA+ICsvKiBFeHlub3M1NDMzIERFQ09OICovCj4gPiArI2Rl ZmluZSBERUNPTl9WSURUQ09OMDAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMTAKPiA+ICsj ZGVmaW5lIERFQ09OX1ZJRFRDT04wMSAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAxNAo+ID4g KyNkZWZpbmUgREVDT05fVklEVENPTjEwICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDE4Cj4g PiArI2RlZmluZSBERUNPTl9WSURUQ09OMTEgICAgICAgICAgICAgICAgICAgICAgICAweDIwMUMK PiA+ICsKPiA+ICsvKiBFeHlub3M1NDNYIERFQ09OIEludGVybmFsICovCj4gPiArI2RlZmluZSBE RUNPTl9XMDEzRFNUUkVPQ09OICAgICAgICAgICAgMHgwMzIwCj4gPiArI2RlZmluZSBERUNPTl9X MjMzRFNUUkVPQ09OICAgICAgICAgICAgMHgwMzI0Cj4gPiArI2RlZmluZSBERUNPTl9GUkFNRUZJ Rk9fUkVHMCAgICAgICAgICAgMHgwNTAwCj4gPiArI2RlZmluZSBERUNPTl9FTkhBTkNFUl9DVFJM ICAgICAgICAgICAgMHgyMTAwCj4gPiArCj4gPiArLyogRXh5bm9zNTQzWCBERUNPTiBUViAqLwo+ ID4gKyNkZWZpbmUgREVDT05fVkNMS0NPTjAgICAgICAgICAgICAgICAgIDB4MDAxNAo+ID4gKyNk ZWZpbmUgREVDT05fVklESU5UQ09OMiAgICAgICAgICAgICAgIDB4MDIyOAo+ID4gKyNkZWZpbmUg REVDT05fVklESU5UQ09OMyAgICAgICAgICAgICAgIDB4MDIyQwo+IAo+IFllcywgbXkgaW1wcmVz c2lvbiB3YXMgdGhhdCBERUNPTiBzdXBwb3J0ZWQgYm90aCBpbnRlcm5hbCBhbmQKPiBleHRlcm5h bCwgaS5lLiB3b3VsZCByZXBsYWNlIGJvdGggRklNRC9NaXhlci4gVGhpcyBwYXRjaCBvbmx5IHN1 cHBvcnRzCj4gdGhlIGludGVybmFsIGludGVyZmFjZTogYXJlIHlvdSBwbGFubmluZyB0byBhZGQg c3VwcG9ydCBmb3IgdGhlCj4gZXh0ZXJuYWwvVFYvSERNSSBpbnRlcmZhY2UgYXMgd2VsbD8gSWYg c28sIGhvdyBkb2VzIHRoaXMgd29yayB3aXRoIHRoZQo+IERUIGZvcm1hdCB5b3UgaGF2ZSBkZWZp bmVkPyBTaG91bGQgdGhlcmUgbWF5YmUgc2VwYXJhdGUgZGVjb24taW50IGFuZAo+IGRlY29uLXR2 IHN1Ym5vZGVzLCBlYWNoIG9mIHdoaWNoIGNyZWF0ZSBvbmUgQ1JUQz8gVGhlIEFuZHJvaWQgdHJl ZQo+IHNlZW1zIHRvIHJlbHkgb24gc3RhdGljIGNvbmZpZ3VyYXRpb24sIGJ1dCBwcmVzdW1hYmx5 IHdlIHdvdWxkIG5lZWQgYQo+IG11Y2ggbW9yZSBudWFuY2VkIGFwcHJvYWNoLgo+IAo+IElmIHNv LCBpdCBzZWVtcyBsaWtlIHRoZSBmaXJzdCBzdGFydCB3b3VsZCBiZSB0byBhZGQgYSBiYXNpYyBE RUNPTgo+IGJpbmRpbmcgd2hpY2ggY292ZXJlZCB0aGUgZW50aXJlIGNvbnRyb2xsZXIsIGFuZCB0 aGVuIGFzIGEgbmV4dCBzdGVwCj4gYWRkIHN1cHBvcnQgZm9yIGRlY29uLWludCBhcyBhIHN1YmRl dmljZSBvZiB0aGlzLgo+IAoKQXMgSSBrbm93LCB0aGV5IGFyZSBwaHlzaWNhbGx5IGRpZmZlcmVu dCBkZXZpY2VzIGV2ZW4gdGhvdWdoIHRoZXkgaGF2ZQpzaW1pbGFyIG5hbWVzIGFuZCBzaW1pbGFy IG9wZXJhdGlvbnMuIElmIGl0IGlzIHJpZ2h0LCBJIGFtIG5vdCBzdXJlCnRoYXQgY29uZ3JlZ2F0 aW5nIHRoZW0gaW4gb25lIERUIG5vZGUgaXMgcmlnaHQuCgpJIHJlYWxseSBhcHByZWNpYXRlIHlv dXIgcmV2aWV3LiBUaGFua3MuCgo+IENoZWVycywKPiBEYW5pZWwKPiAKCkJlc3QgcmVnYXJkcywK SHl1bmd3b24gSHdhbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK