From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 04/13] drm/i915/cnp: Backlight support for CNP. Date: Fri, 02 Jun 2017 10:02:37 +0300 Message-ID: <87k24u98j6.fsf@intel.com> References: <1496184183-30740-1-git-send-email-rodrigo.vivi@intel.com> <1496184183-30740-4-git-send-email-rodrigo.vivi@intel.com> <1496284553.24196.40.camel@dk-H97M-D3H> <1496334535.2930.142.camel@rdvivi-vienna> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 518068966C for ; Fri, 2 Jun 2017 07:02:50 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" , "Vivi, Rodrigo" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAwMSBKdW4gMjAxNywgIlBhbmRpeWFuLCBEaGluYWthcmFuIiA8ZGhpbmFrYXJhbi5w YW5kaXlhbkBpbnRlbC5jb20+IHdyb3RlOgo+IEJhc2VkIG9uIHlvdXIgY2xhcmlmaWNhdGlvbiB0 aGUgc2Vjb25kIG9wdGlvbiBmZWVscyBsaWtlIHRoZSByaWdodAo+IGNob2ljZSwgd2l0aCBhIHJl bGV2YW50IGNvbW1lbnQgaW4gY29kZS4gTGlrZSB5b3Ugc2FpZCwgd2UgZ2V0IHRvCj4gcmV0YWlu IEJYVCByZWdpc3RlciBkZWZpbml0aW9ucyBhbmQgY2xhcmlmeSB0aGF0IHRoZSByZWdpc3RlciBp cyBvbiBhCj4gUENIIGZvciBDTlAuCgpBY2suIFdlIGNhbiBhbHNvIGNsYXJpZnkvdW5pZnkgdGhl IGRlZmluaXRpb25zIGxhdGVyIG9uIGFzIG5lZWRlZC4KCkJSLApKYW5pLgoKPgo+IC1ESwo+Cj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBWaXZpLCBSb2RyaWdvIAo+IFNlbnQ6 IFRodXJzZGF5LCBKdW5lIDEsIDIwMTcgOToyOSBBTQo+IFRvOiBQYW5kaXlhbiwgRGhpbmFrYXJh biA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gQ2M6IGludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmc7IE5pa3VsYSwgSmFuaSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+IFN1 YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbUEFUQ0ggMDQvMTNdIGRybS9pOTE1L2NucDogQmFja2xp Z2h0IHN1cHBvcnQgZm9yIENOUC4KPgo+IE9uIFRodSwgMjAxNy0wNi0wMSBhdCAwMjoxNSArMDAw MCwgUGFuZGl5YW4sIERoaW5ha2FyYW4gd3JvdGU6Cj4+IE9uIFR1ZSwgMjAxNy0wNS0zMCBhdCAx NTo0MiAtMDcwMCwgUm9kcmlnbyBWaXZpIHdyb3RlOgo+PiA+IFNwbGl0IG91dCBCWFQgYW5kIENO UCdzIHNldHVwX2JhY2tsaWdodCgpLGVuYWJsZV9iYWNrbGlnaHQoKSwKPj4gPiBkaXNhYmxlX2Jh Y2tsaWdodCgpIGFuZCBoel90b19wd20oKSBpbnRvIHR3byBzZXBhcmF0ZSBmdW5jdGlvbnMgCj4+ ID4gaW5zdGVhZCBvZiByZXVzaW5nIEJYVCBmdW5jdGlvbi4KPj4gPiAKPj4gPiBSZXVzZSBzZXRf YmFja2xpZ2h0KCkgYW5kIGdldF9iYWNrbGlnaHQoKSBzaW5jZSB0aGV5IGhhdmUgbm8gCj4+ID4g cmVmZXJlbmNlIHRvIHRoZSB1dGlsaXR5IHBpbi4KPj4gPiAKPj4gPiB2MjogUmV1c2UgQlhUIGZ1 bmN0aW9ucyB3aXRoIGNvbnRyb2xsZXIgMCBpbnN0ZWFkIG9mCj4+ID4gICAgIHJlZGVmaW5pbmcg aXQuIChKYW5pKS4KPj4gPiAgICAgVXNlIGRldl9wcml2LT5yYXdjbGtfZnJlcSBpbnN0ZWFkIG9m IGdldHRpbmcgdGhlIHZhbHVlCj4+ID4gICAgIGZyb20gU0ZVU0VfU1RSQVAuCj4+ID4gdjM6IEF2 b2lkIHNldHVwIGJhY2tsaWdoIGNvbnRyb2xsZXIgYWxvbmcgd2l0aCBob29rcyBhbmQKPj4gPiAg ICAgZnVsbHkgcmV1c2UgaG9va3Mgc2V0dXAgYXMgc3VnZ2VzdGVkIGJ5IEphbmkuCj4+ID4gdjQ6 IENsZWFuIHVwIGNvbW1pdCBtZXNzYWdlLgo+PiA+IHY1OiBJbXBsZW1lbnQgcGVyIFBDSCBpbnN0 ZWFkIHBlciBwbGF0Zm9ybS4KPj4gPiAKPj4gPiB2NjogSW50cm9kdWNlIGEgbmV3IGZ1bmN0aW9u IGZvciBDTlAuKEphbmkgYW5kIFZpbGxlKQo+PiA+IAo+PiA+IHY3OiBTcXVhc2ggdGhlIGFsbCBD TlAgQmFja2xpZ2h0IHN1cHBvcnQgcGF0Y2hlcyBpbnRvIGEgc2luZ2xlIAo+PiA+IHBhdGNoLiAo SmFuaSkKPj4gPiAKPj4gPiB2ODogQ29ycmVjdCBpbmRlbnRhdGlvbiwgcmVtb3ZlIHVubmVlZGVk IGJsYW5rIGxpbmVzIGFuZCBjb3JyZWN0IAo+PiA+IG1haWwgYWRkcmVzcyAoSmFuaSkuCj4+ID4g Cj4+ID4gdjk6IFJlbW92ZSB1bnVzZWQgZW51bSBwaXBlLiAoYnkgQ0kpCj4+ID4gCj4+ID4gUmV2 aWV3ZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4+ID4gU3VnZ2Vz dGVkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+PiA+IFN1Z2dlc3Rl ZC1ieTogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBpbnRlbC5jb20+Cj4+ID4gQ2M6IFZp bGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+PiA+IENjOiBKYW5p IE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+PiA+IFNpZ25lZC1vZmYtYnk6IEFudXNo YSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPj4gPiBTaWduZWQtb2ZmLWJ5 OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4+ID4gLS0tCj4+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgfCA5MyAKPj4gPiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwo+PiA+ICAxIGZpbGUgY2hhbmdlZCwgOTMgaW5zZXJ0 aW9ucygrKQo+PiA+IAo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wYW5lbC5jIAo+PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+PiA+ IGluZGV4IGM4MTAzZjguLjdlMzRhMWIgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcGFuZWwuYwo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BhbmVsLmMKPj4gPiBAQCAtNzk2LDYgKzc5NiwxOSBAQCBzdGF0aWMgdm9pZCBieHRfZGlzYWJs ZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiA+ICAJfQo+ PiA+ICB9Cj4+ID4gIAo+PiA+ICtzdGF0aWMgdm9pZCBjbnBfZGlzYWJsZV9iYWNrbGlnaHQoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAKPj4gPiArKmNvbm5lY3Rvcikgewo+PiA+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsK Pj4gPiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPj4g PiArCXUzMiB0bXA7Cj4+ID4gKwo+PiA+ICsJaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2ts aWdodChjb25uZWN0b3IsIDApOwo+PiA+ICsKPj4gPiArCXRtcCA9IEk5MTVfUkVBRChCWFRfQkxD X1BXTV9DVEwocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSk7Cj4+ID4gKwlJOTE1X1dSSVRF KEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpLAo+PiA+ICsJCSAg IHRtcCAmIH5CWFRfQkxDX1BXTV9FTkFCTEUpOwo+PiA+ICt9Cj4+ID4gKwo+PiA+ICBzdGF0aWMg dm9pZCBwd21fZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAKPj4gPiAq Y29ubmVjdG9yKSAgewo+PiA+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0 b3ItPnBhbmVsOyBAQCAtMTA4Niw2ICsxMDk5LDM1IAo+PiA+IEBAIHN0YXRpYyB2b2lkIGJ4dF9l bmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4gPiAg CQkJcHdtX2N0bCB8IEJYVF9CTENfUFdNX0VOQUJMRSk7Cj4+ID4gIH0KPj4gPiAgCj4+ID4gK3N0 YXRpYyB2b2lkIGNucF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvcikgCj4+ID4gK3sKPj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4+ID4gKwlzdHJ1Y3QgaW50ZWxfcGFu ZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4+ID4gKwl1MzIgcHdtX2N0bDsKPj4gPiAr Cj4+ID4gKwlwd21fY3RsID0gSTkxNV9SRUFEKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xp Z2h0LmNvbnRyb2xsZXIpKTsKPj4gCj4+IFNob3VsZG4ndCB0aGlzIGJlIEJMQ19QV01fUENIX0NU TDE/Cj4KPiBOb3Qgc3VyZS4gQXJlIHdlIGdvaW5nIHRvCj4gMSkgcmVkZWZpbmUgZXZlcnl0aGlu Zz8gaW5jbHVkaW5nIGFsbCByZWdpc3RlcnMgYW5kIGJpdCBkZWZpbml0aW9ucyB0aGF0IGFyZSBp ZGVudGljYWw/Cj4gMikgcmV1c2UgcGFydCBvZiBDUFUgYW5kIHBhcnQgb2Ygb2xkIFBDSD8KPgo+ PiAKPj4gSSB0aGluayByZXVzaW5nIENQVSByZWdpc3RlciBkZWZpbml0aW9ucyBmb3IgUENIIGlz IGNvbmZ1c2luZy4gRXZlbiAKPj4gbW9yZSBzbywgd2hlbiB3ZSBhbHJlYWR5IGhhdmUgc2VwYXJh dGUgZGVmaW5pdGlvbnMgZm9yIFBDSC4KPgo+IEFjdHVhbGx5IHRoZSBCWFQgYmFja2xpZ2h0IGlt cGxlbWVudGF0aW9uIHdhcyB1c2VkIG9uIENOUC4gU28gYWxsIG9mIHRoaXMgd2FzIG1vdmVkIGZy b20gQ1BVIHRvIFBDSC4KPgo+PiBCU3BlYyBzcGVjaWZpY2FsbHkgcmVmZXJzIHRvIHRoZXNlIHJl Z2lzdGVycyBhcyBTQkxDX1BXTV9DVEwxLCAKPj4gU0JMQ19QV01fRlJFUSBhbmQgU0JMQ19QV01f RFVUWS4KPgo+IEkgYmVsaWV2ZSB3ZSB0cmFkaXRpb25hbGx5IHRyeSB0byByZXVzZSByZWdpc3Rl cnMgZGVmaW5pdGlvbnMgdGhhdCBhcmUgdGhlcmUgYWxyZWFkeSBpbnN0ZWFkIG9mIHJlZGVmaW5l IGV2ZXJ5dGltZSB0aGF0IHNwZWMgY2hhbmdlcyB0aGUgbmFtZS4KPgo+IEZvciBtZSBhbGwgb2Yg dGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBtb3JlIGxpa2UgQlhUIHNvIHdlIHNob3VsZCBwcm9jZWVk IHdpdGggdGhpcyBmcm9tIHRoaXMgcG9pbnQgYW5kIG9uIGFuZCByZXVzaW5nIGFzIG11Y2ggYXMg d2UgY2FuLgo+Cj4gSG93ZXZlciBkdXJpbmcgdGhlIHJldmlldyBpdCB3YXMgZGVjaWRlZCB0byBu b3QgcmV1c2UgZGlyZWN0bHkgdGhlIGJ4dCBmdW5jdGlvbnMuLi4gU28gbm93IEknbSBub3Qgc3Vy ZSBpbiB3aGljaCBwb2ludCB3ZSBzaG91bGQgc3RvcCBkdXBsaWNhdGluZyBjb2RlIGFueW1vcmUu Li4gCj4KPj4gCj4+IAo+PiAKPj4gCj4+ID4gKwlpZiAocHdtX2N0bCAmIEJYVF9CTENfUFdNX0VO QUJMRSkgewo+PiA+ICsJCURSTV9ERUJVR19LTVMoImJhY2tsaWdodCBhbHJlYWR5IGVuYWJsZWRc biIpOwo+PiA+ICsJCXB3bV9jdGwgJj0gfkJYVF9CTENfUFdNX0VOQUJMRTsKPj4gPiArCQlJOTE1 X1dSSVRFKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpLAo+PiA+ ICsJCQkgICBwd21fY3RsKTsKPj4gPiArCX0KPj4gPiArCj4+ID4gKwlJOTE1X1dSSVRFKEJYVF9C TENfUFdNX0ZSRVEocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSwKPj4gPiArCQkgICBwYW5l bC0+YmFja2xpZ2h0Lm1heCk7Cj4+ID4gKwo+PiA+ICsJaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0 X2JhY2tsaWdodChjb25uZWN0b3IsIAo+PiA+ICtwYW5lbC0+YmFja2xpZ2h0LmxldmVsKTsKPj4g PiArCj4+ID4gKwlwd21fY3RsID0gMDsKPj4gPiArCWlmIChwYW5lbC0+YmFja2xpZ2h0LmFjdGl2 ZV9sb3dfcHdtKQo+PiA+ICsJCXB3bV9jdGwgfD0gQlhUX0JMQ19QV01fUE9MQVJJVFk7Cj4+ID4g Kwo+PiA+ICsJSTkxNV9XUklURShCWFRfQkxDX1BXTV9DVEwocGFuZWwtPmJhY2tsaWdodC5jb250 cm9sbGVyKSwgcHdtX2N0bCk7Cj4+ID4gKwlQT1NUSU5HX1JFQUQoQlhUX0JMQ19QV01fQ1RMKHBh bmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOwo+PiA+ICsJSTkxNV9XUklURShCWFRfQkxDX1BX TV9DVEwocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSwKPj4gPiArCQkgICBwd21fY3RsIHwg QlhUX0JMQ19QV01fRU5BQkxFKTsgfQo+PiA+ICsKPj4gPiAgc3RhdGljIHZvaWQgcHdtX2VuYWJs ZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKSAgCj4+ID4gewo+ PiA+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOyBAQCAt MTI1MCw2ICsxMjkyLDE4IAo+PiA+IEBAIHZvaWQgaW50ZWxfYmFja2xpZ2h0X2RldmljZV91bnJl Z2lzdGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgCj4+ID4gKmNvbm5lY3RvcikgICNlbmRpZiAv KiBDT05GSUdfQkFDS0xJR0hUX0NMQVNTX0RFVklDRSAqLwo+PiA+ICAKPj4gPiAgLyoKPj4gPiAr ICogQ05QOiBQV00gY2xvY2sgZnJlcXVlbmN5IGlzIDE5LjIgTUh6IG9yIDI0IE1Iei4KPj4gPiAr ICogICAgICBWYWx1ZSBpcyBmb3VuZCBpbiBTRlVTRV9TVFJBUC4KPj4gPiArICogICAgICBQV00g aW5jcmVtZW50ID0gMQo+PiA+ICsgKi8KPj4gPiArc3RhdGljIHUzMiBjbnBfaHpfdG9fcHdtKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIAo+PiA+ICtwd21fZnJlcV9oeikg ewo+PiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25u ZWN0b3ItPmJhc2UuZGV2KTsKPj4gPiArCj4+ID4gKwlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1Qo S0h6KGRldl9wcml2LT5yYXdjbGtfZnJlcSksIHB3bV9mcmVxX2h6KTsgCj4+ID4gK30KPj4gPiAr Cj4+ID4gKy8qCj4+ID4gICAqIEJYVDogUFdNIGNsb2NrIGZyZXF1ZW5jeSA9IDE5LjIgTUh6Lgo+ PiA+ICAgKi8KPj4gPiAgc3RhdGljIHUzMiBieHRfaHpfdG9fcHdtKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciwgdTMyIAo+PiA+IHB3bV9mcmVxX2h6KSBAQCAtMTY0NCw2ICsxNjk4 LDM3IEBAIHN0YXRpYyBpbnQgdmx2X3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IsIGVudW0gcGlwZSBwaXBlCj4+ID4gIAlyZXR1cm4gMDsKPj4gPiAgfQo+ PiA+ICAKPj4gPiArc3RhdGljIGludAo+PiA+ICtjbnBfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIAo+PiA+ICt1bnVzZWQpIHsKPj4g PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9y LT5iYXNlLmRldik7Cj4+ID4gKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rv ci0+cGFuZWw7Cj4+ID4gKwl1MzIgcHdtX2N0bCwgdmFsOwo+PiA+ICsKPj4gPiArCXBhbmVsLT5i YWNrbGlnaHQuY29udHJvbGxlciA9IGRldl9wcml2LT52YnQuYmFja2xpZ2h0LmNvbnRyb2xsZXI7 Cj4+IAo+PiBBcmUgdGhlcmUgYXJlIHR3byBjb250cm9sbGVycyBpbiBDTlA/IEkgZGlkIG5vdCBm aW5kIGFueSByZWZlcmVuY2VzIGluIAo+PiBCU3BlYywgY2FuIHlvdSBwbGVhc2UgY29uZmlybT8K Pgo+IFdlIG9ubHkgaGF2ZSBvbmUgY29udHJvbGxlciBvbiBDTlAuIFdlIG1pZ2h0IGhhdmUgbW9y ZSBjb21pbmcgc29vbiwgYnV0IGZvciB0aGUgY3VycmVudCBDTlAgcGxhdGZvcm1zIHRoZXJlIGlz IG9ubHkgb25lIGNvbnRyb2xsZXIgYW5kIEkgZG8gYmVsaWV2ZSB3ZSBjb3VsZCBqdXN0IGlnbm9y ZSBWQlQgZm9yIG5vdy4gQnV0IHF1ZXN0aW9uIG5vdyBpczoKPgo+IDEuIExlYXZlIGFzIGlzLgo+ Cj4gMi4gc2V0IHRoaXMgcGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyID0gMDsgYW5kIG1vdmUg b24uCj4KPiAzLiBVc2UgQkxDX1BXTV9QQ0hfQ1RMMSBkaXJlY3RseSBhbmQgIEJYVF9CTENfUFdN X0ZSRVEoMCkgYW5kIF9EVVRZKDApCj4KPiA0LiBVc2UgQkxDX1BXTV9QQ0hfQ1RMMSBkaXJlY3Rs eSBhbmQgcmVpbXBsZW1lbnQgU0JMQ19QV01fRlJFUSBhbmQgU0JMQ19QV01fRFVUWS4KPgo+IDUu IFJlaW1wbGVtZW50IFNCTENfUFdNX0NUTDEsIFNCTENfUFdNX0ZSRVEgYW5kIFNCTENfUFdNX0RV VFkuCj4KPiBBbHRob3VnaCA0IG9yIDUgc2VlbXMgdG8gYmUgdGhlIHJpZ2h0IHdheSB0byBnbyBu b3cgSSdkIGxpa2UgdG8gaGlnaGxpZ2h0IHRoYXQgbWF5YmUgbmV4dCBQQ0ggY2FuIGJlIG1vcmUg bGlrZSBCWFQgdGhhbiBsaWtlIENOUC4gU28gd2Ugd291bGQgbmVlZCB0byByZWltcGxlbWVudCBl dmVyeXRoaW5nIGFnYWluLgo+Cj4gSSBob25lc3RseSBkb24ndCBtaW5kIHdoaWNoIG9wdGlvbiB3 ZSBnby4gTXkgcG9zaXRpb24gd2FzIHRvIGZ1bGx5IHJldXNlIEJYVCBhcyBJIGhhZCBpbml0aWFs bHkgZG9uZS4gQnV0IHRoYXQgd2FzIG5hY2tlZC4gU28gcGxlYXNlIGp1c3QgbGV0IG1lIGtub3cg dGhlIGRpcmVjdGlvbiB0aGF0IEkgcHJvdmlkZSB0aGUgcGF0Y2ggOykKPgo+IFRoYW5rcywKPiBS b2RyaWdvLgo+Cj4+IAo+PiAKPj4gPiArCj4+ID4gKwlwd21fY3RsID0gSTkxNV9SRUFEKEJYVF9C TENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpKTsKPj4gPiArCj4+ID4gKwlw YW5lbC0+YmFja2xpZ2h0LmFjdGl2ZV9sb3dfcHdtID0gcHdtX2N0bCAmIEJYVF9CTENfUFdNX1BP TEFSSVRZOwo+PiA+ICsJcGFuZWwtPmJhY2tsaWdodC5tYXggPQo+PiA+ICsJCUk5MTVfUkVBRChC WFRfQkxDX1BXTV9GUkVRKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOwo+PiA+ICsKPj4g PiArCWlmICghcGFuZWwtPmJhY2tsaWdodC5tYXgpCj4+ID4gKwkJcGFuZWwtPmJhY2tsaWdodC5t YXggPSBnZXRfYmFja2xpZ2h0X21heF92YnQoY29ubmVjdG9yKTsKPj4gPiArCj4+ID4gKwlpZiAo IXBhbmVsLT5iYWNrbGlnaHQubWF4KQo+PiA+ICsJCXJldHVybiAtRU5PREVWOwo+PiA+ICsKPj4g PiArCXZhbCA9IGJ4dF9nZXRfYmFja2xpZ2h0KGNvbm5lY3Rvcik7Cj4+ID4gKwl2YWwgPSBpbnRl bF9wYW5lbF9jb21wdXRlX2JyaWdodG5lc3MoY29ubmVjdG9yLCB2YWwpOwo+PiA+ICsJcGFuZWwt PmJhY2tsaWdodC5sZXZlbCA9IGNsYW1wKHZhbCwgcGFuZWwtPmJhY2tsaWdodC5taW4sCj4+ID4g KwkJCQkgICAgICAgcGFuZWwtPmJhY2tsaWdodC5tYXgpOwo+PiA+ICsKPj4gPiArCXBhbmVsLT5i YWNrbGlnaHQuZW5hYmxlZCA9IHB3bV9jdGwgJiBCWFRfQkxDX1BXTV9FTkFCTEU7Cj4+ID4gKwo+ PiA+ICsJcmV0dXJuIDA7Cj4+ID4gK30KPj4gPiArCj4+ID4gIHN0YXRpYyBpbnQgcHdtX3NldHVw X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4+ID4gIAkJCSAg ICAgICBlbnVtIHBpcGUgcGlwZSkKPj4gPiAgewo+PiA+IEBAIC0xNzYwLDYgKzE4NDUsMTQgQEAg dm9pZCBpbnRlbF9wYW5lbF9kZXN0cm95X2JhY2tsaWdodChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQo+PiA+ICAJCXBhbmVsLT5iYWNrbGlnaHQuc2V0ID0gYnh0X3NldF9iYWNrbGln aHQ7Cj4+ID4gIAkJcGFuZWwtPmJhY2tsaWdodC5nZXQgPSBieHRfZ2V0X2JhY2tsaWdodDsKPj4g PiAgCQlwYW5lbC0+YmFja2xpZ2h0Lmh6X3RvX3B3bSA9IGJ4dF9oel90b19wd207Cj4+ID4gKwkJ cGFuZWwtPmJhY2tsaWdodC5oel90b19wd20gPSBieHRfaHpfdG9fcHdtOwo+PiBeU3B1cmlvdXMg bGluZS4KPj4gCj4+ID4gKwl9IGVsc2UgaWYgKEhBU19QQ0hfQ05QKGRldl9wcml2KSkgewo+PiA+ ICsJCXBhbmVsLT5iYWNrbGlnaHQuc2V0dXAgPSBjbnBfc2V0dXBfYmFja2xpZ2h0Owo+PiA+ICsJ CXBhbmVsLT5iYWNrbGlnaHQuZW5hYmxlID0gY25wX2VuYWJsZV9iYWNrbGlnaHQ7Cj4+ID4gKwkJ cGFuZWwtPmJhY2tsaWdodC5kaXNhYmxlID0gY25wX2Rpc2FibGVfYmFja2xpZ2h0Owo+PiA+ICsJ CXBhbmVsLT5iYWNrbGlnaHQuc2V0ID0gYnh0X3NldF9iYWNrbGlnaHQ7Cj4+ID4gKwkJcGFuZWwt PmJhY2tsaWdodC5nZXQgPSBieHRfZ2V0X2JhY2tsaWdodDsKPj4gPiArCQlwYW5lbC0+YmFja2xp Z2h0Lmh6X3RvX3B3bSA9IGNucF9oel90b19wd207Cj4+ID4gIAl9IGVsc2UgaWYgKEhBU19QQ0hf TFBUKGRldl9wcml2KSB8fCBIQVNfUENIX1NQVChkZXZfcHJpdikgfHwKPj4gPiAgCQkgICBIQVNf UENIX0tCUChkZXZfcHJpdikpIHsKPj4gPiAgCQlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0gbHB0 X3NldHVwX2JhY2tsaWdodDsKPj4gCj4KCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3Vy Y2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==