From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v8 1/4] drm/bridge: add support for sn65dsi86 bridge driver Date: Tue, 5 Jun 2018 18:59:50 -0400 Message-ID: <20180605225950.GC3373@art_vandelay> References: <1528177218-1051-1-git-send-email-spanda@codeaurora.org> <1528177218-1051-3-git-send-email-spanda@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: <1528177218-1051-3-git-send-email-spanda@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sandeep Panda Cc: devicetree@vger.kernel.org, ryadav@codeaurora.org, linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, abhinavk@codeaurora.org, hoegsberg@chromium.org, freedreno@lists.freedesktop.org, chandanu@codeaurora.org List-Id: devicetree@vger.kernel.org T24gVHVlLCBKdW4gMDUsIDIwMTggYXQgMTE6MTA6MTVBTSArMDUzMCwgU2FuZGVlcCBQYW5kYSB3 cm90ZToKPiBBZGQgc3VwcG9ydCBmb3IgVEkncyBzbjY1ZHNpODYgZHNpMmVkcCBicmlkZ2UgY2hp cC4KPiBUaGUgY2hpcCBjb252ZXJ0cyBEU0kgdHJhbnNtaXR0ZWQgc2lnbmFsIHRvIGVEUCBzaWdu YWwsCj4gd2hpY2ggaXMgZmVkIHRvIHRoZSBjb25uZWN0ZWQgZURQIHBhbmVsLgo+IAo+IFRoaXMg Y2hpcCBjYW4gYmUgY29udHJvbGxlZCB2aWEgZWl0aGVyIGkyYyBpbnRlcmZhY2Ugb3IKPiBkc2kg aW50ZXJmYWNlLiBDdXJyZW50bHkgaW4gZHJpdmVyIGFsbCB0aGUgY29udHJvbCByZWdpc3RlcnMK PiBhcmUgYmVpbmcgYWNjZXNzZWQgdGhyb3VnaCBpMmMgaW50ZXJmYWNlIG9ubHkuCj4gQWxzbyBh cyBvZiBub3cgSFBEIHN1cHBvcnQgaGFzIG5vdCBiZWVuIGFkZGVkIHRvIGJyaWRnZQo+IGNoaXAg ZHJpdmVyLgo+IAo+IENoYW5nZXMgaW4gdjE6Cj4gIC0gU3BsaXQgdGhlIGR0LWJpbmRpbmdzIGFu ZCB0aGUgZHJpdmVyIHN1cHBvcnQgaW50byBzZXBhcmF0ZSBwYXRjaGVzCj4gICAgKEFuZHJ6ZWog SGFqZGEpLgo+ICAtIFVzZSBvZiBncGlvZCBBUElzIHRvIHBhcnNlIGFuZCBjb25maWd1cmUgZ3Bp b3MgaW5zdGVhZCBvZiBvYnNvbGV0ZSBvbmVzCj4gICAgKEFuZHJ6ZWogSGFqZGEpLgo+ICAtIFVz ZSBtYWNyb3MgdG8gZGVmaW5lIHRoZSByZWdpc3RlciBvZmZzZXRzIChBbmRyemVqIEhhamRhKS4K PiAKPiBDaGFuZ2VzIGluIHYyOgo+ICAtIFNlcGFyYXRlIG91dCBlZHAgcGFuZWwgc3BlY2lmaWMg SFcgcmVzb3VyY2UgaGFuZGxpbmcgZnJvbSBicmlkZ2UKPiAgICBkcml2ZXIgYW5kIGNyZWF0ZSBh IHNlcGFyYXRlIGVkcCBwYW5lbCBkcml2ZXJzIHRvIGhhbmRsZSBwYW5lbAo+ICAgIHNwZWNpZmlj IG1vZGUgaW5mb3JtYXRpb24gYW5kIEhXIHJlc291cmNlcyAoU2VhbiBQYXVsKS4KPiAgLSBSZXBs YWNlIHByXyogQVBJcyB0byBEUk1fKiBBUElzIHRvIGxvZyBlcnJvciBvciBkZWJ1ZyBpbmZvcm1h dGlvbgo+ICAgIChTZWFuIFBhdWwpLgo+ICAtIFJlbW92ZSBzb21lIG9mIHRoZSB1bm5lY2Vzc2Fy eSBzdHJ1Y3R1cmUvdmFyaWFibGUgZnJvbSBkcml2ZXIgKFNlYW4KPiAgICBQYXVsKS4KPiAgLSBS ZW5hbWUgdGhlIGZ1bmN0aW9uIGFuZCBzdHJ1Y3R1cmUgcHJlZml4ICJzbjY1ZHNpODYiIHRvICJ0 aV9zbl9icmlkZ2UiCj4gICAgKFNlYW4gUGF1bCAvIFJvYiBIZXJyaW5nKS4KPiAgLSBSZW1vdmUg bW9zdCBvZiB0aGUgaGFyZC1jb2RpbmcgYW5kIG1vZGlmaWVkIHRoZSBicmlkZ2UgaW5pdCBzZXF1 ZW5jZQo+ICAgIGJhc2VkIG9uIGN1cnJlbnQgbW9kZSAoU2VhbiBQYXVsKS4KPiAgLSBSZW1vdmUg dGhlIGV4aXN0aW5nIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBFRElEIGRhdGEgYW5kCj4gICAg aW1wbGVtZW50ZWQgdGhpcyBhcyBhbiBpMmNfYWRhcHRlciBhbmQgdXNlIGRybV9nZXRfZWRpZCgp IChTZWFuIFBhdWwpLgo+ICAtIFJlbW92ZSB0aGUgZHVtbXkgaXJxIGhhbmRsZXIgaW1wbGVtZW50 YXRpb24sIHdpbGwgYWRkIGJhY2sgdGhlCj4gICAgcHJvcGVyIGlycSBoYW5kbGluZyBsYXRlciAo U2VhbiBQYXVsKS4KPiAgLSBDYXB0dXJlIHRoZSByZXF1aXJlZCBlbmFibGUgZ3Bpb3MgaW4gYSBz aW5nbGUgYXJyYXkgYmFzZWQgb24gZHQgZW50cnkKPiAgICBpbnN0ZWFkIG9mIGhhdmluZyBpbmRp dmlkdWFsIGRlc2NyaXB0b3IgZm9yIGVhY2ggZ3BpbyAoU2VhbiBQYXVsKS4KPiAKPiBDaGFuZ2Vz IGluIHYzOgo+ICAtIFJlbW92ZSB1c2FnZSBvZiBpcnFfZ3BpbyBhbmQgcmVwbGFjZSBpdCBhcyAi aW50ZXJydXB0cyIgcHJvcGVydHkgKFJvYgo+ICAgIEhlcnJpbmcpLgo+ICAtIFJlbW92ZSB0aGUg dW5uZWNlc3NhcnkgaGVhZGVyIGZpbGUgaW5jbHVzaW9ucyAoU2VhbiBQYXVsKS4KPiAgLSBSZWFy cmFuZ2UgdGhlIGhlYWRlciBmaWxlcyBpbiBhbHBoYWJldGljYWwgb3JkZXIgKFNlYW4gUGF1bCku Cj4gIC0gVXNlIHJlZ21hcCBpbnRlcmZhY2UgdG8gcGVyZm9ybSBpMmMgdHJhbnNhY3Rpb25zLgo+ ICAtIFVwZGF0ZSBDb3B5cmlnaHQvTGljZW5zZSBmaWVsZCBhbmQgYWRkcmVzcyBvdGhlciByZXZp ZXcgY29tbWVudHMKPiAgICAoSm9yZGFuIENyb3VzZSkuCj4gCj4gQ2hhbmdlcyBpbiB2NDoKPiAg LSBVcGRhdGUgTGljZW5zZS9Db3B5cmlnaHQgKFNlYW4gUGF1bCkuCj4gIC0gQWRkIEtjb25maWcg YW5kIE1ha2VmaWxlIGNoYW5nZXMgKFNlYW4gUGF1bCkuCj4gIC0gRHJvcCBpMmMgZ3BpbyBoYW5k bGluZyBmcm9tIHRoaXMgYnJpZGdlIGRyaXZlciwgc2luY2UgaTJjIHNkYS9zY2wgZ3Bpb3MKPiAg ICB3aWxsIGJlIGhhbmRsZWQgYnkgaTJjIG1hc3Rlci4KPiAgLSBVcGRhdGUgcmVxdWlyZWQgc3Vw cGxpZXMgbmFtZXMuCj4gIC0gUmVtb3ZlIHVubmVjZXNzYXJ5IGdvdG8gc3RhdGVtZW50cyAoU2Vh biBQYXVsKS4KPiAgLSBBZGQgbXV0ZXggbG9jayB0byBwb3dlcl9jdHJsIEFQSSB0byBhdm9pZCBy YWNlIGNvbmRpdGlvbnMgKFNlYW4KPiAgICBQYXVsKS4KPiAgLSBBZGQgc3VwcG9ydCB0byBwYXJz ZSByZWZlcmVuY2UgY2xrIGZyZXF1ZW5jeSBmcm9tIGR0KG9wdGlvbmFsKS4KPiAgLSBVcGRhdGUg dGhlIGJyaWRnZSBjaGlwIGVuYWJsZS9kaXNhYmxlIHNlcXVlbmNlLgo+IAo+IENoYW5nZXMgaW4g djU6Cj4gIC0gRml4ZWQgS2J1aWxkIHRlc3Qgc2VydmljZSByZXBvcnRlZCB3YXJuaW5ncy4KPiAK PiBDaGFuZ2VzIGluIHY2Ogo+ICAtIFVzZSBQTSBydW50aW1lIGJhc2VkIHJlZi1jb3VudGluZyBp bnN0ZWFkIG9mIGxvY2FsIHJlZl9jb3VudCBtZWNoYW5pc20KPiAgICAoU3RlcGhlbiBCb3lkKS4K PiAgLSBDbGVhbiB1cCBzb21lIGRlYnVnIGxvZ3MgYW5kIGluZGVudGF0aW9ucyAoU2VhbiBQYXVs KS4KPiAgLSBTaW1wbGlmeSBkcCByYXRlIGNhbGN1bGF0aW9uIChTZWFuIFBhdWwpLgo+ICAtIEFk ZCBzdXBwb3J0IHRvIGNvbmZpZ3VyZSByZWZjbGsgYmFzZWQgb24gaW5wdXQgUkVGQ0xLIHBpbiBv ciBEQUNQL04KPiAgICBwaW4gKFN0ZXBoZW4gQm95ZCkuCj4gCj4gQ2hhbmdlcyBpbiB2NzoKPiAg LSBVc2Ugc3RhdGljIHN1cHBseSBlbnRyaWVzIGluc3RlYWQgb2YgZHluYW1pYyBhbGxvY2F0aW9u IChBbmRyemVqCj4gICAgSGFqZGEpLgo+ICAtIERlZmVyIGJyaWRnZSBkcml2ZXIgcHJvYmUgaWYg cGFuZWwgaXMgbm90IHByb2JlZCAoQW5kcnplaiBIYWpkYSkuCj4gIC0gVXBkYXRlIG9mX2dyYXBo IEFQSXMgZm9yIGNvcnJlY3Qgbm9kZSByZWZlcmVuY2UgbWFuYWdlbWVudC4gKEFuZHJ6ZWoKPiAg ICBIYWpkYSkuCj4gIC0gUmVtb3ZlIGxvY2FsIGRpc3BsYXlfbW9kZSBvYmplY3QgKEFuZHJ6ZWog SGFqZGEpLgo+ICAtIFJlbW92ZSB2ZXJzaW9uIGlkIGNoZWNrIGZ1bmN0aW9uIGZyb20gZHJpdmVy Lgo+IAo+IENoYW5nZXMgaW4gdjg6Cj4gIC0gTW92ZSBkc2kgcmVnaXN0ZXIvYXR0YWNoIGZ1bmN0 aW9uIHRvIGJyaWRnZSBkcml2ZXIgcHJvYmUgKEFuZHJ6ZWoKPiAgICBIYWpkYSkuCj4gIC0gSW50 cm9kdWNlIGEgbmV3IGhlbHBlciBmdW5jdGlvbiB0byB3cml0ZSAxNmJpdCB3b3JkcyBpbnRvIGNv bnNlY3V0aXZlCj4gICAgcmVnaXN0ZXJzIChBbmRyemVqIEhhamRhKS4KPiAgLSBSZW1vdmUgdW5u ZWNlc3NhcnkgbWFjcm9zIChBbmRyemVqIEhhamRhKS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBTYW5k ZWVwIFBhbmRhIDxzcGFuZGFAY29kZWF1cm9yYS5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvS2NvbmZpZyAgICAgICAgfCAgIDkgKwo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdl L01ha2VmaWxlICAgICAgIHwgICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS1zbjY1 ZHNpODYuYyB8IDY2NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDMgZmls ZXMgY2hhbmdlZCwgNjc2IGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9icmlkZ2UvdGktc242NWRzaTg2LmMKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmln Cj4gaW5kZXggM2I5OWQ1YS4uODE1MzE1MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL0tjb25maWcKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL0tjb25maWcKPiBA QCAtMTA4LDYgKzEwOCwxNSBAQCBjb25maWcgRFJNX1RJX1RGUDQxMAo+ICAJLS0taGVscC0tLQo+ ICAJICBUZXhhcyBJbnN0cnVtZW50cyBURlA0MTAgRFZJL0hETUkgVHJhbnNtaXR0ZXIgZHJpdmVy Cj4gIAo+ICtjb25maWcgRFJNX1RJX1NONjVEU0k4Ngo+ICsJdHJpc3RhdGUgIlRJIFNONjVEU0k4 NiBEU0kgdG8gZURQIGJyaWRnZSIKPiArCWRlcGVuZHMgb24gT0YKPiArCXNlbGVjdCBEUk1fS01T X0hFTFBFUgo+ICsJc2VsZWN0IFJFR01BUF9JMkMKPiArCXNlbGVjdCBEUk1fUEFORUwKPiArCS0t LWhlbHAtLS0KPiArCSAgVGV4YXMgSW5zdHJ1bWVudHMgU042NURTSTg2IERTSSB0byBlRFAgQnJp ZGdlIGRyaXZlcgo+ICsKPiAgc291cmNlICJkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4 L0tjb25maWciCj4gIAo+ICBzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9L Y29uZmlnIgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlIGIv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQo+IGluZGV4IDM3M2ViMjguLjM3MTFiZTgg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKPiBAQCAtMTIsNCArMTIsNSBAQCBvYmotJChD T05GSUdfRFJNX1RPU0hJQkFfVEMzNTg3NjcpICs9IHRjMzU4NzY3Lm8KPiAgb2JqLSQoQ09ORklH X0RSTV9BTkFMT0dJWF9EUCkgKz0gYW5hbG9naXgvCj4gIG9iai0kKENPTkZJR19EUk1fSTJDX0FE Vjc1MTEpICs9IGFkdjc1MTEvCj4gIG9iai0kKENPTkZJR19EUk1fVElfVEZQNDEwKSArPSB0aS10 ZnA0MTAubwo+ICtvYmotJChDT05GSUdfRFJNX1RJX1NONjVEU0k4NikgKz0gdGktc242NWRzaTg2 Lm8KClNONjVEU0k4NiBzaG91bGQgYmUgaW4gZnJvbnQgb2YgVEZQNDEwIGhlcmUgYW5kIGFib3Zl LgoKPiAgb2JqLXkgKz0gc3lub3BzeXMvCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvdGktc242NWRzaTg2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXNuNjVkc2k4 Ni5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5hZGQ2ZTBmCj4gLS0t IC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktc242NWRzaTg2LmMK Ci9zbmlwCgo+ICsKPiArI2RlZmluZSBSRUZDTEtfTFVUX1NJWkUJNQo+ICsKPiArLyogY2xrIGZy ZXF1ZW5jaWVzIHN1cHBvcnRlZCBieSBicmlkZ2UgaW4gSHogaW4gY2FzZSBkZXJpdmVkIGZyb20g UkVGQ0xLIHBpbiAqLwo+ICtzdGF0aWMgY29uc3QgdTMyIHRpX3NuX2JyaWRnZV9yZWZjbGtfbHV0 W10gPSB7Cj4gKwkxMjAwMDAwMCwKPiArCTE5MjAwMDAwLAo+ICsJMjYwMDAwMDAsCj4gKwkyNzAw MDAwMCwKPiArCTM4NDAwMDAwLAo+ICt9Owo+ICsKPiArLyogY2xrIGZyZXF1ZW5jaWVzIHN1cHBv cnRlZCBieSBicmlkZ2UgaW4gSHogaW4gY2FzZSBkZXJpdmVkIGZyb20gREFDUC9OIHBpbiAqLwo+ ICtzdGF0aWMgY29uc3QgdTMyIHRpX3NuX2JyaWRnZV9kc2ljbGtfbHV0W10gPSB7Cj4gKwk0Njgw MDAwMDAsCj4gKwkzODQwMDAwMDAsCj4gKwk0MTYwMDAwMDAsCj4gKwk0ODYwMDAwMDAsCj4gKwk0 NjA4MDAwMDAsCj4gK307Cj4gKwo+ICtzdGF0aWMgdm9pZCB0aV9zbl9icmlkZ2Vfc2V0X3JlZmNs ayhzdHJ1Y3QgdGlfc25fYnJpZGdlICpwZGF0YSkKPiArewo+ICsJaW50IGkgPSAwOwo+ICsJdTgg cmVmY2xrX3NyYzsKPiArCXUzMiByZWZjbGtfcmF0ZTsKPiArCWNvbnN0IHUzMiAqcmVmY2xrX2x1 dDsKPiArCj4gKwlpZiAocGRhdGEtPnJlZmNsaykgewo+ICsJCXJlZmNsa19zcmMgPSBEUFBMTF9D TEtfU1JDX1JFRkNMSzsKPiArCQlyZWZjbGtfcmF0ZSA9IGNsa19nZXRfcmF0ZShwZGF0YS0+cmVm Y2xrKTsKPiArCQlyZWZjbGtfbHV0ID0gdGlfc25fYnJpZGdlX3JlZmNsa19sdXQ7Cj4gKwkJY2xr X3ByZXBhcmVfZW5hYmxlKHBkYXRhLT5yZWZjbGspOwo+ICsJfSBlbHNlIHsKPiArCQlyZWZjbGtf c3JjID0gRFBQTExfQ0xLX1NSQ19EU0lDTEs7Cj4gKwkJcmVmY2xrX3JhdGUgPSB0aV9zbl9icmlk Z2VfZ2V0X2RzaV9mcmVxKHBkYXRhKSAqIDEwMDA7Cj4gKwkJcmVmY2xrX2x1dCA9IHRpX3NuX2Jy aWRnZV9kc2ljbGtfbHV0Owo+ICsJfQo+ICsKPiArCS8qIGZvciBpIGVxdWFscyB0byBSRUZDTEtf TFVUX1NJWkUgbWVhbnMgZGVmYXVsdCBmcmVxdWVuY3kgKi8KPiArCWZvciAoaSA9IDA7IGkgPCBS RUZDTEtfTFVUX1NJWkU7IGkrKykKCkluc3RlYWQgb2YgUkVGQ0xLX0xVVF9TSVpFLCB1c2UgYSBs b2NhbCB2YXJpYWJsZSwgaWU6CgogICAgICAgIHNpemVfdCByZWZjbGtfbHV0X3NpemU7CgogICAg ICAgIC4uLgoKICAgICAgICBpZihwZGF0YS0+cmVmY2xrKSB7CiAgICAgICAgICAgICAgICAuLi4K ICAgICAgICAgICAgICAgIHJlZmNsa19sdXQgPSB0aV9zbl9icmlkZ2VfcmVmY2xrX2x1dDsKICAg ICAgICAgICAgICAgIHJlZmNsa19sdXRfc2l6ZSA9IEFSUkFZX1NJWkUodGlfc25fYnJpZGdlX3Jl ZmNsa19sdXQpOwogICAgICAgICAgICAgICAgLi4uCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAg ICAgICAgIC4uLgogICAgICAgICAgICAgICAgcmVmY2xrX2x1dCA9IHRpX3NuX2JyaWRnZV9kc2lj bGtfbHV0OwogICAgICAgICAgICAgICAgcmVmY2xrX2x1dF9zaXplID0gQVJSQVlfU0laRSh0aV9z bl9icmlkZ2VfZHNpY2xrX2x1dCk7CiAgICAgICAgfQoKQW5kIHJlbW92ZSBSRUZDTEtfTFVUX1NJ WkUuCgo+ICsJCWlmIChyZWZjbGtfbHV0W2ldID09IHJlZmNsa19yYXRlKQo+ICsJCQlicmVhazsK PiArCj4gKwlyZWdtYXBfd3JpdGUocGRhdGEtPnJlZ21hcCwgU05fUkVGQ0xLX0ZSRVFfUkVHLAo+ ICsJCSAgICAgKHJlZmNsa19zcmMgfCAoaSA8PCBTTl9EU0lBX1JFRkNMS19PRkZTRVQpKSk7Cj4g K30KPiArCj4gKy8qKgo+ICsgKiBMVVQgaW5kZXggY29ycmVzcG9uZHMgdG8gcmVnaXN0ZXIgdmFs dWUgYW5kCj4gKyAqIExVVCB2YWx1ZXMgY29ycmVzcG9uZHMgdG8gZHAgZGF0YSByYXRlIHN1cHBv cnRlZAo+ICsgKiBieSB0aGUgYnJpZGdlIGluIE1icHMgdW5pdC4KPiArICovCj4gK3N0YXRpYyBj b25zdCB1bnNpZ25lZCBpbnQgdGlfc25fYnJpZGdlX2RwX3JhdGVfbHV0W10gPSB7Cj4gKwkwLCAx NjIwLCAyMTYwLCAyNDMwLCAyNzAwLCAzMjQwLCA0MzIwLCA1NDAwCj4gK307Cj4gKwo+ICtzdGF0 aWMgdm9pZCB0aV9zbl9icmlkZ2Vfc2V0X2RzaV9kcF9yYXRlKHN0cnVjdCB0aV9zbl9icmlkZ2Ug KnBkYXRhKQo+ICt7Cj4gKwl1bnNpZ25lZCBpbnQgYml0X3JhdGVfbWh6LCBjbGtfZnJlcV9taHos IGRwX3JhdGVfbWh6Owo+ICsJdW5zaWduZWQgaW50IHZhbCA9IDAsIGkgPSAwOwo+ICsJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPQo+ICsJCSZwZGF0YS0+YnJpZGdlLmVuY29kZXItPmNy dGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+ICsKPiArCS8qIHNldCBEU0lBIGNsayBmcmVxdWVu Y3kgKi8KPiArCWJpdF9yYXRlX21oeiA9IChtb2RlLT5jbG9jayAvIDEwMDApICoKPiArCQkJbWlw aV9kc2lfcGl4ZWxfZm9ybWF0X3RvX2JwcChwZGF0YS0+ZHNpLT5mb3JtYXQpOwo+ICsJY2xrX2Zy ZXFfbWh6ID0gYml0X3JhdGVfbWh6IC8gKHBkYXRhLT5kc2ktPmxhbmVzICogMik7Cj4gKwo+ICsJ LyogZm9yIGVhY2ggaW5jcmVtZW50IGluIHZhbCwgZnJlcXVlbmN5IGluY3JlYXNlcyBieSA1TUh6 ICovCj4gKwl2YWwgPSAoTUlOX0RTSV9DTEtfRlJFUV9NSFogLyA1KSArCj4gKwkJKCgoY2xrX2Zy ZXFfbWh6IC0gTUlOX0RTSV9DTEtfRlJFUV9NSFopIC8gNSkgJiAweEZGKTsKPiArCXJlZ21hcF93 cml0ZShwZGF0YS0+cmVnbWFwLCBTTl9EU0lBX0NMS19GUkVRX1JFRywgdmFsKTsKPiArCj4gKwkv KiBzZXQgRFAgZGF0YSByYXRlICovCj4gKwlkcF9yYXRlX21oeiA9ICgoYml0X3JhdGVfbWh6IC8g cGRhdGEtPmRzaS0+bGFuZXMpICogRFBfQ0xLX0ZVREdFX05VTSkgLwo+ICsJCQkJCQkJRFBfQ0xL X0ZVREdFX0RFTjsKPiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHRpX3NuX2JyaWRnZV9k cF9yYXRlX2x1dCkgLSAxOyBpKyspCj4gKwkJaWYgKHRpX3NuX2JyaWRnZV9kcF9yYXRlX2x1dFtp XSA+IGRwX3JhdGVfbWh6KQo+ICsJCQlicmVhazsKPiArCj4gKwlyZWdtYXBfdXBkYXRlX2JpdHMo cGRhdGEtPnJlZ21hcCwgU05fREFUQVJBVEVfQ09ORklHX1JFRywKPiArCQkJICAgU05fRFBfREFU QV9SQVRFX0JJVFMsIGkgPDwgU05fRFBfREFUQV9SQVRFX09GRlNFVCk7Cj4gK30KPiArCj4gK3N0 YXRpYyB2b2lkIHRpX3NuX2JyaWRnZV9zZXRfdmlkZW9fdGltaW5ncyhzdHJ1Y3QgdGlfc25fYnJp ZGdlICpwZGF0YSkKPiArewo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPQo+ICsJ CSZwZGF0YS0+YnJpZGdlLmVuY29kZXItPmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+ICsK PiArCXRpX3NuX2JyaWRnZV93cml0ZV91MTYocGRhdGEsIFNOX0NIQV9BQ1RJVkVfTElORV9MRU5H VEhfTE9XX1JFRywKPiArCQkJICAgICAgIG1vZGUtPmhkaXNwbGF5KTsKPiArCXRpX3NuX2JyaWRn ZV93cml0ZV91MTYocGRhdGEsIFNOX0NIQV9WRVJUSUNBTF9ESVNQTEFZX1NJWkVfTE9XX1JFRywK PiArCQkJICAgICAgIG1vZGUtPnZkaXNwbGF5KTsKPiArCXRpX3NuX2JyaWRnZV93cml0ZV91MTYo cGRhdGEsIFNOX0NIQV9IU1lOQ19QVUxTRV9XSURUSF9MT1dfUkVHLAo+ICsJCQkgICAgICAgbW9k ZS0+aHN5bmNfZW5kIC0gbW9kZS0+aHN5bmNfc3RhcnQpOwo+ICsJdGlfc25fYnJpZGdlX3dyaXRl X3UxNihwZGF0YSwgU05fQ0hBX1ZTWU5DX1BVTFNFX1dJRFRIX0xPV19SRUcsCj4gKwkJCSAgICAg ICBtb2RlLT52c3luY19lbmQgLSBtb2RlLT52c3luY19zdGFydCk7Cj4gKwo+ICsJcmVnbWFwX3dy aXRlKHBkYXRhLT5yZWdtYXAsIFNOX0NIQV9IT1JJWk9OVEFMX0JBQ0tfUE9SQ0hfUkVHLAo+ICsJ CSAgICAgKG1vZGUtPmh0b3RhbCAtIG1vZGUtPmhzeW5jX2VuZCkgJiAweEZGKTsKPiArCXJlZ21h cF93cml0ZShwZGF0YS0+cmVnbWFwLCBTTl9DSEFfVkVSVElDQUxfQkFDS19QT1JDSF9SRUcsCj4g KwkJICAgICAobW9kZS0+dnRvdGFsIC0gbW9kZS0+dnN5bmNfZW5kKSAmIDB4RkYpOwo+ICsKPiAr CXJlZ21hcF93cml0ZShwZGF0YS0+cmVnbWFwLCBTTl9DSEFfSE9SSVpPTlRBTF9GUk9OVF9QT1JD SF9SRUcsCj4gKwkJICAgICAobW9kZS0+aHN5bmNfc3RhcnQgLSBtb2RlLT5oZGlzcGxheSkgJiAw eEZGKTsKPiArCXJlZ21hcF93cml0ZShwZGF0YS0+cmVnbWFwLCBTTl9DSEFfVkVSVElDQUxfRlJP TlRfUE9SQ0hfUkVHLAo+ICsJCSAgICAgKG1vZGUtPnZzeW5jX3N0YXJ0IC0gbW9kZS0+dmRpc3Bs YXkpICYgMHhGRik7Cj4gKwo+ICsJdXNsZWVwX3JhbmdlKDEwMDAwLCAxMDUwMCk7IC8qIDEwbXMg ZGVsYXkgcmVjb21tZW5kZWQgYnkgc3BlYyAqLwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCB0aV9z bl9icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3sKPiArCXN0cnVj dCB0aV9zbl9icmlkZ2UgKnBkYXRhID0gYnJpZGdlX3RvX3RpX3NuX2JyaWRnZShicmlkZ2UpOwo+ ICsJdW5zaWduZWQgaW50IHZhbCA9IDA7Cj4gKwo+ICsJaWYgKHBkYXRhLT5wYW5lbCkgewo+ICsJ CWRybV9wYW5lbF9wcmVwYXJlKHBkYXRhLT5wYW5lbCk7Cj4gKwkJLyogaW4gY2FzZSBkcm1fcGFu ZWwgaXMgY29ubmVjdGVkIHRoZW4gSFBEIGlzIG5vdCBzdXBwb3J0ZWQgKi8KPiArCQlyZWdtYXBf dXBkYXRlX2JpdHMocGRhdGEtPnJlZ21hcCwgU05fSFBEX0RJU0FCTEVfUkVHLAo+ICsJCQkJICAg U05fSFBEX0RJU0FCTEVfQklULCAhMCk7CgpXaGF0IGlzICEwPwoKU2VhbgoKL3NuaXAKCi0tIApT ZWFuIFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK