From mboxrd@z Thu Jan 1 00:00:00 1970 From: spanda-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Subject: Re: [PATCH v8 1/4] drm/bridge: add support for sn65dsi86 bridge driver Date: Wed, 13 Jun 2018 16:35:23 +0530 Message-ID: <4df59db2fc9e65285926dc0f84220639@codeaurora.org> References: <1528177218-1051-1-git-send-email-spanda@codeaurora.org> <1528177218-1051-3-git-send-email-spanda@codeaurora.org> <20180605225950.GC3373@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180605225950.GC3373@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, nganji-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, chandanu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org List-Id: devicetree@vger.kernel.org T24gMjAxOC0wNi0wNiAwNDoyOSwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFR1ZSwgSnVuIDA1LCAy MDE4IGF0IDExOjEwOjE1QU0gKzA1MzAsIFNhbmRlZXAgUGFuZGEgd3JvdGU6Cj4+IEFkZCBzdXBw b3J0IGZvciBUSSdzIHNuNjVkc2k4NiBkc2kyZWRwIGJyaWRnZSBjaGlwLgo+PiBUaGUgY2hpcCBj b252ZXJ0cyBEU0kgdHJhbnNtaXR0ZWQgc2lnbmFsIHRvIGVEUCBzaWduYWwsCj4+IHdoaWNoIGlz IGZlZCB0byB0aGUgY29ubmVjdGVkIGVEUCBwYW5lbC4KPj4gCj4+IFRoaXMgY2hpcCBjYW4gYmUg Y29udHJvbGxlZCB2aWEgZWl0aGVyIGkyYyBpbnRlcmZhY2Ugb3IKPj4gZHNpIGludGVyZmFjZS4g Q3VycmVudGx5IGluIGRyaXZlciBhbGwgdGhlIGNvbnRyb2wgcmVnaXN0ZXJzCj4+IGFyZSBiZWlu ZyBhY2Nlc3NlZCB0aHJvdWdoIGkyYyBpbnRlcmZhY2Ugb25seS4KPj4gQWxzbyBhcyBvZiBub3cg SFBEIHN1cHBvcnQgaGFzIG5vdCBiZWVuIGFkZGVkIHRvIGJyaWRnZQo+PiBjaGlwIGRyaXZlci4K Pj4gCj4+IENoYW5nZXMgaW4gdjE6Cj4+ICAtIFNwbGl0IHRoZSBkdC1iaW5kaW5ncyBhbmQgdGhl IGRyaXZlciBzdXBwb3J0IGludG8gc2VwYXJhdGUgcGF0Y2hlcwo+PiAgICAoQW5kcnplaiBIYWpk YSkuCj4+ICAtIFVzZSBvZiBncGlvZCBBUElzIHRvIHBhcnNlIGFuZCBjb25maWd1cmUgZ3Bpb3Mg aW5zdGVhZCBvZiBvYnNvbGV0ZSAKPj4gb25lcwo+PiAgICAoQW5kcnplaiBIYWpkYSkuCj4+ICAt IFVzZSBtYWNyb3MgdG8gZGVmaW5lIHRoZSByZWdpc3RlciBvZmZzZXRzIChBbmRyemVqIEhhamRh KS4KPj4gCj4+IENoYW5nZXMgaW4gdjI6Cj4+ICAtIFNlcGFyYXRlIG91dCBlZHAgcGFuZWwgc3Bl Y2lmaWMgSFcgcmVzb3VyY2UgaGFuZGxpbmcgZnJvbSBicmlkZ2UKPj4gICAgZHJpdmVyIGFuZCBj cmVhdGUgYSBzZXBhcmF0ZSBlZHAgcGFuZWwgZHJpdmVycyB0byBoYW5kbGUgcGFuZWwKPj4gICAg c3BlY2lmaWMgbW9kZSBpbmZvcm1hdGlvbiBhbmQgSFcgcmVzb3VyY2VzIChTZWFuIFBhdWwpLgo+ PiAgLSBSZXBsYWNlIHByXyogQVBJcyB0byBEUk1fKiBBUElzIHRvIGxvZyBlcnJvciBvciBkZWJ1 ZyBpbmZvcm1hdGlvbgo+PiAgICAoU2VhbiBQYXVsKS4KPj4gIC0gUmVtb3ZlIHNvbWUgb2YgdGhl IHVubmVjZXNzYXJ5IHN0cnVjdHVyZS92YXJpYWJsZSBmcm9tIGRyaXZlciAoU2Vhbgo+PiAgICBQ YXVsKS4KPj4gIC0gUmVuYW1lIHRoZSBmdW5jdGlvbiBhbmQgc3RydWN0dXJlIHByZWZpeCAic242 NWRzaTg2IiB0byAKPj4gInRpX3NuX2JyaWRnZSIKPj4gICAgKFNlYW4gUGF1bCAvIFJvYiBIZXJy aW5nKS4KPj4gIC0gUmVtb3ZlIG1vc3Qgb2YgdGhlIGhhcmQtY29kaW5nIGFuZCBtb2RpZmllZCB0 aGUgYnJpZGdlIGluaXQgCj4+IHNlcXVlbmNlCj4+ICAgIGJhc2VkIG9uIGN1cnJlbnQgbW9kZSAo U2VhbiBQYXVsKS4KPj4gIC0gUmVtb3ZlIHRoZSBleGlzdGluZyBmdW5jdGlvbiB0byByZXRyaWV2 ZSB0aGUgRURJRCBkYXRhIGFuZAo+PiAgICBpbXBsZW1lbnRlZCB0aGlzIGFzIGFuIGkyY19hZGFw dGVyIGFuZCB1c2UgZHJtX2dldF9lZGlkKCkgKFNlYW4gCj4+IFBhdWwpLgo+PiAgLSBSZW1vdmUg dGhlIGR1bW15IGlycSBoYW5kbGVyIGltcGxlbWVudGF0aW9uLCB3aWxsIGFkZCBiYWNrIHRoZQo+ PiAgICBwcm9wZXIgaXJxIGhhbmRsaW5nIGxhdGVyIChTZWFuIFBhdWwpLgo+PiAgLSBDYXB0dXJl IHRoZSByZXF1aXJlZCBlbmFibGUgZ3Bpb3MgaW4gYSBzaW5nbGUgYXJyYXkgYmFzZWQgb24gZHQg Cj4+IGVudHJ5Cj4+ICAgIGluc3RlYWQgb2YgaGF2aW5nIGluZGl2aWR1YWwgZGVzY3JpcHRvciBm b3IgZWFjaCBncGlvIChTZWFuIFBhdWwpLgo+PiAKPj4gQ2hhbmdlcyBpbiB2MzoKPj4gIC0gUmVt b3ZlIHVzYWdlIG9mIGlycV9ncGlvIGFuZCByZXBsYWNlIGl0IGFzICJpbnRlcnJ1cHRzIiBwcm9w ZXJ0eSAKPj4gKFJvYgo+PiAgICBIZXJyaW5nKS4KPj4gIC0gUmVtb3ZlIHRoZSB1bm5lY2Vzc2Fy eSBoZWFkZXIgZmlsZSBpbmNsdXNpb25zIChTZWFuIFBhdWwpLgo+PiAgLSBSZWFycmFuZ2UgdGhl IGhlYWRlciBmaWxlcyBpbiBhbHBoYWJldGljYWwgb3JkZXIgKFNlYW4gUGF1bCkuCj4+ICAtIFVz ZSByZWdtYXAgaW50ZXJmYWNlIHRvIHBlcmZvcm0gaTJjIHRyYW5zYWN0aW9ucy4KPj4gIC0gVXBk YXRlIENvcHlyaWdodC9MaWNlbnNlIGZpZWxkIGFuZCBhZGRyZXNzIG90aGVyIHJldmlldyBjb21t ZW50cwo+PiAgICAoSm9yZGFuIENyb3VzZSkuCj4+IAo+PiBDaGFuZ2VzIGluIHY0Ogo+PiAgLSBV cGRhdGUgTGljZW5zZS9Db3B5cmlnaHQgKFNlYW4gUGF1bCkuCj4+ICAtIEFkZCBLY29uZmlnIGFu ZCBNYWtlZmlsZSBjaGFuZ2VzIChTZWFuIFBhdWwpLgo+PiAgLSBEcm9wIGkyYyBncGlvIGhhbmRs aW5nIGZyb20gdGhpcyBicmlkZ2UgZHJpdmVyLCBzaW5jZSBpMmMgc2RhL3NjbCAKPj4gZ3Bpb3MK Pj4gICAgd2lsbCBiZSBoYW5kbGVkIGJ5IGkyYyBtYXN0ZXIuCj4+ICAtIFVwZGF0ZSByZXF1aXJl ZCBzdXBwbGllcyBuYW1lcy4KPj4gIC0gUmVtb3ZlIHVubmVjZXNzYXJ5IGdvdG8gc3RhdGVtZW50 cyAoU2VhbiBQYXVsKS4KPj4gIC0gQWRkIG11dGV4IGxvY2sgdG8gcG93ZXJfY3RybCBBUEkgdG8g YXZvaWQgcmFjZSBjb25kaXRpb25zIChTZWFuCj4+ICAgIFBhdWwpLgo+PiAgLSBBZGQgc3VwcG9y dCB0byBwYXJzZSByZWZlcmVuY2UgY2xrIGZyZXF1ZW5jeSBmcm9tIGR0KG9wdGlvbmFsKS4KPj4g IC0gVXBkYXRlIHRoZSBicmlkZ2UgY2hpcCBlbmFibGUvZGlzYWJsZSBzZXF1ZW5jZS4KPj4gCj4+ IENoYW5nZXMgaW4gdjU6Cj4+ICAtIEZpeGVkIEtidWlsZCB0ZXN0IHNlcnZpY2UgcmVwb3J0ZWQg d2FybmluZ3MuCj4+IAo+PiBDaGFuZ2VzIGluIHY2Ogo+PiAgLSBVc2UgUE0gcnVudGltZSBiYXNl ZCByZWYtY291bnRpbmcgaW5zdGVhZCBvZiBsb2NhbCByZWZfY291bnQgCj4+IG1lY2hhbmlzbQo+ PiAgICAoU3RlcGhlbiBCb3lkKS4KPj4gIC0gQ2xlYW4gdXAgc29tZSBkZWJ1ZyBsb2dzIGFuZCBp bmRlbnRhdGlvbnMgKFNlYW4gUGF1bCkuCj4+ICAtIFNpbXBsaWZ5IGRwIHJhdGUgY2FsY3VsYXRp b24gKFNlYW4gUGF1bCkuCj4+ICAtIEFkZCBzdXBwb3J0IHRvIGNvbmZpZ3VyZSByZWZjbGsgYmFz ZWQgb24gaW5wdXQgUkVGQ0xLIHBpbiBvciBEQUNQL04KPj4gICAgcGluIChTdGVwaGVuIEJveWQp Lgo+PiAKPj4gQ2hhbmdlcyBpbiB2NzoKPj4gIC0gVXNlIHN0YXRpYyBzdXBwbHkgZW50cmllcyBp bnN0ZWFkIG9mIGR5bmFtaWMgYWxsb2NhdGlvbiAoQW5kcnplago+PiAgICBIYWpkYSkuCj4+ICAt IERlZmVyIGJyaWRnZSBkcml2ZXIgcHJvYmUgaWYgcGFuZWwgaXMgbm90IHByb2JlZCAoQW5kcnpl aiBIYWpkYSkuCj4+ICAtIFVwZGF0ZSBvZl9ncmFwaCBBUElzIGZvciBjb3JyZWN0IG5vZGUgcmVm ZXJlbmNlIG1hbmFnZW1lbnQuIAo+PiAoQW5kcnplago+PiAgICBIYWpkYSkuCj4+ICAtIFJlbW92 ZSBsb2NhbCBkaXNwbGF5X21vZGUgb2JqZWN0IChBbmRyemVqIEhhamRhKS4KPj4gIC0gUmVtb3Zl IHZlcnNpb24gaWQgY2hlY2sgZnVuY3Rpb24gZnJvbSBkcml2ZXIuCj4+IAo+PiBDaGFuZ2VzIGlu IHY4Ogo+PiAgLSBNb3ZlIGRzaSByZWdpc3Rlci9hdHRhY2ggZnVuY3Rpb24gdG8gYnJpZGdlIGRy aXZlciBwcm9iZSAoQW5kcnplago+PiAgICBIYWpkYSkuCj4+ICAtIEludHJvZHVjZSBhIG5ldyBo ZWxwZXIgZnVuY3Rpb24gdG8gd3JpdGUgMTZiaXQgd29yZHMgaW50byAKPj4gY29uc2VjdXRpdmUK Pj4gICAgcmVnaXN0ZXJzIChBbmRyemVqIEhhamRhKS4KPj4gIC0gUmVtb3ZlIHVubmVjZXNzYXJ5 IG1hY3JvcyAoQW5kcnplaiBIYWpkYSkuCj4+IAo+PiBTaWduZWQtb2ZmLWJ5OiBTYW5kZWVwIFBh bmRhIDxzcGFuZGFAY29kZWF1cm9yYS5vcmc+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9LY29uZmlnICAgICAgICB8ICAgOSArCj4+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01h a2VmaWxlICAgICAgIHwgICAxICsKPj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktc242NWRz aTg2LmMgfCA2NjYgCj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gIDMg ZmlsZXMgY2hhbmdlZCwgNjc2IGluc2VydGlvbnMoKykKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXNuNjVkc2k4Ni5jCj4+IAo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvS2NvbmZpZwo+PiBpbmRleCAzYjk5ZDVhLi44MTUzMTUwIDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL0tjb25maWcKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9LY29uZmlnCj4+IEBAIC0xMDgsNiArMTA4LDE1IEBAIGNvbmZpZyBEUk1fVElfVEZQNDEwCj4+ ICAJLS0taGVscC0tLQo+PiAgCSAgVGV4YXMgSW5zdHJ1bWVudHMgVEZQNDEwIERWSS9IRE1JIFRy YW5zbWl0dGVyIGRyaXZlcgo+PiAKPj4gK2NvbmZpZyBEUk1fVElfU042NURTSTg2Cj4+ICsJdHJp c3RhdGUgIlRJIFNONjVEU0k4NiBEU0kgdG8gZURQIGJyaWRnZSIKPj4gKwlkZXBlbmRzIG9uIE9G Cj4+ICsJc2VsZWN0IERSTV9LTVNfSEVMUEVSCj4+ICsJc2VsZWN0IFJFR01BUF9JMkMKPj4gKwlz ZWxlY3QgRFJNX1BBTkVMCj4+ICsJLS0taGVscC0tLQo+PiArCSAgVGV4YXMgSW5zdHJ1bWVudHMg U042NURTSTg2IERTSSB0byBlRFAgQnJpZGdlIGRyaXZlcgo+PiArCj4+ICBzb3VyY2UgImRyaXZl cnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvS2NvbmZpZyIKPj4gCj4+ICBzb3VyY2UgImRyaXZl cnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9LY29uZmlnIgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZSAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01h a2VmaWxlCj4+IGluZGV4IDM3M2ViMjguLjM3MTFiZTggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9N YWtlZmlsZQo+PiBAQCAtMTIsNCArMTIsNSBAQCBvYmotJChDT05GSUdfRFJNX1RPU0hJQkFfVEMz NTg3NjcpICs9IHRjMzU4NzY3Lm8KPj4gIG9iai0kKENPTkZJR19EUk1fQU5BTE9HSVhfRFApICs9 IGFuYWxvZ2l4Lwo+PiAgb2JqLSQoQ09ORklHX0RSTV9JMkNfQURWNzUxMSkgKz0gYWR2NzUxMS8K Pj4gIG9iai0kKENPTkZJR19EUk1fVElfVEZQNDEwKSArPSB0aS10ZnA0MTAubwo+PiArb2JqLSQo Q09ORklHX0RSTV9USV9TTjY1RFNJODYpICs9IHRpLXNuNjVkc2k4Ni5vCj4gCj4gU042NURTSTg2 IHNob3VsZCBiZSBpbiBmcm9udCBvZiBURlA0MTAgaGVyZSBhbmQgYWJvdmUuCj4gCgpPay4KCj4+ ICBvYmoteSArPSBzeW5vcHN5cy8KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvdGktc242NWRzaTg2LmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS1zbjY1ZHNp ODYuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi5hZGQ2ZTBmCj4+ IC0tLSAvZGV2L251bGwKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS1zbjY1ZHNp ODYuYwo+IAo+IC9zbmlwCj4gCj4+ICsKPj4gKyNkZWZpbmUgUkVGQ0xLX0xVVF9TSVpFCTUKPj4g Kwo+PiArLyogY2xrIGZyZXF1ZW5jaWVzIHN1cHBvcnRlZCBieSBicmlkZ2UgaW4gSHogaW4gY2Fz ZSBkZXJpdmVkIGZyb20gCj4+IFJFRkNMSyBwaW4gKi8KPj4gK3N0YXRpYyBjb25zdCB1MzIgdGlf c25fYnJpZGdlX3JlZmNsa19sdXRbXSA9IHsKPj4gKwkxMjAwMDAwMCwKPj4gKwkxOTIwMDAwMCwK Pj4gKwkyNjAwMDAwMCwKPj4gKwkyNzAwMDAwMCwKPj4gKwkzODQwMDAwMCwKPj4gK307Cj4+ICsK Pj4gKy8qIGNsayBmcmVxdWVuY2llcyBzdXBwb3J0ZWQgYnkgYnJpZGdlIGluIEh6IGluIGNhc2Ug ZGVyaXZlZCBmcm9tIAo+PiBEQUNQL04gcGluICovCj4+ICtzdGF0aWMgY29uc3QgdTMyIHRpX3Nu X2JyaWRnZV9kc2ljbGtfbHV0W10gPSB7Cj4+ICsJNDY4MDAwMDAwLAo+PiArCTM4NDAwMDAwMCwK Pj4gKwk0MTYwMDAwMDAsCj4+ICsJNDg2MDAwMDAwLAo+PiArCTQ2MDgwMDAwMCwKPj4gK307Cj4+ ICsKPj4gK3N0YXRpYyB2b2lkIHRpX3NuX2JyaWRnZV9zZXRfcmVmY2xrKHN0cnVjdCB0aV9zbl9i cmlkZ2UgKnBkYXRhKQo+PiArewo+PiArCWludCBpID0gMDsKPj4gKwl1OCByZWZjbGtfc3JjOwo+ PiArCXUzMiByZWZjbGtfcmF0ZTsKPj4gKwljb25zdCB1MzIgKnJlZmNsa19sdXQ7Cj4+ICsKPj4g KwlpZiAocGRhdGEtPnJlZmNsaykgewo+PiArCQlyZWZjbGtfc3JjID0gRFBQTExfQ0xLX1NSQ19S RUZDTEs7Cj4+ICsJCXJlZmNsa19yYXRlID0gY2xrX2dldF9yYXRlKHBkYXRhLT5yZWZjbGspOwo+ PiArCQlyZWZjbGtfbHV0ID0gdGlfc25fYnJpZGdlX3JlZmNsa19sdXQ7Cj4+ICsJCWNsa19wcmVw YXJlX2VuYWJsZShwZGF0YS0+cmVmY2xrKTsKPj4gKwl9IGVsc2Ugewo+PiArCQlyZWZjbGtfc3Jj ID0gRFBQTExfQ0xLX1NSQ19EU0lDTEs7Cj4+ICsJCXJlZmNsa19yYXRlID0gdGlfc25fYnJpZGdl X2dldF9kc2lfZnJlcShwZGF0YSkgKiAxMDAwOwo+PiArCQlyZWZjbGtfbHV0ID0gdGlfc25fYnJp ZGdlX2RzaWNsa19sdXQ7Cj4+ICsJfQo+PiArCj4+ICsJLyogZm9yIGkgZXF1YWxzIHRvIFJFRkNM S19MVVRfU0laRSBtZWFucyBkZWZhdWx0IGZyZXF1ZW5jeSAqLwo+PiArCWZvciAoaSA9IDA7IGkg PCBSRUZDTEtfTFVUX1NJWkU7IGkrKykKPiAKPiBJbnN0ZWFkIG9mIFJFRkNMS19MVVRfU0laRSwg dXNlIGEgbG9jYWwgdmFyaWFibGUsIGllOgo+IAo+ICAgICAgICAgc2l6ZV90IHJlZmNsa19sdXRf c2l6ZTsKPiAKPiAgICAgICAgIC4uLgo+IAo+ICAgICAgICAgaWYocGRhdGEtPnJlZmNsaykgewo+ ICAgICAgICAgICAgICAgICAuLi4KPiAgICAgICAgICAgICAgICAgcmVmY2xrX2x1dCA9IHRpX3Nu X2JyaWRnZV9yZWZjbGtfbHV0Owo+ICAgICAgICAgICAgICAgICByZWZjbGtfbHV0X3NpemUgPSBB UlJBWV9TSVpFKHRpX3NuX2JyaWRnZV9yZWZjbGtfbHV0KTsKPiAgICAgICAgICAgICAgICAgLi4u Cj4gICAgICAgICB9IGVsc2Ugewo+ICAgICAgICAgICAgICAgICAuLi4KPiAgICAgICAgICAgICAg ICAgcmVmY2xrX2x1dCA9IHRpX3NuX2JyaWRnZV9kc2ljbGtfbHV0Owo+ICAgICAgICAgICAgICAg ICByZWZjbGtfbHV0X3NpemUgPSBBUlJBWV9TSVpFKHRpX3NuX2JyaWRnZV9kc2ljbGtfbHV0KTsK PiAgICAgICAgIH0KPiAKPiBBbmQgcmVtb3ZlIFJFRkNMS19MVVRfU0laRS4KCk9rLgoKPiAKPj4g KwkJaWYgKHJlZmNsa19sdXRbaV0gPT0gcmVmY2xrX3JhdGUpCj4+ICsJCQlicmVhazsKPj4gKwo+ PiArCXJlZ21hcF93cml0ZShwZGF0YS0+cmVnbWFwLCBTTl9SRUZDTEtfRlJFUV9SRUcsCj4+ICsJ CSAgICAgKHJlZmNsa19zcmMgfCAoaSA8PCBTTl9EU0lBX1JFRkNMS19PRkZTRVQpKSk7Cj4+ICt9 Cj4+ICsKPj4gKy8qKgo+PiArICogTFVUIGluZGV4IGNvcnJlc3BvbmRzIHRvIHJlZ2lzdGVyIHZh bHVlIGFuZAo+PiArICogTFVUIHZhbHVlcyBjb3JyZXNwb25kcyB0byBkcCBkYXRhIHJhdGUgc3Vw cG9ydGVkCj4+ICsgKiBieSB0aGUgYnJpZGdlIGluIE1icHMgdW5pdC4KPj4gKyAqLwo+PiArc3Rh dGljIGNvbnN0IHVuc2lnbmVkIGludCB0aV9zbl9icmlkZ2VfZHBfcmF0ZV9sdXRbXSA9IHsKPj4g KwkwLCAxNjIwLCAyMTYwLCAyNDMwLCAyNzAwLCAzMjQwLCA0MzIwLCA1NDAwCj4+ICt9Owo+PiAr Cj4+ICtzdGF0aWMgdm9pZCB0aV9zbl9icmlkZ2Vfc2V0X2RzaV9kcF9yYXRlKHN0cnVjdCB0aV9z bl9icmlkZ2UgKnBkYXRhKQo+PiArewo+PiArCXVuc2lnbmVkIGludCBiaXRfcmF0ZV9taHosIGNs a19mcmVxX21oeiwgZHBfcmF0ZV9taHo7Cj4+ICsJdW5zaWduZWQgaW50IHZhbCA9IDAsIGkgPSAw Owo+PiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0KPj4gKwkJJnBkYXRhLT5icmlk Z2UuZW5jb2Rlci0+Y3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGU7Cj4+ICsKPj4gKwkvKiBzZXQg RFNJQSBjbGsgZnJlcXVlbmN5ICovCj4+ICsJYml0X3JhdGVfbWh6ID0gKG1vZGUtPmNsb2NrIC8g MTAwMCkgKgo+PiArCQkJbWlwaV9kc2lfcGl4ZWxfZm9ybWF0X3RvX2JwcChwZGF0YS0+ZHNpLT5m b3JtYXQpOwo+PiArCWNsa19mcmVxX21oeiA9IGJpdF9yYXRlX21oeiAvIChwZGF0YS0+ZHNpLT5s YW5lcyAqIDIpOwo+PiArCj4+ICsJLyogZm9yIGVhY2ggaW5jcmVtZW50IGluIHZhbCwgZnJlcXVl bmN5IGluY3JlYXNlcyBieSA1TUh6ICovCj4+ICsJdmFsID0gKE1JTl9EU0lfQ0xLX0ZSRVFfTUha IC8gNSkgKwo+PiArCQkoKChjbGtfZnJlcV9taHogLSBNSU5fRFNJX0NMS19GUkVRX01IWikgLyA1 KSAmIDB4RkYpOwo+PiArCXJlZ21hcF93cml0ZShwZGF0YS0+cmVnbWFwLCBTTl9EU0lBX0NMS19G UkVRX1JFRywgdmFsKTsKPj4gKwo+PiArCS8qIHNldCBEUCBkYXRhIHJhdGUgKi8KPj4gKwlkcF9y YXRlX21oeiA9ICgoYml0X3JhdGVfbWh6IC8gcGRhdGEtPmRzaS0+bGFuZXMpICogCj4+IERQX0NM S19GVURHRV9OVU0pIC8KPj4gKwkJCQkJCQlEUF9DTEtfRlVER0VfREVOOwo+PiArCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKHRpX3NuX2JyaWRnZV9kcF9yYXRlX2x1dCkgLSAxOyBpKyspCj4+ ICsJCWlmICh0aV9zbl9icmlkZ2VfZHBfcmF0ZV9sdXRbaV0gPiBkcF9yYXRlX21oeikKPj4gKwkJ CWJyZWFrOwo+PiArCj4+ICsJcmVnbWFwX3VwZGF0ZV9iaXRzKHBkYXRhLT5yZWdtYXAsIFNOX0RB VEFSQVRFX0NPTkZJR19SRUcsCj4+ICsJCQkgICBTTl9EUF9EQVRBX1JBVEVfQklUUywgaSA8PCBT Tl9EUF9EQVRBX1JBVEVfT0ZGU0VUKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgdGlfc25f YnJpZGdlX3NldF92aWRlb190aW1pbmdzKHN0cnVjdCB0aV9zbl9icmlkZ2UgCj4+ICpwZGF0YSkK Pj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9Cj4+ICsJCSZwZGF0YS0+ YnJpZGdlLmVuY29kZXItPmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+PiArCj4+ICsJdGlf c25fYnJpZGdlX3dyaXRlX3UxNihwZGF0YSwgU05fQ0hBX0FDVElWRV9MSU5FX0xFTkdUSF9MT1df UkVHLAo+PiArCQkJICAgICAgIG1vZGUtPmhkaXNwbGF5KTsKPj4gKwl0aV9zbl9icmlkZ2Vfd3Jp dGVfdTE2KHBkYXRhLCBTTl9DSEFfVkVSVElDQUxfRElTUExBWV9TSVpFX0xPV19SRUcsCj4+ICsJ CQkgICAgICAgbW9kZS0+dmRpc3BsYXkpOwo+PiArCXRpX3NuX2JyaWRnZV93cml0ZV91MTYocGRh dGEsIFNOX0NIQV9IU1lOQ19QVUxTRV9XSURUSF9MT1dfUkVHLAo+PiArCQkJICAgICAgIG1vZGUt PmhzeW5jX2VuZCAtIG1vZGUtPmhzeW5jX3N0YXJ0KTsKPj4gKwl0aV9zbl9icmlkZ2Vfd3JpdGVf dTE2KHBkYXRhLCBTTl9DSEFfVlNZTkNfUFVMU0VfV0lEVEhfTE9XX1JFRywKPj4gKwkJCSAgICAg ICBtb2RlLT52c3luY19lbmQgLSBtb2RlLT52c3luY19zdGFydCk7Cj4+ICsKPj4gKwlyZWdtYXBf d3JpdGUocGRhdGEtPnJlZ21hcCwgU05fQ0hBX0hPUklaT05UQUxfQkFDS19QT1JDSF9SRUcsCj4+ ICsJCSAgICAgKG1vZGUtPmh0b3RhbCAtIG1vZGUtPmhzeW5jX2VuZCkgJiAweEZGKTsKPj4gKwly ZWdtYXBfd3JpdGUocGRhdGEtPnJlZ21hcCwgU05fQ0hBX1ZFUlRJQ0FMX0JBQ0tfUE9SQ0hfUkVH LAo+PiArCQkgICAgIChtb2RlLT52dG90YWwgLSBtb2RlLT52c3luY19lbmQpICYgMHhGRik7Cj4+ ICsKPj4gKwlyZWdtYXBfd3JpdGUocGRhdGEtPnJlZ21hcCwgU05fQ0hBX0hPUklaT05UQUxfRlJP TlRfUE9SQ0hfUkVHLAo+PiArCQkgICAgIChtb2RlLT5oc3luY19zdGFydCAtIG1vZGUtPmhkaXNw bGF5KSAmIDB4RkYpOwo+PiArCXJlZ21hcF93cml0ZShwZGF0YS0+cmVnbWFwLCBTTl9DSEFfVkVS VElDQUxfRlJPTlRfUE9SQ0hfUkVHLAo+PiArCQkgICAgIChtb2RlLT52c3luY19zdGFydCAtIG1v ZGUtPnZkaXNwbGF5KSAmIDB4RkYpOwo+PiArCj4+ICsJdXNsZWVwX3JhbmdlKDEwMDAwLCAxMDUw MCk7IC8qIDEwbXMgZGVsYXkgcmVjb21tZW5kZWQgYnkgc3BlYyAqLwo+PiArfQo+PiArCj4+ICtz dGF0aWMgdm9pZCB0aV9zbl9icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Up Cj4+ICt7Cj4+ICsJc3RydWN0IHRpX3NuX2JyaWRnZSAqcGRhdGEgPSBicmlkZ2VfdG9fdGlfc25f YnJpZGdlKGJyaWRnZSk7Cj4+ICsJdW5zaWduZWQgaW50IHZhbCA9IDA7Cj4+ICsKPj4gKwlpZiAo cGRhdGEtPnBhbmVsKSB7Cj4+ICsJCWRybV9wYW5lbF9wcmVwYXJlKHBkYXRhLT5wYW5lbCk7Cj4+ ICsJCS8qIGluIGNhc2UgZHJtX3BhbmVsIGlzIGNvbm5lY3RlZCB0aGVuIEhQRCBpcyBub3Qgc3Vw cG9ydGVkICovCj4+ICsJCXJlZ21hcF91cGRhdGVfYml0cyhwZGF0YS0+cmVnbWFwLCBTTl9IUERf RElTQUJMRV9SRUcsCj4+ICsJCQkJICAgU05fSFBEX0RJU0FCTEVfQklULCAhMCk7Cj4gCj4gV2hh dCBpcyAhMD8KClRoZXJlIHdhcyBhIGNvbW1lbnQgdG8gbWFrZSBpdCBsaWtlIHRoaXMsIGJ1dCBp IHRoaW5rIFNOX0hQRF9ESVNBQkxFX0JJVCAKbWFrZXMgaXQgbW9yZSByZWFkYWJsZS4gSSB3aWxs IGNoYW5nZSB0aGlzIGFzIGl0IHdhcyBwcmV2aW91c2x5Lgo+IAo+IFNlYW4KPiAKPiAvc25pcApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8g bWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K