From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [DPU PATCH 2/3] drm/msm/dp: add displayPort driver support Date: Mon, 26 Nov 2018 16:41:01 -0500 Message-ID: <20181126214101.GC154160@art_vandelay> References: <1539191759-14836-1-git-send-email-chandanu@codeaurora.org> <1539191759-14836-3-git-send-email-chandanu@codeaurora.org> <20181023162821.GE154160@art_vandelay> <84612eefebedc1eae1756505d6639b01@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <84612eefebedc1eae1756505d6639b01-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: chandanu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Cc: Sean Paul , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, nganji-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gTW9uLCBOb3YgMTksIDIwMTggYXQgMDI6MzQ6NTNQTSAtMDgwMCwgY2hhbmRhbnVAY29kZWF1 cm9yYS5vcmcgd3JvdGU6Cj4gT24gMjAxOC0xMC0yMyAwOToyOCwgU2VhbiBQYXVsIHdyb3RlOgo+ ID4gT24gV2VkLCBPY3QgMTAsIDIwMTggYXQgMTA6MTU6NThBTSAtMDcwMCwgQ2hhbmRhbiBVZGRh cmFqdSB3cm90ZToKPiA+ID4gQWRkIHRoZSBuZWVkZWQgZGlzcGxheVBvcnQgZmlsZXMgdG8gZW5h YmxlIERQIGRyaXZlcgo+ID4gPiBvbiBtc20gdGFyZ2V0Lgo+ID4gPiAKPiA+ID4gImRwX2Rpc3Bs YXkiIG1vZHVsZSBpcyB0aGUgbWFpbiBtb2R1bGUgdGhhdCBjYWxscyBpbnRvCj4gPiA+IG90aGVy IHN1Yi1tb2R1bGVzLiAiZHBfZHJtIiBmaWxlIHJlcHJlc2VudHMgdGhlIGludGVyZmFjZQo+ID4g PiBiZXR3ZWVuIERSTSBmcmFtZXdvcmsgYW5kIERQIGRyaXZlci4KPiA+ID4gCj4gPiAKPiAKPiBI ZWxsbyBTZWFuLAo+IEkgaGFkIGZldyBxdWVyaWVzIHJlZ2FyZGluZyB5b3VyIGNvbW1lbnRzLiBT aGFyZWQgbXkgcXVlcmllcyBiZWxvdy4gUGxlYXNlCj4gc2hhcmUgeW91ciBmZWVkYmFjay4KCi9z bmlwCgo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9hdXguYwo+ ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfYXV4LmMKPiA+ID4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiA+ID4gaW5kZXggMDAwMDAwMC4uMDBiODJjMgo+ID4gPiAtLS0gL2Rldi9udWxs Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfYXV4LmMKPiA+ID4gQEAgLTAs MCArMSw1NzAgQEAKPiA+IAo+ID4gL3NuaXAKPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kcC9kcF9hdXguaAo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAv ZHBfYXV4LmgKPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gaW5kZXggMDAwMDAwMC4u MGMzMDBlZAo+ID4gPiAtLS0gL2Rldi9udWxsCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZHAvZHBfYXV4LmgKPiA+IAo+ID4gL3NuaXAKPiA+IAo+ID4gSSBkaWRuJ3QgcmVhbGx5IHJl dmlldyB0aGUgZHBfYXV4LiogZmlsZXMgYXMtaXMuIFBsZWFzZSBjb252ZXJ0IHRvIHVzaW5nCj4g PiBkcm1fZHBfYXV4IGFuZCBJJ2xsIHRha2UgYW5vdGhlciBsb29rLgo+ID4gCj4gCj4gUGxlYXNl IGNvcnJlY3QgbWUgaWYgSSBhbSB3cm9uZy4gTG9va3MgbGlrZSB5b3UgYXJlIHN1Z2dlc3Rpbmcg dG8gdXNlIG1vc3QKPiBvZiB0aGUgZHJtX2RwX2F1eCBzdHJ1Y3QgdmFyaWFibGUKPiBpbnN0ZWFk IG9mIHdoYXQgd2UgaGF2ZSBkZWZpbmVkIGxvY2FsbHkuCj4gCgpDb3JyZWN0CgoKL3NuaXAKCgo+ ID4gPiArCXN0cnVjdCBkcF9jYXRhbG9nX2N0cmwgY3RybCA9IHsKPiA+ID4gKwkJLnN0YXRlX2N0 cmwgICAgID0gZHBfY2F0YWxvZ19jdHJsX3N0YXRlX2N0cmwsCj4gPiA+ICsJCS5jb25maWdfY3Ry bCAgICA9IGRwX2NhdGFsb2dfY3RybF9jb25maWdfY3RybCwKPiA+ID4gKwkJLmxhbmVfbWFwcGlu ZyAgID0gZHBfY2F0YWxvZ19jdHJsX2xhbmVfbWFwcGluZywKPiA+ID4gKwkJLm1haW5saW5rX2N0 cmwgID0gZHBfY2F0YWxvZ19jdHJsX21haW5saW5rX2N0cmwsCj4gPiA+ICsJCS5jb25maWdfbWlz YyAgICA9IGRwX2NhdGFsb2dfY3RybF9jb25maWdfbWlzYywKPiA+ID4gKwkJLmNvbmZpZ19tc2Eg ICAgID0gZHBfY2F0YWxvZ19jdHJsX2NvbmZpZ19tc2EsCj4gPiA+ICsJCS5zZXRfcGF0dGVybiAg ICA9IGRwX2NhdGFsb2dfY3RybF9zZXRfcGF0dGVybiwKPiA+ID4gKwkJLnJlc2V0ICAgICAgICAg ID0gZHBfY2F0YWxvZ19jdHJsX3Jlc2V0LAo+ID4gPiArCQkudXNiX3Jlc2V0ICAgICAgPSBkcF9j YXRhbG9nX2N0cmxfdXNiX3Jlc2V0LAo+ID4gPiArCQkubWFpbmxpbmtfcmVhZHkgPSBkcF9jYXRh bG9nX2N0cmxfbWFpbmxpbmtfcmVhZHksCj4gPiA+ICsJCS5lbmFibGVfaXJxICAgICA9IGRwX2Nh dGFsb2dfY3RybF9lbmFibGVfaXJxLAo+ID4gPiArCQkuaHBkX2NvbmZpZyAgICAgPSBkcF9jYXRh bG9nX2N0cmxfaHBkX2NvbmZpZywKPiA+ID4gKwkJLnBoeV9yZXNldCAgICAgID0gZHBfY2F0YWxv Z19jdHJsX3BoeV9yZXNldCwKPiA+ID4gKwkJLnBoeV9sYW5lX2NmZyAgID0gZHBfY2F0YWxvZ19j dHJsX3BoeV9sYW5lX2NmZywKPiA+ID4gKwkJLnVwZGF0ZV92eF9weCAgID0gZHBfY2F0YWxvZ19j dHJsX3VwZGF0ZV92eF9weCwKPiA+ID4gKwkJLmdldF9pbnRlcnJ1cHQgID0gZHBfY2F0YWxvZ19j dHJsX2dldF9pbnRlcnJ1cHQsCj4gPiA+ICsJCS51cGRhdGVfdHJhbnNmZXJfdW5pdCA9IGRwX2Nh dGFsb2dfY3RybF91cGRhdGVfdHJhbnNmZXJfdW5pdCwKPiA+ID4gKwkJLnNlbmRfcGh5X3BhdHRl cm4gICAgPSBkcF9jYXRhbG9nX2N0cmxfc2VuZF9waHlfcGF0dGVybiwKPiA+ID4gKwkJLnJlYWRf cGh5X3BhdHRlcm4gPSBkcF9jYXRhbG9nX2N0cmxfcmVhZF9waHlfcGF0dGVybiwKPiA+IAo+ID4g U28sIHdoYXQncyB0aGUgYmVuZWZpdCBvZiBhZGRpbmcgdGhlIGNhdGFsb2cgYWJzdHJhY3Rpb25z PyBEbyB5b3UgZXZlcgo+ID4gaGF2ZQo+ID4gbXVsdGlwbGUvYWx0ZXJuYXRlIGltcGxlbWVudGF0 aW9ucyBvZiBhIGNhdGFsb2c/IEl0IGRvZXNuJ3Qgc2VlbSBsaWtlCj4gPiBpdC4gWW91Cj4gPiBz aG91bGQganVzdCByZW1vdmUgYWxsIG9mIHRoZSBjYXRhbG9nIG92ZXJoZWFkIGFuZCBjYWxsIHRo ZSBmdW5jdGlvbnMKPiA+IGRpcmVjdGx5Lgo+IAo+IFdlIHVzZSBjYXRhbG9nIGFic3RyYWN0aW9u cyBmb3IgdHdvIGRpZmZlcmVudCByZWFzb25zOgo+IDEuIFRvIHN1cHBvcnQgbXVsdGlwbGUgaGFy ZHdhcmUgc2luY2UgdGhlc2UgaW1wbGVtZW50YXRpb25zIGFyZSBoYXJkd2FyZQo+IHNwZWNpZmlj Lgo+IDIuIFRvIHZpcnR1YWxpemUgRFAgaGFyZHdhcmUuCj4gCj4gT3VyIGludGVybmFsIGhhcmR3 YXJlIGFscmVhZHkgc3VwcG9ydHMgbXVsdGlwbGUgY2hpcHMuIFdlIHdhbnQgdG8ga2VlcCB0aGVz ZQo+IGFic3RyYWN0aW9ucyB0bwo+IG1ha2UgdGhlIGNvZGUgY29uc2lzdGVudCBiZXR3ZWVuIHVw c3RyZWFtIGFuZCBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbi4KPiAKCkknbSBub3Qgc3VyZSBob3cg dGhpcyBkaWZmZXJzIGZyb20gaGF2aW5nIGEgY29tbW9uIGhlYWRlci9mdW5jdGlvbiBkZWNsYXJh dGlvbnMKYW5kIG11bHRpcGxlIGRlZmluaXRpb25zIGluIGEgLmMgZ2F0ZWQgYnkgQ09ORklHXyo/ IElkZWFsbHkgZXZlbiB0aGlzIHdvdWxkbid0IGJlCm5lY2Vzc2FyeSBzaW5jZSBodyBjaGFuZ2Vz IGFyZSBlaXRoZXIgaW5jcmVtZW50YWwgYW5kIGNhbiBiZSBkb25lIG1vcmUgcHJlY2lzZWx5CnRo YW4gd2hvbGVzYWxlIGNoYW5naW5nIHRoZSBpbXBsZW1lbnRhdGlvbi4KCklmIHlvdSB3YW50IHRv IHZpcnR1YWxpemUsIHlvdSBjYW4gZG8gdGhlIENPTkZJR18qIHRoaW5nLiBIb3dldmVyIHNpbmNl IHRoYXQncwpub3QgZ29pbmcgdXBzdHJlYW0sIHlvdSBjYW4gY2FycnkgdGhlIEtjb25maWcvTWFr ZWZpbGUgY2hhbmdlIGluIHlvdXIKZG93bnN0cmVhbS4KCkFsbCBvZiB0aGVzZSBhYnN0cmFjdGlv bnMgYWRkIHRob3VzYW5kcyBvZiBsaW5lcyBvZiBjb2RlLCBleHRyYSBmaWxlcywgYW5kIG11bHRp cGxlCmxldmVscyBvZiBpbmRpcmVjdGlvbi4gSU1PLCBJIGRvbid0IHRoaW5rIHRoZSBiZW5lZml0 cyBvdXR3ZWlnaCB0aGUgY29zdHMuCgovc25pcAoKPiA+ID4gK3N0YXRpYyB2b2lkIGRwX2N0cmxf Y2FsY190dV9wYXJhbWV0ZXJzKHN0cnVjdCBkcF9jdHJsX3ByaXZhdGUgKmN0cmwsCj4gPiA+ICsJ CQkJICAgICAgIHN0cnVjdCBkcF92Y190dV9tYXBwaW5nX3RhYmxlICp0dV90YWJsZSkKPiA+ID4g K3sKPiA+ID4gKwl1MzIgbXVsdGlwbGllciA9IDEwMDAwMDA7Cj4gPiA+ICsJdTY0IHBjbGssIGxj bGs7Cj4gPiA+ICsJdTggYnBwLCBsbl9jbnQ7Cj4gPiA+ICsJaW50IHJ1bl9pZHggPSAwOwo+ID4g PiArCXUzMiBsd2lkdGgsIGhfYmxhbms7Cj4gPiA+ICsJdTMyIGZpZm9fZW1wdHkgPSAwOwo+ID4g PiArCXUzMiByYXRpb19zY2FsZSA9IDEwMDE7Cj4gPiA+ICsJdTY0IHRlbXAsIHJhdGlvLCBvcmln aW5hbF9yYXRpbzsKPiA+ID4gKwl1NjQgdGVtcDIsIHJlbWluZGVyOwo+ID4gPiArCXU2NCB0ZW1w MywgdGVtcDQsIHJlc3VsdCA9IDA7Cj4gPiA+ICsKPiA+ID4gKwl1NjQgZXJyID0gbXVsdGlwbGll cjsKPiA+ID4gKwl1NjQgbl9lcnIgPSAwLCBuX25fZXJyID0gMDsKPiA+ID4gKwlib29sIG5fZXJy X25lZywgbm5fZXJyX25lZzsKPiA+ID4gKwl1OCBoYmxhbmtfbWFyZ2luID0gMTY7Cj4gPiA+ICsK PiA+ID4gKwl1OCB0dV9zaXplLCB0dV9zaXplX2Rlc2lyZWQgPSAwLCB0dV9zaXplX21pbnVzMTsK PiA+ID4gKwlpbnQgdmFsaWRfYm91bmRhcnlfbGluazsKPiA+ID4gKwl1NjQgcmVzdWx0aW5nX3Zh bGlkOwo+ID4gPiArCXU2NCB0b3RhbF92YWxpZDsKPiA+ID4gKwl1NjQgZWZmZWN0aXZlX3ZhbGlk Owo+ID4gPiArCXU2NCBlZmZlY3RpdmVfdmFsaWRfcmVjb3JkZWQ7Cj4gPiA+ICsJaW50IG5fdHVz Owo+ID4gPiArCWludCBuX3R1c19wZXJfbGFuZTsKPiA+ID4gKwlpbnQgcGFpcmVkX3R1czsKPiA+ ID4gKwlpbnQgcmVtYWluZGVyX3R1czsKPiA+ID4gKwlpbnQgcmVtYWluZGVyX3R1c191cHBlciwg cmVtYWluZGVyX3R1c19sb3dlcjsKPiA+ID4gKwlpbnQgZXh0cmFfYnl0ZXM7Cj4gPiA+ICsJaW50 IGZpbGxlcl9zaXplOwo+ID4gPiArCWludCBkZWxheV9zdGFydF9saW5rOwo+ID4gPiArCWludCBi b3VuZGFyeV9tb2RlcmF0aW9uX2VuID0gMDsKPiA+ID4gKwlpbnQgdXBwZXJfYmRyeV9jbnQgPSAw Owo+ID4gPiArCWludCBsb3dlcl9iZHJ5X2NudCA9IDA7Cj4gPiA+ICsJaW50IGlfdXBwZXJfYmRy eV9jbnQgPSAwOwo+ID4gPiArCWludCBpX2xvd2VyX2JkcnlfY250ID0gMDsKPiA+ID4gKwlpbnQg dmFsaWRfbG93ZXJfYm91bmRhcnlfbGluayA9IDA7Cj4gPiA+ICsJaW50IGV2ZW5fZGlzdHJpYnV0 aW9uX2JmID0gMDsKPiA+ID4gKwlpbnQgZXZlbl9kaXN0cmlidXRpb25fbGVnYWN5ID0gMDsKPiA+ ID4gKwlpbnQgZXZlbl9kaXN0cmlidXRpb24gPSAwOwo+ID4gPiArCWludCBtaW5faGJsYW5rID0g MDsKPiA+ID4gKwlpbnQgZXh0cmFfcGNsa19jeWNsZXM7Cj4gPiA+ICsJdTggZXh0cmFfcGNsa19j eWNsZV9kZWxheSA9IDQ7Cj4gPiA+ICsJaW50IGV4dHJhX3BjbGtfY3ljbGVzX2luX2xpbmtfY2xr Owo+ID4gPiArCXU2NCByYXRpb19ieV90dTsKPiA+ID4gKwl1NjQgYXZlcmFnZV92YWxpZDI7Cj4g PiA+ICsJdTY0IGV4dHJhX2J1ZmZlcl9tYXJnaW47Cj4gPiA+ICsJaW50IG5ld192YWxpZF9ib3Vu ZGFyeV9saW5rOwo+ID4gPiArCj4gPiA+ICsJdTY0IHJlc3VsdGluZ192YWxpZF90bXA7Cj4gPiA+ ICsJdTY0IHJhdGlvX2J5X3R1X3RtcDsKPiA+ID4gKwlpbnQgbl90dXNfdG1wOwo+ID4gPiArCWlu dCBleHRyYV9wY2xrX2N5Y2xlc190bXA7Cj4gPiA+ICsJaW50IGV4dHJhX3BjbGtfY3ljbGVzX2lu X2xjbGtfdG1wOwo+ID4gPiArCWludCBleHRyYV9yZXFfYnl0ZXNfbmV3X3RtcDsKPiA+ID4gKwlp bnQgZmlsbGVyX3NpemVfdG1wOwo+ID4gPiArCWludCBsb3dlcl9maWxsZXJfc2l6ZV90bXA7Cj4g PiA+ICsJaW50IGRlbGF5X3N0YXJ0X2xpbmtfdG1wOwo+ID4gPiArCWludCBtaW5faGJsYW5rX3Rt cCA9IDA7Cj4gPiA+ICsJYm9vbCBleHRyYV9yZXFfYnl0ZXNfaXNfbmVnID0gZmFsc2U7Cj4gPiA+ ICsJc3RydWN0IGRwX3BhbmVsX2luZm8gKnBpbmZvID0gJmN0cmwtPnBhbmVsLT5waW5mbzsKPiA+ ID4gKwo+ID4gPiArCXU4IGRwX2JydXRlX2ZvcmNlID0gMTsKPiA+ID4gKwl1NjQgYnJ1dGVfZm9y Y2VfdGhyZXNob2xkID0gMTA7Cj4gPiA+ICsJdTY0IGRpZmZfYWJzOwo+ID4gCj4gPiAKPiA+IDc2 IHN0YWNrIHZhcnMgYW5kIH40NTAgbGluZXMgbXVzdCBiZSBhIG5ldyByZWNvcmQgc29tZXdoZXJl IDopCj4gPiAKPiA+IEknbSBnb2luZyB0byBza2lwIHJldmlld2luZyB0aGlzIGZ1bmN0aW9uIGFu ZCBsZXQgeW91Cj4gPiBzcGxpdC9zaW1wbGlmeS9yZWR1Y2UgaXQuCj4gPiBQbGVhc2UganVzdCBt YWtlIGl0IG1vcmUgcmVhZGFibGUgKGNvbW1lbnRzLCBkb2NzLCBoZWxwZXIgZnVuY3Rpb25zLAo+ ID4gZXRjKS4KPiAKPiBZZXMsIHdpbGwgdHJ5IHRvIHNwbGl0IHRoaXMgZnVuY3Rpb24gYXMgbW9k dWxhciBhcyBwb3NzaWJsZS4KPiBKRllJLCB0aGlzIGZ1bmN0aW9uIGlzIElQL2hhcmR3YXJlIHNw ZWNpZmljIGltcGxlbWVudGF0aW9uLiBJdCBtaWdodCBub3QgYmUKPiBwb3NzaWJsZQo+IHRvIHBy b3ZpZGUgbG90IG9mIGNvbW1lbnRzIHRvIG1ha2UgaXMgdW5kZXJzdGFuZGFibGUuCgoKT2ssIHBs ZWFzZSBkbyB3aGF0IHlvdSBjYW4gdG8gc2ltcGxpZnkvc3BsaXQgYW5kIGFkZCBhIGNvbW1lbnQg dGhhdCB0aGlzIGlzCm1hZ2ljIGZyb20gdGhlIEhXIHRlYW0uCgoKL3NuaXAKCj4gPiA+ICtpbnQg bXNtX2RwX21vZGVzZXRfaW5pdChzdHJ1Y3QgbXNtX2RwICpkcF9kaXNwbGF5LCBzdHJ1Y3QKPiA+ ID4gZHJtX2RldmljZSAqZGV2LAo+ID4gPiArCQkJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy KQo+ID4gCj4gPiBXaGVyZSBpcyB0aGlzIGNhbGxlZD8KPiAKPiBUaGlzIGlzIGNhbGxlZCBmcm9t IGRwdV9rbXMuYy4gVGhlIGNoYW5nZXMgZnJvbSBEUFUgd2lsbCBiZSBkZXBlbmRlbnQgb24KPiB0 aGVzZSBjaGFuZ2VzLgo+IAoKSG1tLCBpcyB0aGF0IGNvZGUgbWlzc2luZz8gSSBkb24ndCBzZWUg dGhpcyBmdW5jdGlvbiBiZWluZyBjYWxsZWQgYW55d2hlcmUgaW4KdGhpcyBwYXRjaC4KCgovc25p cAoKPiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyBkcF9icmlkZ2Vf b3BzID0gewo+ID4gPiArCS5tb2RlX2ZpeHVwICAgPSBkcF9icmlkZ2VfbW9kZV9maXh1cCwKPiA+ ID4gKwkucHJlX2VuYWJsZSAgID0gZHBfYnJpZGdlX3ByZV9lbmFibGUsCj4gPiA+ICsJLmVuYWJs ZSAgICAgICA9IGRwX2JyaWRnZV9lbmFibGUsCj4gPiA+ICsJLmRpc2FibGUgICAgICA9IGRwX2Jy aWRnZV9kaXNhYmxlLAo+ID4gPiArCS5wb3N0X2Rpc2FibGUgPSBkcF9icmlkZ2VfcG9zdF9kaXNh YmxlLAo+ID4gPiArCS5tb2RlX3NldCAgICAgPSBkcF9icmlkZ2VfbW9kZV9zZXQsCj4gPiA+ICt9 Owo+ID4gCj4gPiBJJ20gbm90IGNvbnZpbmNlZCB5b3UgbmVlZCBhbnkgb2YgdGhpcy4gVGhlIG9u bHkgYWR2YW50YWdlIGEgYnJpZGdlIGdldHMKPiA+IHlvdSBpcwo+ID4gdG8gYmUgaW52b2x2ZWQg aW4gbW9kZXNldC4gSG93ZXZlciB0aGUgb25seSB0aGluZyB5b3UgZG8gaW4gbW9kZXNldCBpcwo+ ID4gc2F2ZSB0aGUKPiA+IG1vZGUgKHdoaWNoIGlzIG9ubHkgdXNlZCBpbiBlbmFibGUpLiBTbyB3 aHkgbm90IGp1c3QgdXNlIHRoZSBtb2RlIGZyb20KPiA+IHRoZQo+ID4gY3J0YydzIHN0YXRlIHdo ZW4gZW5jb2Rlci0+ZW5hYmxlIGlzIGNhbGxlZD8KPiA+IAo+ID4gVGhhdCBhbGxvd3MgeW91IHRv IGRlbGV0ZSBhbGwgb2YgdGhlIGJyaWRnZSBzdHVmZiBoZXJlLgo+ID4gCj4gV2lsbCBrZWVwIGVu YWJsZSwgZGlzYWJsZSBhbmQgbW9kZV9zZXQgZnVuYyBvcHMgYW5kIHJlbW92ZSB0aGUgcmVtYWlu aW5nCj4gb3BzLgo+IFBsZWFzZSBsZXQgbWUga25vdyBpZiB5b3Ugc3RpbGwgaGF2ZSBjb25jZXJu cyB3aXRoIHRoZXNlIGZ1bmMgb3BzLgo+IAoKV2h5IG5vdCByZW1vdmUgYWxsIG9mIGl0IGFuZCBj YWxsIHRoaXMgY29kZSBmcm9tIHRoZSBlbmNvZGVyJ3MgZW5hYmxlIGZ1bmN0aW9uPwpZb3Ugc2hv dWxkbid0IG5lZWQgYSBicmlkZ2UgYXQgYWxsLgoKCi9zbmlwCgo+ID4gPiArc3RhdGljIGludCBk cF9wYXJzZXJfaW5pdF9jbGtfZGF0YShzdHJ1Y3QgZHBfcGFyc2VyICpwYXJzZXIpCj4gPiA+ICt7 Cj4gPiA+ICsJaW50IG51bV9jbGsgPSAwLCBpID0gMCwgcmMgPSAwOwo+ID4gPiArCWludCBjb3Jl X2Nsa19jb3VudCA9IDAsIGN0cmxfY2xrX2NvdW50ID0gMDsKPiA+ID4gKwljb25zdCBjaGFyICpj b3JlX2NsayA9ICJjb3JlIjsKPiA+ID4gKwljb25zdCBjaGFyICpjdHJsX2NsayA9ICJjdHJsIjsK PiA+ID4gKwljb25zdCBjaGFyICpjbGtfbmFtZTsKPiA+ID4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYg PSAmcGFyc2VyLT5wZGV2LT5kZXY7Cj4gPiA+ICsJc3RydWN0IGRzc19tb2R1bGVfcG93ZXIgKmNv cmVfcG93ZXIgPSAmcGFyc2VyLT5tcFtEUF9DT1JFX1BNXTsKPiA+ID4gKwlzdHJ1Y3QgZHNzX21v ZHVsZV9wb3dlciAqY3RybF9wb3dlciA9ICZwYXJzZXItPm1wW0RQX0NUUkxfUE1dOwo+ID4gPiAr Cj4gPiA+ICsJbnVtX2NsayA9IG9mX3Byb3BlcnR5X2NvdW50X3N0cmluZ3MoZGV2LT5vZl9ub2Rl LCAiY2xvY2stbmFtZXMiKTsKPiA+ID4gKwlpZiAobnVtX2NsayA8PSAwKSB7Cj4gPiA+ICsJCXBy X2Vycigibm8gY2xvY2tzIGFyZSBkZWZpbmVkXG4iKTsKPiA+ID4gKwkJcmMgPSAtRUlOVkFMOwo+ ID4gPiArCQlnb3RvIGV4aXQ7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJZm9yIChpID0gMDsg aSA8IG51bV9jbGs7IGkrKykgewo+ID4gPiArCQlvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZ19pbmRl eChkZXYtPm9mX25vZGUsCj4gPiA+ICsJCQkJImNsb2NrLW5hbWVzIiwgaSwgJmNsa19uYW1lKTsK PiA+IAo+ID4gQ2hlY2sgcmV0dXJuIHZhbHVlCj4gPiAKPiA+ID4gKwo+ID4gPiArCQlpZiAoZHBf cGFyc2VyX2NoZWNrX3ByZWZpeChjb3JlX2NsaywgY2xrX25hbWUpKQo+ID4gPiArCQkJY29yZV9j bGtfY291bnQrKzsKPiA+ID4gKwo+ID4gPiArCQlpZiAoZHBfcGFyc2VyX2NoZWNrX3ByZWZpeChj dHJsX2NsaywgY2xrX25hbWUpKQo+ID4gPiArCQkJY3RybF9jbGtfY291bnQrKzsKPiA+IAo+ID4g SnVzdCB1c2UgImNvcmUiLyJjdHJsIiBkaXJlY3RseSBoZXJlLgo+ID4gCj4gPiBIYXZlIHlvdSBj b25zaWRlcmVkIGp1c3QgaGF2aW5nIDIgY2xvY2sgbGlzdHM/IFRoYXQgd291bGQgYXZvaWQgaGF2 aW5nCj4gPiB0byBkbwo+ID4gdGhpcy4KPiBJIGFtIG5vdCBjbGVhciBvbiB3aGF0IHlvdSBhcmUg c3VnZ2VzdGluZz8gV2UgY3VycmVudGx5IGhhdmUgdHdvIGNsb2NrLWxpc3RzCj4gKGNvcmUgJiBj dHJsKS4KPiAKPiAKCkkgbWVhbnQgaW4gdGhlIGR0IGJpbmRpbmdzLiBJbnN0ZWFkIG9mIG9uZSBj bG9ja3MgbGlzdCwgY291bGQgeW91IHNwbGl0IGludG8KY29yZSBhbmQgY3RybD8gVGhhdCB3YXkg eW91IHdvdWxkbid0IGhhdmUgdG8gcGFyc2UgYmFzZWQgb24gbmFtZS4KCi9zbmlwCgo+ID4gCj4g PiAtLS0tIFNUQVJUIGhtbW1tCj4gSSBkaWRuJ3QgdW5kZXJzdGFuZCwgY2FuIHlvdSBwbGVhc2Ug cHJvdmlkZSBtb3JlIGRldGFpbHMgcmVnYXJkaW5nICJTVEFSVCIKPiBhbmQgIkVORCIuCj4gPiAK PiA+ID4gKwlzdHJ1Y3QgZHNzX21vZHVsZV9wb3dlciAqY29yZV9wb3dlciA9ICZwYXJzZXItPm1w W0RQX0NPUkVfUE1dOwo+ID4gPiArCXN0cnVjdCBkc3NfbW9kdWxlX3Bvd2VyICpjdHJsX3Bvd2Vy ID0gJnBhcnNlci0+bXBbRFBfQ1RSTF9QTV07Cj4gPiA+ICsKPiA+ID4gKwljb3JlX3Bvd2VyID0g JnBhcnNlci0+bXBbRFBfQ09SRV9QTV07Cj4gPiA+ICsJY3RybF9wb3dlciA9ICZwYXJzZXItPm1w W0RQX0NUUkxfUE1dOwo+ID4gCj4gPiAtLS0tIEVORCBobW1tbQo+ID4gCgpZb3UgYXNzaWduIGNv cmVfcG93ZXIgYW5kIGN0cmxfcG93ZXIgaW4gdGhlIGRlY2xhcmF0aW9uIGFuZCB0aGVuIGltbWVk aWF0ZWx5CmFzc2lnbiB0aGUgdmFsdWUgYWdhaW4uCgovc25pcAoKLS0gClNlYW4gUGF1bCwgU29m dHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRy ZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=