From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH 04/13] drm/i915/cnp: Backlight support for CNP. Date: Thu, 1 Jun 2017 17:43:53 +0000 Message-ID: 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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8D5B56E3DB for ; Thu, 1 Jun 2017 17:43:54 +0000 (UTC) In-Reply-To: <1496334535.2930.142.camel@rdvivi-vienna> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Vivi, Rodrigo" Cc: "Nikula, Jani" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org QmFzZWQgb24geW91ciBjbGFyaWZpY2F0aW9uIHRoZSBzZWNvbmQgb3B0aW9uIGZlZWxzIGxpa2Ug dGhlIHJpZ2h0IGNob2ljZSwgd2l0aCBhIHJlbGV2YW50IGNvbW1lbnQgaW4gY29kZS4gTGlrZSB5 b3Ugc2FpZCwgd2UgZ2V0IHRvIHJldGFpbiBCWFQgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgYW5kIGNs YXJpZnkgdGhhdCB0aGUgcmVnaXN0ZXIgaXMgb24gYSBQQ0ggZm9yIENOUC4gDQoNCi1ESw0KDQot LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogVml2aSwgUm9kcmlnbyANClNlbnQ6IFRo dXJzZGF5LCBKdW5lIDEsIDIwMTcgOToyOSBBTQ0KVG86IFBhbmRpeWFuLCBEaGluYWthcmFuIDxk aGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4NCkNjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnOyBOaWt1bGEsIEphbmkgPGphbmkubmlrdWxhQGludGVsLmNvbT4NClN1YmplY3Q6 IFJlOiBbSW50ZWwtZ2Z4XSBbUEFUQ0ggMDQvMTNdIGRybS9pOTE1L2NucDogQmFja2xpZ2h0IHN1 cHBvcnQgZm9yIENOUC4NCg0KT24gVGh1LCAyMDE3LTA2LTAxIGF0IDAyOjE1ICswMDAwLCBQYW5k aXlhbiwgRGhpbmFrYXJhbiB3cm90ZToNCj4gT24gVHVlLCAyMDE3LTA1LTMwIGF0IDE1OjQyIC0w NzAwLCBSb2RyaWdvIFZpdmkgd3JvdGU6DQo+ID4gU3BsaXQgb3V0IEJYVCBhbmQgQ05QJ3Mgc2V0 dXBfYmFja2xpZ2h0KCksZW5hYmxlX2JhY2tsaWdodCgpLA0KPiA+IGRpc2FibGVfYmFja2xpZ2h0 KCkgYW5kIGh6X3RvX3B3bSgpIGludG8gdHdvIHNlcGFyYXRlIGZ1bmN0aW9ucyANCj4gPiBpbnN0 ZWFkIG9mIHJldXNpbmcgQlhUIGZ1bmN0aW9uLg0KPiA+IA0KPiA+IFJldXNlIHNldF9iYWNrbGln aHQoKSBhbmQgZ2V0X2JhY2tsaWdodCgpIHNpbmNlIHRoZXkgaGF2ZSBubyANCj4gPiByZWZlcmVu Y2UgdG8gdGhlIHV0aWxpdHkgcGluLg0KPiA+IA0KPiA+IHYyOiBSZXVzZSBCWFQgZnVuY3Rpb25z IHdpdGggY29udHJvbGxlciAwIGluc3RlYWQgb2YNCj4gPiAgICAgcmVkZWZpbmluZyBpdC4gKEph bmkpLg0KPiA+ICAgICBVc2UgZGV2X3ByaXYtPnJhd2Nsa19mcmVxIGluc3RlYWQgb2YgZ2V0dGlu ZyB0aGUgdmFsdWUNCj4gPiAgICAgZnJvbSBTRlVTRV9TVFJBUC4NCj4gPiB2MzogQXZvaWQgc2V0 dXAgYmFja2xpZ2ggY29udHJvbGxlciBhbG9uZyB3aXRoIGhvb2tzIGFuZA0KPiA+ICAgICBmdWxs eSByZXVzZSBob29rcyBzZXR1cCBhcyBzdWdnZXN0ZWQgYnkgSmFuaS4NCj4gPiB2NDogQ2xlYW4g dXAgY29tbWl0IG1lc3NhZ2UuDQo+ID4gdjU6IEltcGxlbWVudCBwZXIgUENIIGluc3RlYWQgcGVy IHBsYXRmb3JtLg0KPiA+IA0KPiA+IHY2OiBJbnRyb2R1Y2UgYSBuZXcgZnVuY3Rpb24gZm9yIENO UC4oSmFuaSBhbmQgVmlsbGUpDQo+ID4gDQo+ID4gdjc6IFNxdWFzaCB0aGUgYWxsIENOUCBCYWNr bGlnaHQgc3VwcG9ydCBwYXRjaGVzIGludG8gYSBzaW5nbGUgDQo+ID4gcGF0Y2guIChKYW5pKQ0K PiA+IA0KPiA+IHY4OiBDb3JyZWN0IGluZGVudGF0aW9uLCByZW1vdmUgdW5uZWVkZWQgYmxhbmsg bGluZXMgYW5kIGNvcnJlY3QgDQo+ID4gbWFpbCBhZGRyZXNzIChKYW5pKS4NCj4gPiANCj4gPiB2 OTogUmVtb3ZlIHVudXNlZCBlbnVtIHBpcGUuIChieSBDSSkNCj4gPiANCj4gPiBSZXZpZXdlZC1i eTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4NCj4gPiBTdWdnZXN0ZWQtYnk6 IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+DQo+ID4gU3VnZ2VzdGVkLWJ5OiBW aWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGludGVsLmNvbT4NCj4gPiBDYzogVmlsbGUgU3ly amFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+DQo+ID4gQ2M6IEphbmkgTmlrdWxh IDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogQW51c2hhIFNyaXZh dHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFJvZHJp Z28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyB8IDkzIA0KPiA+ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCsp DQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVs LmMgDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jDQo+ID4gaW5kZXgg YzgxMDNmOC4uN2UzNGExYiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wYW5lbC5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwu Yw0KPiA+IEBAIC03OTYsNiArNzk2LDE5IEBAIHN0YXRpYyB2b2lkIGJ4dF9kaXNhYmxlX2JhY2ts aWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpDQo+ID4gIAl9DQo+ID4gIH0N Cj4gPiAgDQo+ID4gK3N0YXRpYyB2b2lkIGNucF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yIA0KPiA+ICsqY29ubmVjdG9yKSB7DQo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOw0KPiA+ICsJ c3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOw0KPiA+ICsJdTMy IHRtcDsNCj4gPiArDQo+ID4gKwlpbnRlbF9wYW5lbF9hY3R1YWxseV9zZXRfYmFja2xpZ2h0KGNv bm5lY3RvciwgMCk7DQo+ID4gKw0KPiA+ICsJdG1wID0gSTkxNV9SRUFEKEJYVF9CTENfUFdNX0NU TChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpKTsNCj4gPiArCUk5MTVfV1JJVEUoQlhUX0JM Q19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciksDQo+ID4gKwkJICAgdG1wICYg fkJYVF9CTENfUFdNX0VOQUJMRSk7DQo+ID4gK30NCj4gPiArDQo+ID4gIHN0YXRpYyB2b2lkIHB3 bV9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIA0KPiA+ICpjb25uZWN0 b3IpICB7DQo+ID4gIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFu ZWw7IEBAIC0xMDg2LDYgKzEwOTksMzUgDQo+ID4gQEAgc3RhdGljIHZvaWQgYnh0X2VuYWJsZV9i YWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQ0KPiA+ICAJCQlwd21f Y3RsIHwgQlhUX0JMQ19QV01fRU5BQkxFKTsNCj4gPiAgfQ0KPiA+ICANCj4gPiArc3RhdGljIHZv aWQgY25wX2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KSANCj4gPiArew0KPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsNCj4gPiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFu ZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsNCj4gPiArCXUzMiBwd21fY3RsOw0KPiA+ICsNCj4gPiAr CXB3bV9jdGwgPSBJOTE1X1JFQUQoQlhUX0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29u dHJvbGxlcikpOw0KPiANCj4gU2hvdWxkbid0IHRoaXMgYmUgQkxDX1BXTV9QQ0hfQ1RMMT8NCg0K Tm90IHN1cmUuIEFyZSB3ZSBnb2luZyB0bw0KMSkgcmVkZWZpbmUgZXZlcnl0aGluZz8gaW5jbHVk aW5nIGFsbCByZWdpc3RlcnMgYW5kIGJpdCBkZWZpbml0aW9ucyB0aGF0IGFyZSBpZGVudGljYWw/ DQoyKSByZXVzZSBwYXJ0IG9mIENQVSBhbmQgcGFydCBvZiBvbGQgUENIPw0KDQo+IA0KPiBJIHRo aW5rIHJldXNpbmcgQ1BVIHJlZ2lzdGVyIGRlZmluaXRpb25zIGZvciBQQ0ggaXMgY29uZnVzaW5n LiBFdmVuIA0KPiBtb3JlIHNvLCB3aGVuIHdlIGFscmVhZHkgaGF2ZSBzZXBhcmF0ZSBkZWZpbml0 aW9ucyBmb3IgUENILg0KDQpBY3R1YWxseSB0aGUgQlhUIGJhY2tsaWdodCBpbXBsZW1lbnRhdGlv biB3YXMgdXNlZCBvbiBDTlAuIFNvIGFsbCBvZiB0aGlzIHdhcyBtb3ZlZCBmcm9tIENQVSB0byBQ Q0guDQoNCj4gQlNwZWMgc3BlY2lmaWNhbGx5IHJlZmVycyB0byB0aGVzZSByZWdpc3RlcnMgYXMg U0JMQ19QV01fQ1RMMSwgDQo+IFNCTENfUFdNX0ZSRVEgYW5kIFNCTENfUFdNX0RVVFkuDQoNCkkg YmVsaWV2ZSB3ZSB0cmFkaXRpb25hbGx5IHRyeSB0byByZXVzZSByZWdpc3RlcnMgZGVmaW5pdGlv bnMgdGhhdCBhcmUgdGhlcmUgYWxyZWFkeSBpbnN0ZWFkIG9mIHJlZGVmaW5lIGV2ZXJ5dGltZSB0 aGF0IHNwZWMgY2hhbmdlcyB0aGUgbmFtZS4NCg0KRm9yIG1lIGFsbCBvZiB0aGlzIGltcGxlbWVu dGF0aW9uIGlzIG1vcmUgbGlrZSBCWFQgc28gd2Ugc2hvdWxkIHByb2NlZWQgd2l0aCB0aGlzIGZy b20gdGhpcyBwb2ludCBhbmQgb24gYW5kIHJldXNpbmcgYXMgbXVjaCBhcyB3ZSBjYW4uDQoNCkhv d2V2ZXIgZHVyaW5nIHRoZSByZXZpZXcgaXQgd2FzIGRlY2lkZWQgdG8gbm90IHJldXNlIGRpcmVj dGx5IHRoZSBieHQgZnVuY3Rpb25zLi4uIFNvIG5vdyBJJ20gbm90IHN1cmUgaW4gd2hpY2ggcG9p bnQgd2Ugc2hvdWxkIHN0b3AgZHVwbGljYXRpbmcgY29kZSBhbnltb3JlLi4uIA0KDQo+IA0KPiAN Cj4gDQo+IA0KPiA+ICsJaWYgKHB3bV9jdGwgJiBCWFRfQkxDX1BXTV9FTkFCTEUpIHsNCj4gPiAr CQlEUk1fREVCVUdfS01TKCJiYWNrbGlnaHQgYWxyZWFkeSBlbmFibGVkXG4iKTsNCj4gPiArCQlw d21fY3RsICY9IH5CWFRfQkxDX1BXTV9FTkFCTEU7DQo+ID4gKwkJSTkxNV9XUklURShCWFRfQkxD X1BXTV9DVEwocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSwNCj4gPiArCQkJICAgcHdtX2N0 bCk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJSTkxNV9XUklURShCWFRfQkxDX1BXTV9GUkVRKHBh bmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciksDQo+ID4gKwkJICAgcGFuZWwtPmJhY2tsaWdodC5t YXgpOw0KPiA+ICsNCj4gPiArCWludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQoY29u bmVjdG9yLCANCj4gPiArcGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7DQo+ID4gKw0KPiA+ICsJcHdt X2N0bCA9IDA7DQo+ID4gKwlpZiAocGFuZWwtPmJhY2tsaWdodC5hY3RpdmVfbG93X3B3bSkNCj4g PiArCQlwd21fY3RsIHw9IEJYVF9CTENfUFdNX1BPTEFSSVRZOw0KPiA+ICsNCj4gPiArCUk5MTVf V1JJVEUoQlhUX0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciksIHB3bV9j dGwpOw0KPiA+ICsJUE9TVElOR19SRUFEKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0 LmNvbnRyb2xsZXIpKTsNCj4gPiArCUk5MTVfV1JJVEUoQlhUX0JMQ19QV01fQ1RMKHBhbmVsLT5i YWNrbGlnaHQuY29udHJvbGxlciksDQo+ID4gKwkJICAgcHdtX2N0bCB8IEJYVF9CTENfUFdNX0VO QUJMRSk7IH0NCj4gPiArDQo+ID4gIHN0YXRpYyB2b2lkIHB3bV9lbmFibGVfYmFja2xpZ2h0KHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikgIA0KPiA+IHsNCj4gPiAgCXN0cnVjdCBp bnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsgQEAgLTEyNTAsNiArMTI5Miwx OCANCj4gPiBAQCB2b2lkIGludGVsX2JhY2tsaWdodF9kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yIA0KPiA+ICpjb25uZWN0b3IpICAjZW5kaWYgLyogQ09ORklHX0JBQ0tM SUdIVF9DTEFTU19ERVZJQ0UgKi8NCj4gPiAgDQo+ID4gIC8qDQo+ID4gKyAqIENOUDogUFdNIGNs b2NrIGZyZXF1ZW5jeSBpcyAxOS4yIE1IeiBvciAyNCBNSHouDQo+ID4gKyAqICAgICAgVmFsdWUg aXMgZm91bmQgaW4gU0ZVU0VfU1RSQVAuDQo+ID4gKyAqICAgICAgUFdNIGluY3JlbWVudCA9IDEN Cj4gPiArICovDQo+ID4gK3N0YXRpYyB1MzIgY25wX2h6X3RvX3B3bShzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IsIHUzMiANCj4gPiArcHdtX2ZyZXFfaHopIHsNCj4gPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRl dik7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKEtIeihkZXZfcHJpdi0+ cmF3Y2xrX2ZyZXEpLCBwd21fZnJlcV9oeik7IA0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKg0KPiA+ ICAgKiBCWFQ6IFBXTSBjbG9jayBmcmVxdWVuY3kgPSAxOS4yIE1Iei4NCj4gPiAgICovDQo+ID4g IHN0YXRpYyB1MzIgYnh0X2h6X3RvX3B3bShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IsIHUzMiANCj4gPiBwd21fZnJlcV9oeikgQEAgLTE2NDQsNiArMTY5OCwzNyBAQCBzdGF0aWMg aW50IHZsdl9zZXR1cF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y LCBlbnVtIHBpcGUgcGlwZQ0KPiA+ICAJcmV0dXJuIDA7DQo+ID4gIH0NCj4gPiAgDQo+ID4gK3N0 YXRpYyBpbnQNCj4gPiArY25wX3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IsIGVudW0gcGlwZSANCj4gPiArdW51c2VkKSB7DQo+ID4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOw0K PiA+ICsJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOw0KPiA+ ICsJdTMyIHB3bV9jdGwsIHZhbDsNCj4gPiArDQo+ID4gKwlwYW5lbC0+YmFja2xpZ2h0LmNvbnRy b2xsZXIgPSBkZXZfcHJpdi0+dmJ0LmJhY2tsaWdodC5jb250cm9sbGVyOw0KPiANCj4gQXJlIHRo ZXJlIGFyZSB0d28gY29udHJvbGxlcnMgaW4gQ05QPyBJIGRpZCBub3QgZmluZCBhbnkgcmVmZXJl bmNlcyBpbiANCj4gQlNwZWMsIGNhbiB5b3UgcGxlYXNlIGNvbmZpcm0/DQoNCldlIG9ubHkgaGF2 ZSBvbmUgY29udHJvbGxlciBvbiBDTlAuIFdlIG1pZ2h0IGhhdmUgbW9yZSBjb21pbmcgc29vbiwg YnV0IGZvciB0aGUgY3VycmVudCBDTlAgcGxhdGZvcm1zIHRoZXJlIGlzIG9ubHkgb25lIGNvbnRy b2xsZXIgYW5kIEkgZG8gYmVsaWV2ZSB3ZSBjb3VsZCBqdXN0IGlnbm9yZSBWQlQgZm9yIG5vdy4g QnV0IHF1ZXN0aW9uIG5vdyBpczoNCg0KMS4gTGVhdmUgYXMgaXMuDQoNCjIuIHNldCB0aGlzIHBh bmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciA9IDA7IGFuZCBtb3ZlIG9uLg0KDQozLiBVc2UgQkxD X1BXTV9QQ0hfQ1RMMSBkaXJlY3RseSBhbmQgIEJYVF9CTENfUFdNX0ZSRVEoMCkgYW5kIF9EVVRZ KDApDQoNCjQuIFVzZSBCTENfUFdNX1BDSF9DVEwxIGRpcmVjdGx5IGFuZCByZWltcGxlbWVudCBT QkxDX1BXTV9GUkVRIGFuZCBTQkxDX1BXTV9EVVRZLg0KDQo1LiBSZWltcGxlbWVudCBTQkxDX1BX TV9DVEwxLCBTQkxDX1BXTV9GUkVRIGFuZCBTQkxDX1BXTV9EVVRZLg0KDQpBbHRob3VnaCA0IG9y IDUgc2VlbXMgdG8gYmUgdGhlIHJpZ2h0IHdheSB0byBnbyBub3cgSSdkIGxpa2UgdG8gaGlnaGxp Z2h0IHRoYXQgbWF5YmUgbmV4dCBQQ0ggY2FuIGJlIG1vcmUgbGlrZSBCWFQgdGhhbiBsaWtlIENO UC4gU28gd2Ugd291bGQgbmVlZCB0byByZWltcGxlbWVudCBldmVyeXRoaW5nIGFnYWluLg0KDQpJ IGhvbmVzdGx5IGRvbid0IG1pbmQgd2hpY2ggb3B0aW9uIHdlIGdvLiBNeSBwb3NpdGlvbiB3YXMg dG8gZnVsbHkgcmV1c2UgQlhUIGFzIEkgaGFkIGluaXRpYWxseSBkb25lLiBCdXQgdGhhdCB3YXMg bmFja2VkLiBTbyBwbGVhc2UganVzdCBsZXQgbWUga25vdyB0aGUgZGlyZWN0aW9uIHRoYXQgSSBw cm92aWRlIHRoZSBwYXRjaCA7KQ0KDQpUaGFua3MsDQpSb2RyaWdvLg0KDQo+IA0KPiANCj4gPiAr DQo+ID4gKwlwd21fY3RsID0gSTkxNV9SRUFEKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xp Z2h0LmNvbnRyb2xsZXIpKTsNCj4gPiArDQo+ID4gKwlwYW5lbC0+YmFja2xpZ2h0LmFjdGl2ZV9s b3dfcHdtID0gcHdtX2N0bCAmIEJYVF9CTENfUFdNX1BPTEFSSVRZOw0KPiA+ICsJcGFuZWwtPmJh Y2tsaWdodC5tYXggPQ0KPiA+ICsJCUk5MTVfUkVBRChCWFRfQkxDX1BXTV9GUkVRKHBhbmVsLT5i YWNrbGlnaHQuY29udHJvbGxlcikpOw0KPiA+ICsNCj4gPiArCWlmICghcGFuZWwtPmJhY2tsaWdo dC5tYXgpDQo+ID4gKwkJcGFuZWwtPmJhY2tsaWdodC5tYXggPSBnZXRfYmFja2xpZ2h0X21heF92 YnQoY29ubmVjdG9yKTsNCj4gPiArDQo+ID4gKwlpZiAoIXBhbmVsLT5iYWNrbGlnaHQubWF4KQ0K PiA+ICsJCXJldHVybiAtRU5PREVWOw0KPiA+ICsNCj4gPiArCXZhbCA9IGJ4dF9nZXRfYmFja2xp Z2h0KGNvbm5lY3Rvcik7DQo+ID4gKwl2YWwgPSBpbnRlbF9wYW5lbF9jb21wdXRlX2JyaWdodG5l c3MoY29ubmVjdG9yLCB2YWwpOw0KPiA+ICsJcGFuZWwtPmJhY2tsaWdodC5sZXZlbCA9IGNsYW1w KHZhbCwgcGFuZWwtPmJhY2tsaWdodC5taW4sDQo+ID4gKwkJCQkgICAgICAgcGFuZWwtPmJhY2ts aWdodC5tYXgpOw0KPiA+ICsNCj4gPiArCXBhbmVsLT5iYWNrbGlnaHQuZW5hYmxlZCA9IHB3bV9j dGwgJiBCWFRfQkxDX1BXTV9FTkFCTEU7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30N Cj4gPiArDQo+ID4gIHN0YXRpYyBpbnQgcHdtX3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IsDQo+ID4gIAkJCSAgICAgICBlbnVtIHBpcGUgcGlwZSkNCj4g PiAgew0KPiA+IEBAIC0xNzYwLDYgKzE4NDUsMTQgQEAgdm9pZCBpbnRlbF9wYW5lbF9kZXN0cm95 X2JhY2tsaWdodChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQ0KPiA+ICAJCXBhbmVs LT5iYWNrbGlnaHQuc2V0ID0gYnh0X3NldF9iYWNrbGlnaHQ7DQo+ID4gIAkJcGFuZWwtPmJhY2ts aWdodC5nZXQgPSBieHRfZ2V0X2JhY2tsaWdodDsNCj4gPiAgCQlwYW5lbC0+YmFja2xpZ2h0Lmh6 X3RvX3B3bSA9IGJ4dF9oel90b19wd207DQo+ID4gKwkJcGFuZWwtPmJhY2tsaWdodC5oel90b19w d20gPSBieHRfaHpfdG9fcHdtOw0KPiBeU3B1cmlvdXMgbGluZS4NCj4gDQo+ID4gKwl9IGVsc2Ug aWYgKEhBU19QQ0hfQ05QKGRldl9wcml2KSkgew0KPiA+ICsJCXBhbmVsLT5iYWNrbGlnaHQuc2V0 dXAgPSBjbnBfc2V0dXBfYmFja2xpZ2h0Ow0KPiA+ICsJCXBhbmVsLT5iYWNrbGlnaHQuZW5hYmxl ID0gY25wX2VuYWJsZV9iYWNrbGlnaHQ7DQo+ID4gKwkJcGFuZWwtPmJhY2tsaWdodC5kaXNhYmxl ID0gY25wX2Rpc2FibGVfYmFja2xpZ2h0Ow0KPiA+ICsJCXBhbmVsLT5iYWNrbGlnaHQuc2V0ID0g Ynh0X3NldF9iYWNrbGlnaHQ7DQo+ID4gKwkJcGFuZWwtPmJhY2tsaWdodC5nZXQgPSBieHRfZ2V0 X2JhY2tsaWdodDsNCj4gPiArCQlwYW5lbC0+YmFja2xpZ2h0Lmh6X3RvX3B3bSA9IGNucF9oel90 b19wd207DQo+ID4gIAl9IGVsc2UgaWYgKEhBU19QQ0hfTFBUKGRldl9wcml2KSB8fCBIQVNfUENI X1NQVChkZXZfcHJpdikgfHwNCj4gPiAgCQkgICBIQVNfUENIX0tCUChkZXZfcHJpdikpIHsNCj4g PiAgCQlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0gbHB0X3NldHVwX2JhY2tsaWdodDsNCj4gDQoN Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=