From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Deepak, M" Subject: Re: [MIPI CABC 2/2] drm/i915: CABC support for backlight control Date: Wed, 23 Mar 2016 10:49:33 +0000 Message-ID: References: <1458625270-29433-1-git-send-email-m.deepak@intel.com> <1458625270-29433-3-git-send-email-m.deepak@intel.com> <87egb2r5bv.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 857EA6E829 for ; Wed, 23 Mar 2016 10:49:47 +0000 (UTC) In-Reply-To: <87egb2r5bv.fsf@intel.com> 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: "Nikula, Jani" , "intel-gfx@lists.freedesktop.org" Cc: "Adebisi, YetundeX" , "Vetter, Daniel" List-Id: intel-gfx@lists.freedesktop.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTmlrdWxhLCBKYW5pDQo+ IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDIyLCAyMDE2IDc6MTkgUE0NCj4gVG86IERlZXBhaywgTSA8 bS5kZWVwYWtAaW50ZWwuY29tPjsgaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBD YzogRGVlcGFrLCBNIDxtLmRlZXBha0BpbnRlbC5jb20+OyBWZXR0ZXIsIERhbmllbA0KPiA8ZGFu aWVsLnZldHRlckBpbnRlbC5jb20+OyBBZGViaXNpLCBZZXR1bmRlWA0KPiA8eWV0dW5kZXguYWRl YmlzaUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbTUlQSSBDQUJDIDIvMl0gZHJtL2k5MTU6 IENBQkMgc3VwcG9ydCBmb3IgYmFja2xpZ2h0IGNvbnRyb2wNCj4gDQo+IE9uIFR1ZSwgMjIgTWFy IDIwMTYsIERlZXBhayBNIDxtLmRlZXBha0BpbnRlbC5jb20+IHdyb3RlOg0KPiA+IEluIENBQkMg KENvbnRlbnQgQWRhcHRpdmUgQnJpZ2h0bmVzcyBDb250cm9sKSBjb250ZW50IGdyZXkgbGV2ZWwg c2NhbGUNCj4gPiBjYW4gYmUgaW5jcmVhc2VkIHdoaWxlIHNpbXVsdGFuZW91c2x5IGRlY3JlYXNp bmcgYnJpZ2h0bmVzcyBvZiB0aGUNCj4gPiBiYWNrbGlnaHQgdG8gYWNoaWV2ZSBzYW1lIHBlcmNl aXZlZCBicmlnaHRuZXNzLg0KPiA+DQo+ID4gVGhlIENBQkMgaXMgbm90IHN0YW5kYXJkaXplZCBh bmQgcGFuZWwgdmVuZG9ycyBhcmUgZnJlZSB0byBmb2xsb3cNCj4gPiB0aGVpciBpbXBsZW1lbnRh dGlvbi4gVGhlIENBQkMgaW1wbGVtZW50YWlvbiBoZXJlIGFzc3VtZXMgdGhhdCB0aGUNCj4gPiBw YW5lbHMgdXNlIHN0YW5kYXJkIFNXIHJlZ2lzdGVyIGZvciBjb250cm9sLg0KPiA+DQo+ID4gSW4g dGhpcyBkZXNpZ24gdGhlcmUgd2lsbCBiZSBubyBQV00gc2lnbmFsIGZyb20gdGhlIFNvQyBhbmQg RENTDQo+ID4gY29tbWFuZHMgYXJlIHNlbnQgdG8gZW5hYmxlIGFuZCBjb250cm9sIHRoZSBiYWNr bGlnaHQgYnJpZ2h0bmVzcy4NCj4gPg0KPiA+IHYyOiBNb3ZpbmcgdGhlIENBQkMgYmtsIGZ1bmN0 aW9ucyB0byBuZXcgZmlsZS4oSmFuaSkNCj4gPg0KPiA+IHYzOiBSZWJhc2UNCj4gPg0KPiA+IHY0 OiBSZWJhc2UNCj4gPg0KPiA+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29t Pg0KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4NCj4gPiBD YzogWWV0dW5kZSBBZGViaXNpIDx5ZXR1bmRleC5hZGViaXNpQGludGVsLmNvbT4NCj4gPiBTaWdu ZWQtb2ZmLWJ5OiBEZWVwYWsgTSA8bS5kZWVwYWtAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgIHwgICAxICsNCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICB8ICAgMiArLQ0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kc2kuYyAgICAgIHwgIDE5ICsrKy0NCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHNpLmggICAgICB8ICAgNCArDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RzaV9jYWJjLmMgfCAxNzkNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jICAgIHwgICA0 ICsNCj4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAyMDYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkgIGNyZWF0ZSBtb2RlDQo+ID4gMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rz aV9jYWJjLmMNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtl ZmlsZQ0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgaW5kZXggN2ZmYjUxYi4u MDY1YzQxMCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQ0K PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlDQo+ID4gQEAgLTgzLDYgKzgz LDcgQEAgaTkxNS15ICs9IGR2b19jaDcwMTcubyBcDQo+ID4gIAkgIGludGVsX2RwX21zdC5vIFwN Cj4gPiAgCSAgaW50ZWxfZHAubyBcDQo+ID4gIAkgIGludGVsX2RzaS5vIFwNCj4gPiArCSAgaW50 ZWxfZHNpX2NhYmMubyBcDQo+ID4gIAkgIGludGVsX2RzaV9wYW5lbF92YnQubyBcDQo+ID4gIAkg IGludGVsX2RzaV9wbGwubyBcDQo+ID4gIAkgIGludGVsX2R2by5vIFwNCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCBpbmRleCAwNTBkODYwLi5kMTk2NDA0IDEwMDY0NA0KPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4gQEAgLTM0ODksNyArMzQ4OSw3IEBAIHZvaWQgaW50ZWxf c2JpX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlDQo+ICpkZXZfcHJpdiwgdTE2IHJlZywg dTMyIHZhbHVlLA0KPiA+ICAJCSAgICAgZW51bSBpbnRlbF9zYmlfZGVzdGluYXRpb24gZGVzdGlu YXRpb24pOw0KPiA+ICB1MzIgdmx2X2ZsaXNkc2lfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIHUzMiByZWcpOw0KPiA+IHZvaWQgdmx2X2ZsaXNkc2lfd3JpdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcmVnLCB1MzINCj4gPiB2YWwpOw0KPiA+ IC0NCj4gPiAraW50IGludGVsX2RzaV9jYWJjX2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBp bnRlbF9jb25uZWN0b3INCj4gPiArKmludGVsX2Nvbm5lY3Rvcik7DQo+IA0KPiBUaGlzIHByb2Jh Ymx5IGZpdHMgYmV0dGVyIGluIGludGVsX2Rydi5oIHVuZGVyIGEgLyogaW50ZWxfZHNpX2NhYmMu YyAqLw0KPiBjb21tZW50LCBzZWUgdGhlIGZpbGUgZm9yIGV4YW1wbGVzLg0KPiANCj4gPiAgaW50 IGludGVsX2dwdV9mcmVxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZh bCk7ICBpbnQNCj4gPiBpbnRlbF9mcmVxX29wY29kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGludCB2YWwpOw0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RzaS5jDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2ku Yw0KPiA+IGluZGV4IDQ1NjY3NmMuLjdhYTcwN2YgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2kuYw0KPiA+IEBAIC0xMjA5LDEwICsxMjA5LDI1IEBAIHZvaWQgaW50ZWxfZHNpX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikNCj4gPiAgCWVsc2UNCj4gPiAgCQlpbnRlbF9lbmNv ZGVyLT5jcnRjX21hc2sgPSBCSVQoUElQRV9CKTsNCj4gPg0KPiA+IC0JaWYgKGRldl9wcml2LT52 YnQuZHNpLmNvbmZpZy0+ZHVhbF9saW5rKQ0KPiA+ICsJaWYgKGRldl9wcml2LT52YnQuZHNpLmNv bmZpZy0+ZHVhbF9saW5rKSB7DQo+ID4gIAkJaW50ZWxfZHNpLT5wb3J0cyA9IEJJVChQT1JUX0Ep IHwgQklUKFBPUlRfQyk7DQo+ID4gLQllbHNlDQo+ID4gKwkJc3dpdGNoIChkZXZfcHJpdi0+dmJ0 LmRzaS5jb25maWctPmRsX2NhYmNfcG9ydCkgew0KPiA+ICsJCWNhc2UgQ0FCQ19QT1JUX0E6DQo+ ID4gKwkJCWludGVsX2RzaS0+YmtsX2Rjc19wb3J0cyA9IEJJVChQT1JUX0EpOw0KPiA+ICsJCQli cmVhazsNCj4gPiArCQljYXNlIENBQkNfUE9SVF9DOg0KPiA+ICsJCQlpbnRlbF9kc2ktPmJrbF9k Y3NfcG9ydHMgPSBCSVQoUE9SVF9DKTsNCj4gPiArCQkJYnJlYWs7DQo+ID4gKwkJY2FzZSBDQUJD X1BPUlRfQV9BTkRfQzoNCj4gPiArCQkJaW50ZWxfZHNpLT5ia2xfZGNzX3BvcnRzID0gQklUKFBP UlRfQSkgfA0KPiBCSVQoUE9SVF9DKTsNCj4gPiArCQkJYnJlYWs7DQo+ID4gKwkJZGVmYXVsdDoN Cj4gPiArCQkJRFJNX0VSUk9SKCJVbmtub3duIE1JUEkgcG9ydHMgZm9yIHNlbmRpbmcNCj4gRENT XG4iKTsNCj4gPiArCQl9DQo+ID4gKwl9IGVsc2Ugew0KPiA+ICAJCWludGVsX2RzaS0+cG9ydHMg PSBCSVQocG9ydCk7DQo+ID4gKwkJaW50ZWxfZHNpLT5ia2xfZGNzX3BvcnRzID0gQklUKHBvcnQp Ow0KPiA+ICsJfQ0KPiA+DQo+ID4gIAkvKiBDcmVhdGUgYSBEU0kgaG9zdCAoYW5kIGEgZGV2aWNl KSBmb3IgZWFjaCBwb3J0LiAqLw0KPiA+ICAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxf ZHNpLT5wb3J0cykgeyBkaWZmIC0tZ2l0DQo+ID4gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kc2kuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oDQo+ID4gaW5kZXggMGU3 NThmMS4uNWMwN2Q1OSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kc2kuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oDQo+ID4g QEAgLTM0LDYgKzM0LDEwIEBADQo+ID4gICNkZWZpbmUgRFNJX0RVQUxfTElOS19GUk9OVF9CQUNL CTENCj4gPiAgI2RlZmluZSBEU0lfRFVBTF9MSU5LX1BJWEVMX0FMVAkJMg0KPiA+DQo+ID4gKyNk ZWZpbmUgQ0FCQ19QT1JUX0EgICAgICAgICAgICAgICAgICAgICAweDAwDQo+ID4gKyNkZWZpbmUg Q0FCQ19QT1JUX0MgICAgICAgICAgICAgICAgICAgICAweDAxDQo+ID4gKyNkZWZpbmUgQ0FCQ19Q T1JUX0FfQU5EX0MgICAgICAgICAgICAgICAweDAyDQo+ID4gKw0KPiA+ICBzdHJ1Y3QgaW50ZWxf ZHNpX2hvc3Q7DQo+ID4NCj4gPiAgc3RydWN0IGludGVsX2RzaSB7DQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMNCj4gPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ IGluZGV4IDAwMDAwMDAuLmQxNGE2NjkNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NhYmMuYw0KPiA+IEBAIC0wLDAgKzEsMTc5IEBA DQo+ID4gKy8qDQo+ID4gKyAqIENvcHlyaWdodCDCqSAyMDA2LTIwMTAgSW50ZWwgQ29ycG9yYXRp b24NCj4gDQo+IDIwMTYNCj4gDQo+ID4gKyAqDQo+ID4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uDQo+ID4gKyBvYnRhaW5pbmcg YQ0KPiA+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlDQo+ID4gKyAiU29mdHdhcmUiKSwNCj4gPiArICogdG8gZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQNCj4gPiAr IGxpbWl0YXRpb24NCj4gPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsDQo+ID4gKyBzdWJsaWNlbnNlLA0KPiA+ICsgKiBhbmQv b3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g d2hvbQ0KPiA+ICsgdGhlDQo+ID4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywg c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6DQo+ID4gKyAqDQo+ID4gKyAqIFRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNs dWRpbmcNCj4gPiArIHRoZSBuZXh0DQo+ID4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVk ZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucw0KPiA+ICsgb2YgdGhlDQo+ ID4gKyAqIFNvZnR3YXJlLg0KPiA+ICsgKg0KPiA+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkNCj4gS0lORCwNCj4gPiArIEVYUFJF U1MgT1INCj4gPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg V0FSUkFOVElFUyBPRg0KPiA+ICsgTUVSQ0hBTlRBQklMSVRZLA0KPiA+ICsgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4NCj4gTk8gRVZF TlQNCj4gPiArIFNIQUxMDQo+ID4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLA0KPiBEQU1BR0VTDQo+ID4gKyBPUiBPVEhFUg0KPiA+ ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S DQo+IE9USEVSV0lTRSwNCj4gPiArIEFSSVNJTkcNCj4gPiArICogRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRQ0KPiBPUg0KPiA+ICsgT1RI RVINCj4gPiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLg0KPiA+ICsgKg0KPiA+ICsgKiBB dXRob3I6IERlZXBhayBNIDxtLmRlZXBhayBhdCBpbnRlbC5jb20+ICovDQo+ID4gKw0KPiA+ICsj aW5jbHVkZSAiaW50ZWxfZHJ2LmgiDQo+ID4gKyNpbmNsdWRlICJpbnRlbF9kc2kuaCINCj4gPiAr I2luY2x1ZGUgImk5MTVfZHJ2LmgiDQo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZHNpLmg+ DQo+ID4gKw0KPiA+ICsjZGVmaW5lIENBQkNfT0ZGICAgICAgICAgICAgICAgICAgICAgICAgKDAg PDwgMCkNCj4gPiArI2RlZmluZSBDQUJDX1VTRVJfSU5URVJGQUNFX0lNQUdFICAgICAgICgxIDw8 IDApDQo+ID4gKyNkZWZpbmUgQ0FCQ19TVElMTF9QSUNUVVJFICAgICAgICAgICAgICAoMiA8PCAw KQ0KPiA+ICsjZGVmaW5lIENBQkNfVklERU9fTU9ERSAgICAgICAgICAgICAgICAgKDMgPDwgMCkN Cj4gPiArDQo+ID4gKyNkZWZpbmUgQ0FCQ19CQUNLTElHSFQgICAgICAgICAgICAgICAgICAoMSA8 PCAyKQ0KPiA+ICsjZGVmaW5lIENBQkNfRElNTUlOR19ESVNQTEFZICAgICAgICAgICAgKDEgPDwg MykNCj4gPiArI2RlZmluZSBDQUJDX0JDVFJMICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUp DQo+ID4gKw0KPiA+ICsjZGVmaW5lIENBQkNfTUFYX1ZBTFVFICAgICAgICAgICAgICAgICAgMHhG Rg0KPiA+ICsNCj4gDQo+IFRoZSBkZWZpbmVzIGJlbG93IHNob3VsZCBiZSBhZGRlZCB0byB0aGUg cmVsZXZhbnQgZW51bSBpbg0KPiBpbmNsdWRlL3ZpZGVvL21pcGlfZGlzcGxheS5oIHVzaW5nIHRo ZSBNSVBJIERDUyBzcGVjaWZpY2F0aW9uIG5hbWVzLiBJJ2xsDQo+IGNvcHkgdGhlbSBiZWxvdy4g UGxlYXNlIGNyZWF0ZSBhIHNlcGFyYXRlIHByZXAgcGF0Y2ggYW5kIHNlbmQgaXQgdG8gZHJpLQ0K PiBkZXZlbC4NCj4gDQo+ID4gKyNkZWZpbmUgTUlQSV9EQ1NfQ0FCQ19MRVZFTF9SRCAgICAgICAg ICAweDUyDQo+IA0KPiBNSVBJX0RDU19HRVRfRElTUExBWV9CUklHSFRORVNTDQo+IA0KPiA+ICsj ZGVmaW5lIE1JUElfRENTX0NBQkNfTUlOX0JSSUdIVE5FU1NfUkQgMHg1Rg0KPiANCj4gTUlQSV9E Q1NfR0VUX0NBQkNfTUlOX0JSSUdIVE5FU1MNCj4gDQo+ID4gKyNkZWZpbmUgTUlQSV9EQ1NfQ0FC Q19DT05UUk9MX1JEICAgICAgICAweDU2DQo+IA0KPiBNSVBJX0RDU19HRVRfUE9XRVJfU0FWRQ0K PiANCj4gPiArI2RlZmluZSBNSVBJX0RDU19DQUJDX0NPTlRST0xfQlJJR0hUX1JEIDB4NTQNCj4g DQo+IE1JUElfRENTX0dFVF9DT05UUk9MX0RJU1BMQVkNCj4gDQo+ID4gKyNkZWZpbmUgTUlQSV9E Q1NfQ0FCQ19MRVZFTF9XUiAgICAgICAgICAweDUxDQo+IA0KPiBNSVBJX0RDU19TRVRfRElTUExB WV9CUklHSFRORVNTDQo+IA0KPiA+ICsjZGVmaW5lIE1JUElfRENTX0NBQkNfTUlOX0JSSUdIVE5F U1NfV1IgMHg1RQ0KPiANCj4gTUlQSV9EQ1NfU0VUX0NBQkNfTUlOX0JSSUdIVE5FU1MNCj4gDQo+ ID4gKyNkZWZpbmUgTUlQSV9EQ1NfQ0FCQ19DT05UUk9MX1dSICAgICAgICAweDU1DQo+IA0KPiBN SVBJX0RDU19XUklURV9QT1dFUl9TQVZFDQo+IA0KPiA+ICsjZGVmaW5lIE1JUElfRENTX0NBQkNf Q09OVFJPTF9CUklHSFRfV1IgMHg1Mw0KPiANCj4gTUlQSV9EQ1NfV1JJVEVfQ09OVFJPTF9ESVNQ TEFZDQo+IA0KPiA+ICsNCj4gPiArc3RhdGljIHUzMiBjYWJjX2dldF9iYWNrbGlnaHQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKSB7DQo+IAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsNCj4gCXN0cnVjdCBpbnRlbF9kc2kgKmludGVs X2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOw0KPiANCj4gU2FtZSBmb3Ig YWxsIGZ1bmN0aW9ucyBiZWxvdy4NCj4gDQo+ID4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2kgPSBOVUxMOw0KPiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBOVUxMOw0K PiA+ICsJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsNCj4gPiArCXU4IGRhdGFb Ml0gPSB7MH07DQo+ID4gKwllbnVtIHBvcnQgcG9ydDsNCj4gPiArDQo+ID4gKwllbmNvZGVyID0g Y29ubmVjdG9yLT5lbmNvZGVyOw0KPiA+ICsJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgm ZW5jb2Rlci0+YmFzZSk7DQo+ID4gKw0KPiA+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50 ZWxfZHNpLT5ia2xfZGNzX3BvcnRzKSB7DQo+ID4gKwkJZHNpX2RldmljZSA9IGludGVsX2RzaS0+ ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7DQo+ID4gKwkJbWlwaV9kc2lfZGNzX3JlYWQoZHNpX2Rl dmljZSwgTUlQSV9EQ1NfQ0FCQ19MRVZFTF9SRCwNCj4gZGF0YSwgMik7DQo+ID4gKwl9DQo+ID4g Kw0KPiA+ICsJcmV0dXJuIGRhdGFbMV07DQo+IA0KPiBIbW0sIGl0J3MgdXAgdG8gdGhlIG1hbnVm YWN0dXJlciB3aGV0aGVyIHRoZSB0aGlzIGlzIDggb3IgMTYgYml0cy4gSSBndWVzcw0KPiB5b3Un cmUganVzdCBhc3N1bWluZyA4IGJpdHM/IEkgd29uZGVyIGlmIHRoaXMgc2hvdWxkIGJlIG1vcmUg Z2VuZXJpYyB3cnQgOCB2cy4NCj4gMTYgYml0cy4NCj4gDQpbRGVlcGFrLCBNXSBOZWVkIHRvIHRo aW5rIG9uIGhvdyB0byBtYWtlIGl0IGdlbmVyaWMgd3J0IDggdnMgMTYgYml0cywgcHJvYmxlbSBo ZXJlIGlzIHRvIHNvbWVob3cgd2UgaGF2ZSB0byBpZGVudGlmeSB0aGUgbm8gb2YgcGFyYW1ldGVy cyBvciB3ZSBoYXZlIHRvIHBhc3MgdGhpcyBpbmZvIGluIFZCVC4uLg0KPiA+ICt9DQo+ID4gKw0K PiA+ICtzdGF0aWMgdm9pZCBjYWJjX3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLCB1MzINCj4gPiArbGV2ZWwpIHsNCj4gPiArCXN0cnVjdCBpbnRlbF9kc2kg KmludGVsX2RzaSA9IE5VTEw7DQo+ID4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9 IE5VTEw7DQo+ID4gKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOw0KPiA+ICsJ dTggZGF0YVsyXSA9IHswfTsNCj4gPiArCWVudW0gcG9ydCBwb3J0Ow0KPiA+ICsNCj4gPiArCWVu Y29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7DQo+ID4gKwlpbnRlbF9kc2kgPSBlbmNfdG9faW50 ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsNCj4gPiArDQo+ID4gKwlmb3JfZWFjaF9kc2lfcG9ydChw b3J0LCBpbnRlbF9kc2ktPmJrbF9kY3NfcG9ydHMpIHsNCj4gPiArCQlkc2lfZGV2aWNlID0gaW50 ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsNCj4gPiArCQlkYXRhWzFdID0gbGV2ZWw7 DQo+ID4gKwkJZGF0YVswXSA9IE1JUElfRENTX0NBQkNfTEVWRUxfV1I7DQo+ID4gKwkJbWlwaV9k c2lfZGNzX3dyaXRlX2J1ZmZlcihkc2lfZGV2aWNlLCBkYXRhLCAyKTsNCj4gDQo+IFBsZWFzZSB1 c2UgbWlwaV9kc2lfZGNzX3dyaXRlKCkuIFNhbWUgZm9yIGFsbCBmdW5jdGlvbnMgYmVsb3cuDQo+ IA0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBjYWJjX2Rpc2FibGVf YmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikNCj4gPiArew0KPiA+ ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gTlVMTDsNCj4gPiArCXN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyID0gTlVMTDsNCj4gPiArCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2Ug KmRzaV9kZXZpY2U7DQo+ID4gKwllbnVtIHBvcnQgcG9ydDsNCj4gPiArCXU4IGRhdGFbMl0gPSB7 MH07DQo+ID4gKw0KPiA+ICsJZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsNCj4gPiArCWlu dGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOw0KPiA+ICsNCj4gPiAr CWNhYmNfc2V0X2JhY2tsaWdodChjb25uZWN0b3IsIDApOw0KPiA+ICsNCj4gPiArCWZvcl9lYWNo X2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+YmtsX2Rjc19wb3J0cykgew0KPiA+ICsJCWRzaV9k ZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2aWNlOw0KPiA+ICsJCWRhdGFb MV0gPSBDQUJDX09GRjsNCj4gPiArCQlkYXRhWzBdID0gTUlQSV9EQ1NfQ0FCQ19DT05UUk9MX1dS Ow0KPiA+ICsJCW1pcGlfZHNpX2Rjc193cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7 DQo+ID4gKwkJZGF0YVswXSA9IE1JUElfRENTX0NBQkNfQ09OVFJPTF9CUklHSFRfV1I7DQo+ID4g KwkJbWlwaV9kc2lfZGNzX3dyaXRlX2J1ZmZlcihkc2lfZGV2aWNlLCBkYXRhLCAyKTsNCj4gPiAr CX0NCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgY2FiY19lbmFibGVfYmFja2xpZ2h0 KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikNCj4gPiArew0KPiA+ICsJc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpID0gTlVMTDsNCj4gPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyID0gTlVMTDsNCj4gPiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29u bmVjdG9yLT5wYW5lbDsNCj4gPiArCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7 DQo+ID4gKwllbnVtIHBvcnQgcG9ydDsNCj4gPiArCXU4IGRhdGFbMl0gPSB7MH07DQo+ID4gKw0K PiA+ICsJZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsNCj4gPiArCWludGVsX2RzaSA9IGVu Y190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOw0KPiA+ICsNCj4gPiArCWZvcl9lYWNoX2Rz aV9wb3J0KHBvcnQsIGludGVsX2RzaS0+YmtsX2Rjc19wb3J0cykgew0KPiA+ICsJCWRzaV9kZXZp Y2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2aWNlOw0KPiA+ICsJCWRhdGFbMF0g PSBNSVBJX0RDU19DQUJDX0NPTlRST0xfQlJJR0hUX1dSOw0KPiA+ICsJCWRhdGFbMV0gPSBDQUJD X0JBQ0tMSUdIVCB8IENBQkNfRElNTUlOR19ESVNQTEFZIHwNCj4gQ0FCQ19CQ1RSTDsNCj4gPiAr CQltaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKGRzaV9kZXZpY2UsIGRhdGEsIDIpOw0KPiA+ICsJ CWRhdGFbMF0gPSBNSVBJX0RDU19DQUJDX0NPTlRST0xfV1I7DQo+ID4gKwkJZGF0YVsxXSA9IENB QkNfU1RJTExfUElDVFVSRTsNCj4gPiArCQltaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKGRzaV9k ZXZpY2UsIGRhdGEsIDIpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWNhYmNfc2V0X2JhY2tsaWdo dChjb25uZWN0b3IsIHBhbmVsLT5iYWNrbGlnaHQubGV2ZWwpOyB9DQo+ID4gKw0KPiA+ICtzdGF0 aWMgaW50IGNhYmNfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvciwNCj4gPiArCQllbnVtIHBpcGUgdW51c2VkKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsNCj4gPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7DQo+ID4gKwlzdHJ1Y3QgaW50 ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7DQo+ID4gKw0KPiA+ICsJaWYgKGRl dl9wcml2LT52YnQuYmFja2xpZ2h0LnByZXNlbnQpDQo+ID4gKwkJcGFuZWwtPmJhY2tsaWdodC5w cmVzZW50ID0gdHJ1ZTsNCj4gPiArCWVsc2Ugew0KPiA+ICsJCURSTV9FUlJPUigibm8gYmFja2xp Z2h0IHByZXNlbnQgcGVyIFZCVFxuIik7DQo+ID4gKwkJcmV0dXJuIDA7DQo+ID4gKwl9DQo+IA0K PiBOb25lIG9mIHRoZSBhYm92ZSBpcyBuZWVkZWQuDQo+IA0KPiBkZXZfcHJpdi0+dmJ0LmJhY2ts aWdodC5wcmVzZW50IGlzIGNoZWNrZWQgaGlnaGVyIGxldmVsIGluDQo+IGludGVsX3BhbmVsX3Nl dHVwX2JhY2tsaWdodCgpLCBhbmQgcGFuZWwtPmJhY2tsaWdodC5wcmVzZW50ID0gdHJ1ZSBpcyBz ZXQNCj4gdGhlcmUgYXMgd2VsbCBpZiB0aGlzIGhvb2sgcmV0dXJucyAwLg0KPiANCj4gPiArDQo+ ID4gKwlwYW5lbC0+YmFja2xpZ2h0Lm1heCA9IENBQkNfTUFYX1ZBTFVFOw0KPiA+ICsJcGFuZWwt PmJhY2tsaWdodC5sZXZlbCA9IENBQkNfTUFYX1ZBTFVFOw0KPiA+ICsNCj4gPiArCXJldHVybiAw Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpbnQgaW50ZWxfZHNpX2NhYmNfaW5pdF9iYWNrbGlnaHRf ZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3Rvcg0KPiA+ICsqaW50ZWxfY29ubmVjdG9yKSB7DQo+ ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfY29ubmVjdG9yLT5iYXNlLmRldjsN Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7DQo+ID4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGludGVsX2Nvbm5lY3Rv ci0+ZW5jb2RlcjsNCj4gPiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmaW50ZWxfY29u bmVjdG9yLT5wYW5lbDsNCj4gPiArDQo+ID4gKwlpZiAoIWRldl9wcml2LT52YnQuZHNpLmNvbmZp Zy0+Y2FiY19zdXBwb3J0ZWQpDQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+IA0KPiAtRU5PREVW IHNlZW1zIG1vcmUgYXBwcm9wcmlhdGUuDQo+IA0KPiA+ICsNCj4gPiArCWlmIChlbmNvZGVyLT50 eXBlICE9IElOVEVMX09VVFBVVF9EU0kpIHsNCj4gPiArCQlEUk1fRVJST1IoIlVzZSBEU0kgZW5j b2RlciBmb3IgQ0FCQ1xuIik7DQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKwl9DQo+IA0K PiAJaWYgKFdBUk5fT04oZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRFNJKSkNCj4gCQly ZXR1cm4gLUVJTlZBTDsNCj4gDQo+ID4gKw0KPiA+ICsJcGFuZWwtPmJhY2tsaWdodC5zZXR1cCA9 IGNhYmNfc2V0dXBfYmFja2xpZ2h0Ow0KPiA+ICsJcGFuZWwtPmJhY2tsaWdodC5lbmFibGUgPSBj YWJjX2VuYWJsZV9iYWNrbGlnaHQ7DQo+ID4gKwlwYW5lbC0+YmFja2xpZ2h0LmRpc2FibGUgPSBj YWJjX2Rpc2FibGVfYmFja2xpZ2h0Ow0KPiA+ICsJcGFuZWwtPmJhY2tsaWdodC5zZXQgPSBjYWJj X3NldF9iYWNrbGlnaHQ7DQo+ID4gKwlwYW5lbC0+YmFja2xpZ2h0LmdldCA9IGNhYmNfZ2V0X2Jh Y2tsaWdodDsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jDQo+ID4gYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wYW5lbC5jDQo+ID4gaW5kZXggOGM4OTk2Zi4uMGY5YmY4MCAxMDA2NDQN Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jDQo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYw0KPiA+IEBAIC0xNzE4LDYgKzE3MTgs MTAgQEAgaW50ZWxfcGFuZWxfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0DQo+IGludGVsX3Bh bmVsICpwYW5lbCkNCj4gPiAgCQljb250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IsIHBhbmVsKTsNCj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7DQo+ID4NCj4gPiArCWlmIChjb25uZWN0b3It PmJhc2UuY29ubmVjdG9yX3R5cGUgPT0NCj4gRFJNX01PREVfQ09OTkVDVE9SX0RTSSAmJg0KPiA+ ICsJCQlpbnRlbF9kc2lfY2FiY19pbml0X2JhY2tsaWdodF9mdW5jcyhjb25uZWN0b3IpID09IDAp DQo+IA0KPiBJbmRlbnRhdGlvbiBpcyBub3QgcXVpdGUgcmlnaHQuDQo+IA0KPiA+ICsJCXJldHVy bjsNCj4gPiArDQo+ID4gIAlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsNCj4gPiAgCQlwYW5l bC0+YmFja2xpZ2h0LnNldHVwID0gYnh0X3NldHVwX2JhY2tsaWdodDsNCj4gPiAgCQlwYW5lbC0+ YmFja2xpZ2h0LmVuYWJsZSA9IGJ4dF9lbmFibGVfYmFja2xpZ2h0Ow0KPiANCj4gLS0NCj4gSmFu aSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyDQpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK