From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 4/5] drm/i915: Add DCS control for Panel PWM Date: Tue, 29 Mar 2016 15:38:46 +0300 Message-ID: <87shz931d5.fsf@intel.com> References: <1459157997-4447-1-git-send-email-m.deepak@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 68FB06E647 for ; Tue, 29 Mar 2016 12:38:49 +0000 (UTC) In-Reply-To: <1459157997-4447-1-git-send-email-m.deepak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Deepak M , Daniel Vetter , Yetunde Adebisi List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyOCBNYXIgMjAxNiwgRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4gd3JvdGU6 Cj4gSWYgdGhlIHNvdXJjZSBvZiB0aGUgYmFja2xpZ2h0IFBXTSBpcyBmcm9tIHRoZQo+IHBhbmVs IHRoZW4gdGhlIFBXTSBjYW4gYmUgY29udHJvbGxlZCBieSBEQ1MKPiBjb21tYW5kLCB0aGlzIHBh dGNoIGFkZHMgdGhlIHN1cHBvcnQgdG8KPiBlbmFibGUvZGlzYmFsZSBwYW5lbCBQV00sIGNvbnRy b2wgYmFja2xpZ2h0IGxldmVsCj4gZXRjLi4uCj4KPiB2MjogTW92aW5nIHRoZSBDQUJDIGJrbCBm dW5jdGlvbnMgdG8gbmV3IGZpbGUuKEphbmkpCj4KPiB2MzogUmViYXNlCj4KPiB2NDogUmViYXNl Cj4KPiB2NTogVXNlIG1pcGlfZHNpX2Rjc193cml0ZSgpIGluc3RlYWQgb2YgbWlwaV9kc2lfZGNz X3dyaXRlX2J1ZmZlcigpIChKYW5pKQo+ICAgICBNb3ZlIERDUyBtYWNyb2BzIHRvIGluY2x1ZGUv dmlkZW8vbWlwaV9kaXNwbGF5LmggKEphbmkpCj4KPiB2NjogUmVuYW1lIHRoZSBmaWxlIHRvIGlu dGVsX2RzaV9wYW5lbF9wd20uYwo+ICAgICBSZW1vdmluZyB0aGUgQ0FCQyBvcGVyYXRpb25zCgpJ IGRpZCBub3QgYXNrIGZvciB0aGUgcmVuYW1lLiBNYXliZSB0aGUgb3JpZ2luYWwgb25lIHdhc24n dCBnb29kLCBidXQKeW91ciBzdWdnZXN0ZWQgbmFtZSBpcyB3b3JzZSB0aGFuIHRoZSBvcmlnaW5h bC4gTm93IGl0IGNvbmZsYXRlcyBtYXR0ZXJzCndpdGggdGhlIFBXTSBpbmZyYXN0dWN0dXJlIGNv bnRyb2xsZWQgYmFja2xpZ2h0IGluIGludGVsX3BhbmVsLmMsIHdoaWxlCnRoaXMgZmlsZSBpcyBh Ym91dCBEU0kgRENTIGNvbnRyb2xsZWQgYmFja2xpZ2h0LiBIb3dldmVyIGludGVsX2RzaV9kY3Mu Ywp3b3VsZCAqbm90KiBiZSBnb29kLCBiZWNhdXNlIHRoaXMgaXMgYWJvdXQgYmFja2xpZ2h0IGNv bnRyb2wuCgpQbGVhc2UgcmVuYW1lIHRvIGludGVsX2RzaV9kY3NfYmFja2xpZ2h0LmMgaW5zdGVh ZC4KCkkgb25seSBnb3QgcGF0Y2hlcyAyLzUgYW5kIDQvNS4gUGxlYXNlIHJlc2VuZCB0aGUgZnVs bCBzZXJpZXMgYXMgb25lCnRocmVhZC4gSSB3b24ndCByZXZpZXcgdGhpcyBmdXJ0aGVyIGJlZm9y ZSB0aGF0LgoKQlIsCkphbmkuCgo+Cj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRl bC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+IENj OiBZZXR1bmRlIEFkZWJpc2kgPHlldHVuZGV4LmFkZWJpc2lAaW50ZWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IERlZXBhayBNIDxtLmRlZXBha0BpbnRlbC5jb20+Cj4gLS0tCj4KPiBTaG91bGQgdGhp cyBiZWxvdyBjaGVjayBiZSBtb3ZlZCB0byBpbnRlbF9wYW5lbC5jIGJlZm9yZSBjYWxsaW5nIHRo ZQo+IGludGVsX2RzaV9wYW5lbF9wd21faW5pdF9iYWNrbGlnaHRfZnVuY3MoKSA/Pwo+ICAgICAg IAo+IAkgaWYgKGRldl9wcml2LT52YnQuYmFja2xpZ2h0LnB3bV9waW4gPT0KPiAgICAgICAgICAg ICAgICAgICAgICAgIEJMQ19DT05UUk9MX1BJTl9QQU5FTF9QV00pCj4KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAxICsKPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgICAxIC0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggICAgICAgICAgIHwgICAyICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHNpLmMgICAgICAgICAgIHwgIDI0ICsrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RzaS5oICAgICAgICAgICB8ICAgNCArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaV9wYW5lbF9wd20uYyB8IDE2MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jICAgICAgICAgfCAgIDQgKwo+ICA3 IGZpbGVzIGNoYW5nZWQsIDE5MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVsX3B3bS5j Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+IGluZGV4IDdmZmI1MWIuLjkyYWJiZWUgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZQo+IEBAIC04Myw2ICs4Myw3IEBAIGk5MTUteSArPSBkdm9fY2g3MDE3 Lm8gXAo+ICAJICBpbnRlbF9kcF9tc3QubyBcCj4gIAkgIGludGVsX2RwLm8gXAo+ICAJICBpbnRl bF9kc2kubyBcCj4gKwkgIGludGVsX2RzaV9wYW5lbF9wd20ubyBcCj4gIAkgIGludGVsX2RzaV9w YW5lbF92YnQubyBcCj4gIAkgIGludGVsX2RzaV9wbGwubyBcCj4gIAkgIGludGVsX2R2by5vIFwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCAzMDMyMWU2Li43ZDYxMThkIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTM0OTEsNyArMzQ5MSw2IEBAIHZvaWQgaW50ZWxf c2JpX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTE2IHJlZywgdTMy IHZhbHVlLAo+ICAJCSAgICAgZW51bSBpbnRlbF9zYmlfZGVzdGluYXRpb24gZGVzdGluYXRpb24p Owo+ICB1MzIgdmx2X2ZsaXNkc2lfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIHUzMiByZWcpOwo+ICB2b2lkIHZsdl9mbGlzZHNpX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgdTMyIHJlZywgdTMyIHZhbCk7Cj4gLQo+ICBpbnQgaW50ZWxfZ3B1 X2ZyZXEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmFsKTsKPiAgaW50 IGludGVsX2ZyZXFfb3Bjb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50 IHZhbCk7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMDJhNzRiMC4uMDYw M2M5ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTEzMzAsNiArMTMzMCw4 IEBAIHZvaWQgaW50ZWxfZHBfbXN0X2VuY29kZXJfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCk7Cj4gIC8qIGludGVsX2RzaS5jICovCj4gIHZvaWQgaW50 ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIAo+ICsvKiBpbnRlbF9kc2lf cGFuZWxfcHdtLmMgKi8KPiAraW50IGludGVsX2RzaV9wYW5lbF9wd21faW5pdF9iYWNrbGlnaHRf ZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKTsKPiAgCj4gIC8q IGludGVsX2R2by5jICovCj4gIHZvaWQgaW50ZWxfZHZvX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBpbmRleCA0NTY2NzZjLi4xYmE3NTdh IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBAQCAtMTIwOSwxMCArMTIwOSwzMCBA QCB2b2lkIGludGVsX2RzaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAllbHNlCj4g IAkJaW50ZWxfZW5jb2Rlci0+Y3J0Y19tYXNrID0gQklUKFBJUEVfQik7Cj4gIAo+IC0JaWYgKGRl dl9wcml2LT52YnQuZHNpLmNvbmZpZy0+ZHVhbF9saW5rKQo+ICsJaWYgKGRldl9wcml2LT52YnQu ZHNpLmNvbmZpZy0+ZHVhbF9saW5rKSB7Cj4gIAkJaW50ZWxfZHNpLT5wb3J0cyA9IEJJVChQT1JU X0EpIHwgQklUKFBPUlRfQyk7Cj4gLQllbHNlCj4gKwo+ICsJCS8qCj4gKwkJICogQmFzZWQgb24g dGhlIFZCVCB2YWx1ZSBhc3NpZ24gdGhlIHBvcnRzIG9uCj4gKwkJICogd2hpY2ggUGFuZWwgUFdN IE9uL09GRiBEQ1MgY29vbWFuZHMgbmVlZHMgdG8gYmUgc2VudAo+ICsJCSAqLwo+ICsJCXN3aXRj aCAoZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5kbF9wYW5lbF9wd21fcG9ydHMpIHsKPiArCQlj YXNlIFBBTkVMX1BXTV9QT1JUX0E6Cj4gKwkJCWludGVsX2RzaS0+cGFuZWxfcHdtX2Rjc19wb3J0 cyA9IEJJVChQT1JUX0EpOwo+ICsJCQlicmVhazsKPiArCQljYXNlIFBBTkVMX1BXTV9QT1JUX0M6 Cj4gKwkJCWludGVsX2RzaS0+cGFuZWxfcHdtX2Rjc19wb3J0cyA9IEJJVChQT1JUX0MpOwo+ICsJ CQlicmVhazsKPiArCQljYXNlIFBBTkVMX1BXTV9QT1JUX0FfQU5EX0M6Cj4gKwkJCWludGVsX2Rz aS0+cGFuZWxfcHdtX2Rjc19wb3J0cyA9IEJJVChQT1JUX0EpIHwgQklUKFBPUlRfQyk7Cj4gKwkJ CWJyZWFrOwo+ICsJCWRlZmF1bHQ6Cj4gKwkJCWludGVsX2RzaS0+cGFuZWxfcHdtX2Rjc19wb3J0 cyA9IEJJVChQT1JUX0EpIHwgQklUKFBPUlRfQyk7Cj4gKwkJfQo+ICsJfSBlbHNlIHsKPiAgCQlp bnRlbF9kc2ktPnBvcnRzID0gQklUKHBvcnQpOwo+ICsJCWludGVsX2RzaS0+cGFuZWxfcHdtX2Rj c19wb3J0cyA9IEJJVChwb3J0KTsKPiArCX0KPiAgCj4gIAkvKiBDcmVhdGUgYSBEU0kgaG9zdCAo YW5kIGEgZGV2aWNlKSBmb3IgZWFjaCBwb3J0LiAqLwo+ICAJZm9yX2VhY2hfZHNpX3BvcnQocG9y dCwgaW50ZWxfZHNpLT5wb3J0cykgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2kuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCj4gaW5kZXgg ZjU0NzQ4ZC4uZGNkMjI2NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kc2kuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCj4gQEAgLTM0 LDYgKzM0LDEwIEBACj4gICNkZWZpbmUgRFNJX0RVQUxfTElOS19GUk9OVF9CQUNLCTEKPiAgI2Rl ZmluZSBEU0lfRFVBTF9MSU5LX1BJWEVMX0FMVAkJMgo+ICAKPiArI2RlZmluZSBQQU5FTF9QV01f UE9SVF9BCQkweDAwCj4gKyNkZWZpbmUgUEFORUxfUFdNX1BPUlRfQwkJMHgwMQo+ICsjZGVmaW5l IFBBTkVMX1BXTV9QT1JUX0FfQU5EX0MJCTB4MDIKPiArCj4gIHN0cnVjdCBpbnRlbF9kc2lfaG9z dDsKPiAgCj4gIHN0cnVjdCBpbnRlbF9kc2kgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2lfcGFuZWxfcHdtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kc2lfcGFuZWxfcHdtLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAu LjRkN2YwZWIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHNpX3BhbmVsX3B3bS5jCj4gQEAgLTAsMCArMSwxNjAgQEAKPiArLyoKPiArICogQ29weXJp Z2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KPiArICoKPiArICogUGVybWlzc2lvbiBpcyBo ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK PiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsgKiB0aGUg cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4g KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IChpbmNsdWRpbmcgdGhlIG5leHQKPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBp biBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQo+ICsgKiBTb2Z0d2Fy ZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4g KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu ICBJTiBOTyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwg QVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4gKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K PiArICoKPiArICogQXV0aG9yOiBEZWVwYWsgTSA8bS5kZWVwYWsgYXQgaW50ZWwuY29tPgo+ICsg Ki8KPiArCj4gKyNpbmNsdWRlICJpbnRlbF9kcnYuaCIKPiArI2luY2x1ZGUgImludGVsX2RzaS5o Igo+ICsjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiArI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxh eS5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9taXBpX2RzaS5oPgo+ICsKPiArI2RlZmluZSBQQU5F TF9QV01fQktMX0VOCQkoMSA8PCAyKQo+ICsjZGVmaW5lIFBBTkVMX1BXTV9ESVNQX0RJTU1JTkcJ CSgxIDw8IDMpCj4gKyNkZWZpbmUgUEFORUxfUFdNX0JDVFJMCQkJKDEgPDwgNSkKPiArCj4gKyNk ZWZpbmUgUEFORUxfUFdNX01BWF9WQUxVRQkJMHhGRgo+ICsKPiArc3RhdGljIHUzMiBwYW5lbF9w d21fZ2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sK PiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9yLT5lbmNvZGVyOwo+ ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rl ci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOwo+ICsJdTgg ZGF0YTsKPiArCWVudW0gcG9ydCBwb3J0Owo+ICsKPiArCS8qIEZJWE1FIE5lZWQgdG8gdGFrZSBj YXJlIG9mIDE2IGJpdCBicmlnaHRuZXNzIGxldmVsICovCj4gKwkvKgo+ICsJICogU2VuZGluZyB0 aGUgRENTIGNvbW1hbmRzIHRvIHRoZSBwb3J0cyB0byB3aGljaCBQYW5lbCBQV00KPiArCSAqIE9u L09mZiBjb21tYW5kcyB3ZXJlIHNlbmQKPiArCSAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9y dCwgaW50ZWxfZHNpLT5wYW5lbF9wd21fZGNzX3BvcnRzKSB7Cj4gKwkJZHNpX2RldmljZSA9IGlu dGVsX2RzaS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7Cj4gKwkJbWlwaV9kc2lfZGNzX3JlYWQo ZHNpX2RldmljZSwgTUlQSV9EQ1NfR0VUX0RJU1BMQVlfQlJJR0hUTkVTUywKPiArCQkJCQkmZGF0 YSwgc2l6ZW9mKGRhdGEpKTsKPiArCQlicmVhazsKPiArCX0KPiArCj4gKwlyZXR1cm4gZGF0YTsK PiArfQo+ICsKPiArc3RhdGljIHZvaWQgcGFuZWxfcHdtX3NldF9iYWNrbGlnaHQoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCj4gK3sKPiArCXN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9yLT5lbmNvZGVyOwo+ICsJc3RydWN0IGludGVs X2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlz dHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOwo+ICsJdTggZGF0YTsKPiArCWVudW0g cG9ydCBwb3J0Owo+ICsKPiArCS8qIEZJWE1FIE5lZWQgdG8gdGFrZSBjYXJlIG9mIDE2IGJpdCBi cmlnaHRuZXNzIGxldmVsICovCj4gKwkvKgo+ICsJICogU2VuZGluZyB0aGUgRENTIGNvbW1hbmRz IHRvIHRoZSBwb3J0cyB0byB3aGljaCBQYW5lbCBQV00KPiArCSAqIE9uL09mZiBjb21tYW5kcyB3 ZXJlIHNlbmQKPiArCSAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5w YW5lbF9wd21fZGNzX3BvcnRzKSB7Cj4gKwkJZHNpX2RldmljZSA9IGludGVsX2RzaS0+ZHNpX2hv c3RzW3BvcnRdLT5kZXZpY2U7Cj4gKwkJZGF0YSA9IGxldmVsOwo+ICsJCW1pcGlfZHNpX2Rjc193 cml0ZShkc2lfZGV2aWNlLCBNSVBJX0RDU19TRVRfRElTUExBWV9CUklHSFRORVNTLAo+ICsJCQkJ CSZkYXRhLCBzaXplb2YoZGF0YSkpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBwYW5l bF9wd21fZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5j b2RlcjsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2ko JmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsK PiArCWVudW0gcG9ydCBwb3J0Owo+ICsJdTggZGF0YTsKPiArCj4gKwlwYW5lbF9wd21fc2V0X2Jh Y2tsaWdodChjb25uZWN0b3IsIDApOwo+ICsKPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGlu dGVsX2RzaS0+cGFuZWxfcHdtX2Rjc19wb3J0cykgewo+ICsJCWRzaV9kZXZpY2UgPSBpbnRlbF9k c2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2aWNlOwo+ICsJCWRhdGEgJj0gflBBTkVMX1BXTV9CS0xf RU47IC8qIFR1cm4gT2ZmIEJhY2tsaWdodCAqLwo+ICsJCWRhdGEgJj0gflBBTkVMX1BXTV9ESVNQ X0RJTU1JTkc7IC8qIERpc3BsYXkgRGltbWluZyBPZmYgKi8KPiArCQlkYXRhICY9IH5QQU5FTF9Q V01fQkNUUkw7IC8qIEJyaWdodG5lc3MgY29udHJvbCBCbG9jayBPZmYgKi8KPiArCQltaXBpX2Rz aV9kY3Nfd3JpdGUoZHNpX2RldmljZSwgTUlQSV9EQ1NfV1JJVEVfQ09OVFJPTF9ESVNQTEFZLAo+ ICsJCQkJCSZkYXRhLCBzaXplb2YoZGF0YSkpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBwYW5lbF9wd21fZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9y LT5lbmNvZGVyOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVs X2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNv bm5lY3Rvci0+cGFuZWw7Cj4gKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOwo+ ICsJZW51bSBwb3J0IHBvcnQ7Cj4gKwl1OCBkYXRhOwo+ICsKPiArCWZvcl9lYWNoX2RzaV9wb3J0 KHBvcnQsIGludGVsX2RzaS0+cGFuZWxfcHdtX2Rjc19wb3J0cykgewo+ICsJCWRzaV9kZXZpY2Ug PSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2aWNlOwo+ICsJCWRhdGEgPSBQQU5FTF9Q V01fQktMX0VOIC8qIFR1cm4gb24gYmFja2xpZ2h0ICovCj4gKwkJCXwgUEFORUxfUFdNX0RJU1Bf RElNTUlORyAvKiBEaXNwbGF5IERpbW1pbmcgT24gKi8KPiArCQkJfCBQQU5FTF9QV01fQkNUUkw7 IC8qIEJyaWdodG5lc3MgY29udHJvbCBCbG9jayBPbiAqLwo+ICsJCW1pcGlfZHNpX2Rjc193cml0 ZShkc2lfZGV2aWNlLCBNSVBJX0RDU19XUklURV9DT05UUk9MX0RJU1BMQVksCj4gKwkJCQkJJmRh dGEsIHNpemVvZihkYXRhKSk7Cj4gKwl9Cj4gKwo+ICsJcGFuZWxfcHdtX3NldF9iYWNrbGlnaHQo Y29ubmVjdG9yLCBwYW5lbC0+YmFja2xpZ2h0LmxldmVsKTsKPiArfQo+ICsKPiArc3RhdGljIGlu dCBwYW5lbF9wd21fc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvciwKPiArCQllbnVtIHBpcGUgdW51c2VkKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGFuZWwg KnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gKwo+ICsJcGFuZWwtPmJhY2tsaWdodC5tYXgg PSBQQU5FTF9QV01fTUFYX1ZBTFVFOwo+ICsJLyogQXNzaWduaW5nIHRoZSBNQVggdmFsdWUgZHVy aW5nIHRoZSBzZXR1cCAqLwo+ICsJcGFuZWwtPmJhY2tsaWdodC5sZXZlbCA9IFBBTkVMX1BXTV9N QVhfVkFMVUU7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK2ludCBpbnRlbF9kc2lfcGFu ZWxfcHdtX2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVs X2Nvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2Nvbm5l Y3Rvci0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBpbnRl bF9jb25uZWN0b3ItPmVuY29kZXI7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmlu dGVsX2Nvbm5lY3Rvci0+cGFuZWw7Cj4gKwo+ICsJLyoKPiArCSAqIENvbnRpbnVlIGluaXRhbGl6 aW5nIG9ubHkgaWYgdGhlIFBXTSBzb3VyY2UgaXMKPiArCSAqIGZyb20gdGhlIHBhbmVsCj4gKwkg Ki8KPiArCWlmIChkZXZfcHJpdi0+dmJ0LmJhY2tsaWdodC5wd21fcGluICE9Cj4gKwkJCUJMQ19D T05UUk9MX1BJTl9QQU5FTF9QV00pCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ICsJaWYgKFdB Uk5fT04oZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRFNJKSkKPiArCQlyZXR1cm4gLUVJ TlZBTDsKPiArCj4gKwlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0gcGFuZWxfcHdtX3NldHVwX2Jh Y2tsaWdodDsKPiArCXBhbmVsLT5iYWNrbGlnaHQuZW5hYmxlID0gcGFuZWxfcHdtX2VuYWJsZV9i YWNrbGlnaHQ7Cj4gKwlwYW5lbC0+YmFja2xpZ2h0LmRpc2FibGUgPSBwYW5lbF9wd21fZGlzYWJs ZV9iYWNrbGlnaHQ7Cj4gKwlwYW5lbC0+YmFja2xpZ2h0LnNldCA9IHBhbmVsX3B3bV9zZXRfYmFj a2xpZ2h0Owo+ICsJcGFuZWwtPmJhY2tsaWdodC5nZXQgPSBwYW5lbF9wd21fZ2V0X2JhY2tsaWdo dDsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+ IGluZGV4IDhjODk5NmYuLjQ2Y2EyZGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcGFuZWwuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVs LmMKPiBAQCAtMTcxOCw2ICsxNzE4LDEwIEBAIGludGVsX3BhbmVsX2luaXRfYmFja2xpZ2h0X2Z1 bmNzKHN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwpCj4gIAkJY29udGFpbmVyX29mKHBhbmVsLCBz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yLCBwYW5lbCk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICAKPiArCWlmIChj b25uZWN0b3ItPmJhc2UuY29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0RTSSAm Jgo+ICsJCWludGVsX2RzaV9wYW5lbF9wd21faW5pdF9iYWNrbGlnaHRfZnVuY3MoY29ubmVjdG9y KSA9PSAwKQo+ICsJCXJldHVybjsKPiArCj4gIAlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsK PiAgCQlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0gYnh0X3NldHVwX2JhY2tsaWdodDsKPiAgCQlw YW5lbC0+YmFja2xpZ2h0LmVuYWJsZSA9IGJ4dF9lbmFibGVfYmFja2xpZ2h0OwoKLS0gCkphbmkg TmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK