From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shobhit Kumar Subject: Re: [RFC PATCH 07/12] drm/i915/dsi: switch to drm_panel interface Date: Fri, 23 Jan 2015 16:27:46 +0530 Message-ID: <54C2292A.3060604@linux.intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id C650B6E8A7 for ; Fri, 23 Jan 2015 02:58:11 -0800 (PST) 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: Jani Nikula , intel-gfx@lists.freedesktop.org Cc: Shobhit Kumar , Thierry Reding List-Id: intel-gfx@lists.freedesktop.org T24gMDEvMTYvMjAxNSAwNTo1NyBQTSwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4gUmVwbGFjZSBpbnRl bF9kc2lfZGV2aWNlIGFuZCBpbnRlbF9kc2lfZGV2X29wcyB3aXRoIGRybV9wYW5lbCBhbmQKPiBk cm1fcGFuZWxfZnVuY3MuIFRoZXkgYXJlIGFkZXF1YXRlIGZvciB3aGF0IHdlIGhhdmUgbm93LCBh bmQgaWYgd2UgZW5kCj4gdXAgbmVlZGluZyBtb3JlIHRoYW4gdGhpcyB3ZSBzaG91bGQgaW1wcm92 ZSBkcm1fcGFuZWwuIFRoaXMgd2lsbCBrZWVwIHVzCj4gYmV0dGVyIGFsaWduZWQgd2l0aCB0aGUg ZHJtIGNvcmUgaW5mcmFzdHJ1Y3R1cmUuCj4KPiBUaGUgcGFuZWwgZHJpdmVyIGluaXRpYWxpemF0 aW9uIGNoYW5nZXMgYSBiaXQuIEl0IHN0aWxsIHJlbWFpbnMgaGlkZW91cywKPiBidXQgZml4aW5n IHRoYXQgaXMgYmV5b25kIHRoZSBzY29wZSBoZXJlLgo+Cj4gU2lnbmVkLW9mZi1ieTogSmFuaSBO aWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L0tjb25maWcgICAgICAgICAgICAgICB8ICAgMSArCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2kuYyAgICAgICAgICAgfCAgNjggKysrKysrKy0tLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RzaS5oICAgICAgICAgICB8ICAyNyArLS0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5jIHwgMTc5ICsrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tCj4gICA0IGZpbGVzIGNoYW5nZWQsIDE1NiBpbnNlcnRpb25zKCspLCAxMTkg ZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZp ZyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKPiBpbmRleCA0ZTM5YWIzNGViMWMuLmRh MTk2Y2QwNzI2MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZwo+IEBAIC0xMSw2ICsxMSw3IEBAIGNv bmZpZyBEUk1fSTkxNQo+ICAgCXNlbGVjdCBTSE1FTQo+ICAgCXNlbGVjdCBUTVBGUwo+ICAgCXNl bGVjdCBEUk1fS01TX0hFTFBFUgo+ICsJc2VsZWN0IERSTV9QQU5FTAo+ICAgCSMgaTkxNSBkZXBl bmRzIG9uIEFDUElfVklERU8gd2hlbiBBQ1BJIGlzIGVuYWJsZWQKPiAgIAkjIGJ1dCBmb3Igc2Vs ZWN0IHRvIHdvcmssIG5lZWQgdG8gc2VsZWN0IEFDUElfVklERU8ncyBkZXBlbmRlbmNpZXMsIGlj awo+ICAgCXNlbGVjdCBCQUNLTElHSFRfTENEX1NVUFBPUlQgaWYgQUNQSQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RzaS5jCj4gaW5kZXggZmMyMThiNzc1NGIzLi4xOWE5OTU1ZWFiMGUgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IEBAIC0yNywxOCArMjcsMjAgQEAKPiAgICNpbmNsdWRl IDxkcm0vZHJtX2NydGMuaD4KPiAgICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KPiAgICNpbmNs dWRlIDxkcm0vaTkxNV9kcm0uaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KPiAgICNp bmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gICAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiAgICNpbmNs dWRlICJpbnRlbF9kcnYuaCIKPiAgICNpbmNsdWRlICJpbnRlbF9kc2kuaCIKPiAgICNpbmNsdWRl ICJpbnRlbF9kc2lfY21kLmgiCj4KPiAtLyogdGhlIHN1Yi1lbmNvZGVycyBha2EgcGFuZWwgZHJp dmVycyAqLwo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RzaV9kZXZpY2UgaW50ZWxfZHNp X2RldmljZXNbXSA9IHsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4gKwl1MTYgcGFuZWxfaWQ7 Cj4gKwlzdHJ1Y3QgZHJtX3BhbmVsICogKCppbml0KShzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2ksIHUxNiBwYW5lbF9pZCk7Cj4gK30gaW50ZWxfZHNpX2RyaXZlcnNbXSA9IHsKPiAgIAl7Cj4g ICAJCS5wYW5lbF9pZCA9IE1JUElfRFNJX0dFTkVSSUNfUEFORUxfSUQsCj4gLQkJLm5hbWUgPSAi dmJ0LWdlbmVyaWMtZHNpLXZpZC1tb2RlLWRpc3BsYXkiLAo+IC0JCS5kZXZfb3BzID0gJnZidF9n ZW5lcmljX2RzaV9kaXNwbGF5X29wcywKPiArCQkuaW5pdCA9IHZidF9wYW5lbF9pbml0LAo+ICAg CX0sCj4gICB9Owo+Cj4gQEAgLTIxNCw4ICsyMTYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgCQkJZHBpX3NlbmRfY21k KGludGVsX2RzaSwgVFVSTl9PTiwgRFBJX0xQX01PREVfRU4sIHBvcnQpOwo+ICAgCQltc2xlZXAo MTAwKTsKPgo+IC0JCWlmIChpbnRlbF9kc2ktPmRldi5kZXZfb3BzLT5lbmFibGUpCj4gLQkJCWlu dGVsX2RzaS0+ZGV2LmRldl9vcHMtPmVuYWJsZSgmaW50ZWxfZHNpLT5kZXYpOwo+ICsJCWRybV9w YW5lbF9lbmFibGUoaW50ZWxfZHNpLT5wYW5lbCk7Cj4KPiAgIAkJZm9yX2VhY2hfZHNpX3BvcnQo cG9ydCwgaW50ZWxfZHNpLT5wb3J0cykKPiAgIAkJCXdhaXRfZm9yX2RzaV9maWZvX2VtcHR5KGlu dGVsX2RzaSwgcG9ydCk7Cj4gQEAgLTI1NSw4ICsyNTYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9k c2lfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPgo+ICAgCW1zbGVl cChpbnRlbF9kc2ktPnBhbmVsX29uX2RlbGF5KTsKPgo+IC0JaWYgKGludGVsX2RzaS0+ZGV2LmRl dl9vcHMtPnBhbmVsX3Jlc2V0KQo+IC0JCWludGVsX2RzaS0+ZGV2LmRldl9vcHMtPnBhbmVsX3Jl c2V0KCZpbnRlbF9kc2ktPmRldik7Cj4gKwlkcm1fcGFuZWxfcHJlcGFyZShpbnRlbF9kc2ktPnBh bmVsKTsKPgo+ICAgCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpCj4g ICAJCXdhaXRfZm9yX2RzaV9maWZvX2VtcHR5KGludGVsX2RzaSwgcG9ydCk7Cj4gQEAgLTMyOSw4 ICszMjksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPiAgIAl9Cj4gICAJLyogaWYgZGlzYWJsZSBwYWNrZXRzIGFyZSBzZW50 IGJlZm9yZSBzZW5kaW5nIHNodXRkb3duIHBhY2tldCB0aGVuIGluCj4gICAJICogc29tZSBuZXh0 IGVuYWJsZSBzZXF1ZW5jZSBzZW5kIHR1cm4gb24gcGFja2V0IGVycm9yIGlzIG9ic2VydmVkICov Cj4gLQlpZiAoaW50ZWxfZHNpLT5kZXYuZGV2X29wcy0+ZGlzYWJsZSkKPiAtCQlpbnRlbF9kc2kt PmRldi5kZXZfb3BzLT5kaXNhYmxlKCZpbnRlbF9kc2ktPmRldik7Cj4gKwlkcm1fcGFuZWxfZGlz YWJsZShpbnRlbF9kc2ktPnBhbmVsKTsKPgo+ICAgCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGlu dGVsX2RzaS0+cG9ydHMpCj4gICAJCXdhaXRfZm9yX2RzaV9maWZvX2VtcHR5KGludGVsX2RzaSwg cG9ydCk7Cj4gQEAgLTM5NSw4ICszOTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcG9zdF9k aXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgCXZhbCAmPSB+RFBPVU5J VF9DTE9DS19HQVRFX0RJU0FCTEU7Cj4gICAJSTkxNV9XUklURShEU1BDTEtfR0FURV9ELCB2YWwp Owo+Cj4gLQlpZiAoaW50ZWxfZHNpLT5kZXYuZGV2X29wcy0+ZGlzYWJsZV9wYW5lbF9wb3dlcikK PiAtCQlpbnRlbF9kc2ktPmRldi5kZXZfb3BzLT5kaXNhYmxlX3BhbmVsX3Bvd2VyKCZpbnRlbF9k c2ktPmRldik7Cj4gKwlkcm1fcGFuZWxfdW5wcmVwYXJlKGludGVsX2RzaS0+cGFuZWwpOwo+Cj4g ICAJbXNsZWVwKGludGVsX2RzaS0+cGFuZWxfb2ZmX2RlbGF5KTsKPiAgIAltc2xlZXAoaW50ZWxf ZHNpLT5wYW5lbF9wd3JfY3ljbGVfZGVsYXkpOwo+IEBAIC03NjAsNyArNzU4LDcgQEAgc3RhdGlj IGludCBpbnRlbF9kc2lfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ip Cj4gICAJcmV0dXJuIDE7Cj4gICB9Cj4KPiAtc3RhdGljIHZvaWQgaW50ZWxfZHNpX2Rlc3Ryb3ko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArc3RhdGljIHZvaWQgaW50ZWxfZHNp X2Nvbm5lY3Rvcl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gICB7 Cj4gICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gdG9faW50ZWxf Y29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4KPiBAQCAtNzcwLDggKzc2OCwyMCBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kc2lfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAg CWtmcmVlKGNvbm5lY3Rvcik7Cj4gICB9Cj4KPiArc3RhdGljIHZvaWQgaW50ZWxfZHNpX2VuY29k ZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiArCXN0cnVjdCBp bnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4gKwo+ICsJ aWYgKGludGVsX2RzaS0+cGFuZWwpIHsKPiArCQlkcm1fcGFuZWxfZGV0YWNoKGludGVsX2RzaS0+ cGFuZWwpOwo+ICsJCS8qIFhYWDogTG9naWNhbGx5IHRoaXMgY2FsbCBiZWxvbmdzIGluIHRoZSBw YW5lbCBkcml2ZXIuICovCj4gKwkJZHJtX3BhbmVsX3JlbW92ZShpbnRlbF9kc2ktPnBhbmVsKTsK PiArCX0KPiArCWludGVsX2VuY29kZXJfZGVzdHJveShlbmNvZGVyKTsKPiArfQo+ICsKPiAgIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3MgaW50ZWxfZHNpX2Z1bmNzID0gewo+ IC0JLmRlc3Ryb3kgPSBpbnRlbF9lbmNvZGVyX2Rlc3Ryb3ksCj4gKwkuZGVzdHJveSA9IGludGVs X2RzaV9lbmNvZGVyX2Rlc3Ryb3ksCj4gICB9Owo+Cj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGRy bV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIGludGVsX2RzaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNz ID0gewo+IEBAIC03ODMsNyArNzkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX2hlbHBlcl9mdW5jcyBpbnRlbF9kc2lfY29ubmVjdG9yX2hlbHBlcl9mdW5jcwo+ICAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGludGVsX2RzaV9jb25uZWN0b3Jf ZnVuY3MgPSB7Cj4gICAJLmRwbXMgPSBpbnRlbF9jb25uZWN0b3JfZHBtcywKPiAgIAkuZGV0ZWN0 ID0gaW50ZWxfZHNpX2RldGVjdCwKPiAtCS5kZXN0cm95ID0gaW50ZWxfZHNpX2Rlc3Ryb3ksCj4g KwkuZGVzdHJveSA9IGludGVsX2RzaV9jb25uZWN0b3JfZGVzdHJveSwKPiAgIAkuZmlsbF9tb2Rl cyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKPiAgIH07Cj4KPiBA QCAtNzk0LDkgKzgwNCw4IEBAIHZvaWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4gICAJc3RydWN0IGludGVs X2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yOwo+ICAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3I7Cj4gLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9kZSA9IE5VTEw7 Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqc2NhbiwgKmZpeGVkX21vZGUgPSBOVUxMOwo+ ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gLQljb25zdCBzdHJ1Y3QgaW50ZWxfZHNpX2RldmljZSAqZHNpOwo+ICAgCXVuc2lnbmVkIGlu dCBpOwo+Cj4gICAJRFJNX0RFQlVHX0tNUygiXG4iKTsKPiBAQCAtODUzLDE1ICs4NjIsMTQgQEAg dm9pZCBpbnRlbF9kc2lfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCQlpbnRlbF9k c2ktPnBvcnRzID0gKDEgPDwgUE9SVF9DKTsKPiAgIAl9Cj4KPiAtCWZvciAoaSA9IDA7IGkgPCBB UlJBWV9TSVpFKGludGVsX2RzaV9kZXZpY2VzKTsgaSsrKSB7Cj4gLQkJZHNpID0gJmludGVsX2Rz aV9kZXZpY2VzW2ldOwo+IC0JCWludGVsX2RzaS0+ZGV2ID0gKmRzaTsKPiAtCj4gLQkJaWYgKGRz aS0+ZGV2X29wcy0+aW5pdCgmaW50ZWxfZHNpLT5kZXYpKQo+ICsJZm9yIChpID0gMDsgaSA8IEFS UkFZX1NJWkUoaW50ZWxfZHNpX2RyaXZlcnMpOyBpKyspIHsKPiArCQlpbnRlbF9kc2ktPnBhbmVs ID0gaW50ZWxfZHNpX2RyaXZlcnNbaV0uaW5pdChpbnRlbF9kc2ksCj4gKwkJCQkJCQkgICAgIGlu dGVsX2RzaV9kcml2ZXJzW2ldLnBhbmVsX2lkKTsKPiArCQlpZiAoaW50ZWxfZHNpLT5wYW5lbCkK PiAgIAkJCWJyZWFrOwo+ICAgCX0KPgo+IC0JaWYgKGkgPT0gQVJSQVlfU0laRShpbnRlbF9kc2lf ZGV2aWNlcykpIHsKPiArCWlmICghaW50ZWxfZHNpLT5wYW5lbCkgewo+ICAgCQlEUk1fREVCVUdf S01TKCJubyBkZXZpY2UgZm91bmRcbiIpOwo+ICAgCQlnb3RvIGVycjsKPiAgIAl9Cj4gQEAgLTg4 MSwxMyArODg5LDIzIEBAIHZvaWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPgo+ICAgCWRybV9jb25uZWN0b3JfcmVnaXN0ZXIoY29ubmVjdG9yKTsKPgo+IC0JZml4ZWRf bW9kZSA9IGRzaS0+ZGV2X29wcy0+Z2V0X21vZGVzKCZpbnRlbF9kc2ktPmRldik7Cj4gKwlkcm1f cGFuZWxfYXR0YWNoKGludGVsX2RzaS0+cGFuZWwsIGNvbm5lY3Rvcik7Cj4gKwlkcm1fcGFuZWxf Z2V0X21vZGVzKGludGVsX2RzaS0+cGFuZWwpOwoKU2hvdWxkIGJlIGluc2lkZSB0aGUgY29uZmln IG11dGV4X2xvY2sgYmVsb3cuCgo+ICsKPiArCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25maWcu bXV0ZXgpOwo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShzY2FuLCAmY29ubmVjdG9yLT5wcm9iZWRf bW9kZXMsIGhlYWQpIHsKPiArCQlpZiAoKHNjYW4tPnR5cGUgJiBEUk1fTU9ERV9UWVBFX1BSRUZF UlJFRCkpIHsKPiArCQkJZml4ZWRfbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkZXYsIHNjYW4p Owo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwl9Cj4gKwltdXRleF91bmxvY2soJmRldi0+bW9kZV9j b25maWcubXV0ZXgpOwo+ICsKPiAgIAlpZiAoIWZpeGVkX21vZGUpIHsKPiAgIAkJRFJNX0RFQlVH X0tNUygibm8gZml4ZWQgbW9kZVxuIik7Cj4gICAJCWdvdG8gZXJyOwo+ICAgCX0KPgo+IC0JZml4 ZWRfbW9kZS0+dHlwZSB8PSBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKPiAgIAlpbnRlbF9wYW5l bF9pbml0KCZpbnRlbF9jb25uZWN0b3ItPnBhbmVsLCBmaXhlZF9tb2RlLCBOVUxMKTsKPgo+ICAg CXJldHVybjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+IGluZGV4IDIyZjg3MDM2YTI1Ni4u ZmMwYjJiOGQ5MGYxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rz aS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKPiBAQCAtMzMsMzMg KzMzLDEwIEBACj4gICAjZGVmaW5lIERTSV9EVUFMX0xJTktfRlJPTlRfQkFDSwkxCj4gICAjZGVm aW5lIERTSV9EVUFMX0xJTktfUElYRUxfQUxUCQkyCj4KPiAtc3RydWN0IGludGVsX2RzaV9kZXZp Y2Ugewo+IC0JdW5zaWduZWQgaW50IHBhbmVsX2lkOwo+IC0JY29uc3QgY2hhciAqbmFtZTsKPiAt CWNvbnN0IHN0cnVjdCBpbnRlbF9kc2lfZGV2X29wcyAqZGV2X29wczsKPiAtCXZvaWQgKmRldl9w cml2Owo+IC19Owo+IC0KPiAtc3RydWN0IGludGVsX2RzaV9kZXZfb3BzIHsKPiAtCWJvb2wgKCpp bml0KShzdHJ1Y3QgaW50ZWxfZHNpX2RldmljZSAqZHNpKTsKPiAtCj4gLQl2b2lkICgqcGFuZWxf cmVzZXQpKHN0cnVjdCBpbnRlbF9kc2lfZGV2aWNlICpkc2kpOwo+IC0KPiAtCXZvaWQgKCpkaXNh YmxlX3BhbmVsX3Bvd2VyKShzdHJ1Y3QgaW50ZWxfZHNpX2RldmljZSAqZHNpKTsKPiAtCj4gLQkv KiBUaGlzIGNhbGxiYWNrIG11c3QgYmUgYWJsZSB0byBhc3N1bWUgRFNJIGNvbW1hbmRzIGNhbiBi ZSBzZW50ICovCj4gLQl2b2lkICgqZW5hYmxlKShzdHJ1Y3QgaW50ZWxfZHNpX2RldmljZSAqZHNp KTsKPiAtCj4gLQkvKiBUaGlzIGNhbGxiYWNrIG11c3QgYmUgYWJsZSB0byBhc3N1bWUgRFNJIGNv bW1hbmRzIGNhbiBiZSBzZW50ICovCj4gLQl2b2lkICgqZGlzYWJsZSkoc3RydWN0IGludGVsX2Rz aV9kZXZpY2UgKmRzaSk7Cj4gLQo+IC0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKigqZ2V0X21v ZGVzKShzdHJ1Y3QgaW50ZWxfZHNpX2RldmljZSAqZHNpKTsKPiAtfTsKPiAtCj4gICBzdHJ1Y3Qg aW50ZWxfZHNpIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciBiYXNlOwo+Cj4gLQlzdHJ1Y3Qg aW50ZWxfZHNpX2RldmljZSBkZXY7Cj4gKwlzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbDsKPgo+ICAg CXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmF0dGFjaGVkX2Nvbm5lY3RvcjsKPgo+IEBAIC0xMzAs NiArMTA3LDYgQEAgZXh0ZXJuIHZvaWQgdmx2X2VuYWJsZV9kc2lfcGxsKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKTsKPiAgIGV4dGVybiB2b2lkIHZsdl9kaXNhYmxlX2RzaV9wbGwoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ICAgZXh0ZXJuIHUzMiB2bHZfZ2V0X2RzaV9w Y2xrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgcGlwZV9icHApOwo+Cj4gLWV4 dGVybiBzdHJ1Y3QgaW50ZWxfZHNpX2Rldl9vcHMgdmJ0X2dlbmVyaWNfZHNpX2Rpc3BsYXlfb3Bz Owo+ICtzdHJ1Y3QgZHJtX3BhbmVsICp2YnRfcGFuZWxfaW5pdChzdHJ1Y3QgaW50ZWxfZHNpICpp bnRlbF9kc2ksIHUxNiBwYW5lbF9pZCk7Cj4KPiAgICNlbmRpZiAvKiBfSU5URUxfRFNJX0ggKi8K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5jCj4gaW5kZXggNTYx ZWMyOTgxZGZkLi4yMDRmNTRkZjhmZTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHNpX3BhbmVsX3ZidC5jCj4gQEAgLTI4LDYgKzI4LDcgQEAKPiAgICNpbmNsdWRlIDxkcm0v ZHJtX2NydGMuaD4KPiAgICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KPiAgICNpbmNsdWRlIDxk cm0vaTkxNV9kcm0uaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KPiAgICNpbmNsdWRl IDxsaW51eC9zbGFiLmg+Cj4gICAjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+Cj4gICAj aW5jbHVkZSA8YXNtL2ludGVsLW1pZC5oPgo+IEBAIC0zNyw2ICszOCwxNiBAQAo+ICAgI2luY2x1 ZGUgImludGVsX2RzaS5oIgo+ICAgI2luY2x1ZGUgImludGVsX2RzaV9jbWQuaCIKPgo+ICtzdHJ1 Y3QgdmJ0X3BhbmVsIHsKPiArCXN0cnVjdCBkcm1fcGFuZWwgcGFuZWw7Cj4gKwlzdHJ1Y3QgaW50 ZWxfZHNpICppbnRlbF9kc2k7Cj4gK307Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCB2YnRf cGFuZWwgKnRvX3ZidF9wYW5lbChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKPiArewo+ICsJcmV0 dXJuIGNvbnRhaW5lcl9vZihwYW5lbCwgc3RydWN0IHZidF9wYW5lbCwgcGFuZWwpOwo+ICt9Cj4g Kwo+ICAgI2RlZmluZSBNSVBJX1RSQU5TRkVSX01PREVfU0hJRlQJMAo+ICAgI2RlZmluZSBNSVBJ X1ZJUlRVQUxfQ0hBTk5FTF9TSElGVAkxCj4gICAjZGVmaW5lIE1JUElfUE9SVF9TSElGVAkJCTMK PiBAQCAtMjcyLDE0ICsyODMsMTAzIEBAIHN0YXRpYyB2b2lkIGdlbmVyaWNfZXhlY19zZXF1ZW5j ZShzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGNvbnN0IHU4ICpkYXRhKQo+ICAgCX0KPiAg IH0KPgo+IC1zdGF0aWMgYm9vbCBnZW5lcmljX2luaXQoc3RydWN0IGludGVsX2RzaV9kZXZpY2Ug KmRzaSkKPiArc3RhdGljIGludCB2YnRfcGFuZWxfcHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKPiArewo+ICsJc3RydWN0IHZidF9wYW5lbCAqdmJ0X3BhbmVsID0gdG9fdmJ0X3BhbmVs KHBhbmVsKTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IHZidF9wYW5lbC0+aW50 ZWxfZHNpOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RzaS0+YmFzZS5iYXNl LmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gKwljb25zdCB1OCAqc2VxdWVuY2U7Cj4gKwo+ICsJc2VxdWVuY2UgPSBkZXZfcHJp di0+dmJ0LmRzaS5zZXF1ZW5jZVtNSVBJX1NFUV9BU1NFUlRfUkVTRVRdOwo+ICsJZ2VuZXJpY19l eGVjX3NlcXVlbmNlKGludGVsX2RzaSwgc2VxdWVuY2UpOwo+ICsKPiArCXNlcXVlbmNlID0gZGV2 X3ByaXYtPnZidC5kc2kuc2VxdWVuY2VbTUlQSV9TRVFfSU5JVF9PVFBdOwo+ICsJZ2VuZXJpY19l eGVjX3NlcXVlbmNlKGludGVsX2RzaSwgc2VxdWVuY2UpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW50IHZidF9wYW5lbF91bnByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAq cGFuZWwpCj4gK3sKPiArCXN0cnVjdCB2YnRfcGFuZWwgKnZidF9wYW5lbCA9IHRvX3ZidF9wYW5l bChwYW5lbCk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSB2YnRfcGFuZWwtPmlu dGVsX2RzaTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFz ZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwo+ICsJY29uc3QgdTggKnNlcXVlbmNlOwo+ICsKPiArCXNlcXVlbmNlID0gZGV2X3By aXYtPnZidC5kc2kuc2VxdWVuY2VbTUlQSV9TRVFfREVBU1NFUlRfUkVTRVRdOwo+ICsJZ2VuZXJp Y19leGVjX3NlcXVlbmNlKGludGVsX2RzaSwgc2VxdWVuY2UpOwo+ICsKPiArCXJldHVybiAwOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHZidF9wYW5lbF9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAq cGFuZWwpCj4gK3sKPiArCXN0cnVjdCB2YnRfcGFuZWwgKnZidF9wYW5lbCA9IHRvX3ZidF9wYW5l bChwYW5lbCk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSB2YnRfcGFuZWwtPmlu dGVsX2RzaTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFz ZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwo+ICsJY29uc3QgdTggKnNlcXVlbmNlOwo+ICsKPiArCXNlcXVlbmNlID0gZGV2X3By aXYtPnZidC5kc2kuc2VxdWVuY2VbTUlQSV9TRVFfRElTUExBWV9PTl07Cj4gKwlnZW5lcmljX2V4 ZWNfc2VxdWVuY2UoaW50ZWxfZHNpLCBzZXF1ZW5jZSk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30K PiArCj4gK3N0YXRpYyBpbnQgdmJ0X3BhbmVsX2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqcGFu ZWwpCj4gK3sKPiArCXN0cnVjdCB2YnRfcGFuZWwgKnZidF9wYW5lbCA9IHRvX3ZidF9wYW5lbChw YW5lbCk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSB2YnRfcGFuZWwtPmludGVs X2RzaTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFzZS5k ZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICsJY29uc3QgdTggKnNlcXVlbmNlOwo+ICsKPiArCXNlcXVlbmNlID0gZGV2X3ByaXYt PnZidC5kc2kuc2VxdWVuY2VbTUlQSV9TRVFfRElTUExBWV9PRkZdOwo+ICsJZ2VuZXJpY19leGVj X3NlcXVlbmNlKGludGVsX2RzaSwgc2VxdWVuY2UpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW50IHZidF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFu ZWwpCj4gK3sKPiArCXN0cnVjdCB2YnRfcGFuZWwgKnZidF9wYW5lbCA9IHRvX3ZidF9wYW5lbChw YW5lbCk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSB2YnRfcGFuZWwtPmludGVs X2RzaTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFzZS5k ZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7Cj4gKwo+ICsJaWYgKCFwYW5l bC0+Y29ubmVjdG9yKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCW1vZGUgPSBkcm1fbW9kZV9kdXBs aWNhdGUoZGV2LCBkZXZfcHJpdi0+dmJ0LmxmcF9sdmRzX3ZidF9tb2RlKTsKPiArCWlmICghbW9k ZSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwltb2RlLT50eXBlIHw9IERSTV9NT0RFX1RZUEVfUFJF RkVSUkVEOwo+ICsKPiArCWRybV9tb2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9k ZSk7Cj4gKwo+ICsJcmV0dXJuIDE7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X3BhbmVsX2Z1bmNzIHZidF9wYW5lbF9mdW5jcyA9IHsKPiArCS5kaXNhYmxlID0gdmJ0X3BhbmVs X2Rpc2FibGUsCj4gKwkudW5wcmVwYXJlID0gdmJ0X3BhbmVsX3VucHJlcGFyZSwKPiArCS5wcmVw YXJlID0gdmJ0X3BhbmVsX3ByZXBhcmUsCj4gKwkuZW5hYmxlID0gdmJ0X3BhbmVsX2VuYWJsZSwK PiArCS5nZXRfbW9kZXMgPSB2YnRfcGFuZWxfZ2V0X21vZGVzLAo+ICt9Owo+ICsKPiArc3RydWN0 IGRybV9wYW5lbCAqdmJ0X3BhbmVsX2luaXQoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCB1 MTYgcGFuZWxfaWQpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBjb250 YWluZXJfb2YoZHNpLCBzdHJ1Y3QgaW50ZWxfZHNpLCBkZXYpOwo+ICAgCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFzZS5kZXY7Cj4gICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgbWlwaV9j b25maWcgKm1pcGlfY29uZmlnID0gZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnOwo+ICAgCXN0cnVj dCBtaXBpX3Bwc19kYXRhICpwcHMgPSBkZXZfcHJpdi0+dmJ0LmRzaS5wcHM7Cj4gICAJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSBkZXZfcHJpdi0+dmJ0LmxmcF9sdmRzX3ZidF9tb2Rl Owo+ICsJc3RydWN0IHZidF9wYW5lbCAqdmJ0X3BhbmVsOwo+ICAgCXUzMiBiaXRzX3Blcl9waXhl bCA9IDI0Owo+ICAgCXUzMiB0bHB4X25zLCBleHRyYV9ieXRlX2NvdW50LCBiaXRyYXRlLCB0bHB4 X3VpOwo+ICAgCXUzMiB1aV9udW0sIHVpX2RlbjsKPiBAQCAtMzQ2LDcgKzQ0Niw3IEBAIHN0YXRp YyBib29sIGdlbmVyaWNfaW5pdChzdHJ1Y3QgaW50ZWxfZHNpX2RldmljZSAqZHNpKQo+ICAgCQkJ aWYgKG1pcGlfY29uZmlnLT50YXJnZXRfYnVyc3RfbW9kZV9mcmVxIDwKPiAgIAkJCQkJCQkJY29t cHV0ZWRfZGRyKSB7Cj4gICAJCQkJRFJNX0VSUk9SKCJCdXJzdCBtb2RlIGZyZXEgaXMgbGVzcyB0 aGFuIGNvbXB1dGVkXG4iKTsKPiAtCQkJCXJldHVybiBmYWxzZTsKPiArCQkJCXJldHVybiBOVUxM Owo+ICAgCQkJfQo+Cj4gICAJCQlidXJzdF9tb2RlX3JhdGlvID0gRElWX1JPVU5EX1VQKAo+IEBA IC0zNTYsNyArNDU2LDcgQEAgc3RhdGljIGJvb2wgZ2VuZXJpY19pbml0KHN0cnVjdCBpbnRlbF9k c2lfZGV2aWNlICpkc2kpCj4gICAJCQlwY2xrID0gRElWX1JPVU5EX1VQKHBjbGsgKiBidXJzdF9t b2RlX3JhdGlvLCAxMDApOwo+ICAgCQl9IGVsc2Ugewo+ICAgCQkJRFJNX0VSUk9SKCJCdXJzdCBt b2RlIHRhcmdldCBpcyBub3Qgc2V0XG4iKTsKPiAtCQkJcmV0dXJuIGZhbHNlOwo+ICsJCQlyZXR1 cm4gTlVMTDsKPiAgIAkJfQo+ICAgCX0gZWxzZQo+ICAgCQlidXJzdF9tb2RlX3JhdGlvID0gMTAw Owo+IEBAIC01NTcsNzEgKzY1NywxMiBAQCBzdGF0aWMgYm9vbCBnZW5lcmljX2luaXQoc3RydWN0 IGludGVsX2RzaV9kZXZpY2UgKmRzaSkKPiAgIAlpbnRlbF9kc2ktPnBhbmVsX29mZl9kZWxheSA9 IHBwcy0+cGFuZWxfb2ZmX2RlbGF5IC8gMTA7Cj4gICAJaW50ZWxfZHNpLT5wYW5lbF9wd3JfY3lj bGVfZGVsYXkgPSBwcHMtPnBhbmVsX3Bvd2VyX2N5Y2xlX2RlbGF5IC8gMTA7Cj4KPiAtCXJldHVy biB0cnVlOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBnZW5lcmljX3BhbmVsX3Jlc2V0KHN0cnVj dCBpbnRlbF9kc2lfZGV2aWNlICpkc2kpCj4gLXsKPiAtCXN0cnVjdCBpbnRlbF9kc2kgKmludGVs X2RzaSA9IGNvbnRhaW5lcl9vZihkc2ksIHN0cnVjdCBpbnRlbF9kc2ksIGRldik7Cj4gLQlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHNpLT5iYXNlLmJhc2UuZGV2Owo+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCj4gLQlj aGFyICpzZXF1ZW5jZSA9IGRldl9wcml2LT52YnQuZHNpLnNlcXVlbmNlW01JUElfU0VRX0FTU0VS VF9SRVNFVF07Cj4gLQo+IC0JZ2VuZXJpY19leGVjX3NlcXVlbmNlKGludGVsX2RzaSwgc2VxdWVu Y2UpOwo+IC0KPiAtCXNlcXVlbmNlID0gZGV2X3ByaXYtPnZidC5kc2kuc2VxdWVuY2VbTUlQSV9T RVFfSU5JVF9PVFBdOwo+IC0JZ2VuZXJpY19leGVjX3NlcXVlbmNlKGludGVsX2RzaSwgc2VxdWVu Y2UpOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBnZW5lcmljX2Rpc2FibGVfcGFuZWxfcG93ZXIo c3RydWN0IGludGVsX2RzaV9kZXZpY2UgKmRzaSkKPiAtewo+IC0Jc3RydWN0IGludGVsX2RzaSAq aW50ZWxfZHNpID0gY29udGFpbmVyX29mKGRzaSwgc3RydWN0IGludGVsX2RzaSwgZGV2KTsKPiAt CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFzZS5kZXY7Cj4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0K PiAtCWNoYXIgKnNlcXVlbmNlID0gZGV2X3ByaXYtPnZidC5kc2kuc2VxdWVuY2VbTUlQSV9TRVFf REVBU1NFUlRfUkVTRVRdOwo+IC0KPiAtCWdlbmVyaWNfZXhlY19zZXF1ZW5jZShpbnRlbF9kc2ks IHNlcXVlbmNlKTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgZ2VuZXJpY19lbmFibGUoc3RydWN0 IGludGVsX2RzaV9kZXZpY2UgKmRzaSkKPiAtewo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpID0gY29udGFpbmVyX29mKGRzaSwgc3RydWN0IGludGVsX2RzaSwgZGV2KTsKPiAtCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFzZS5kZXY7Cj4gLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJLyogVGhp cyBpcyBjaGVhdGluZyBhIGJpdCB3aXRoIHRoZSBjbGVhbnVwLiAqLwo+ICsJdmJ0X3BhbmVsID0g ZGV2bV9remFsbG9jKGRldi0+ZGV2LCBzaXplb2YoKnZidF9wYW5lbCksIEdGUF9LRVJORUwpOwo+ Cj4gLQljaGFyICpzZXF1ZW5jZSA9IGRldl9wcml2LT52YnQuZHNpLnNlcXVlbmNlW01JUElfU0VR X0RJU1BMQVlfT05dOwo+ICsJZHJtX3BhbmVsX2luaXQoJnZidF9wYW5lbC0+cGFuZWwpOwo+ICsJ dmJ0X3BhbmVsLT5wYW5lbC5mdW5jcyA9ICZ2YnRfcGFuZWxfZnVuY3M7Cj4gKwlkcm1fcGFuZWxf YWRkKCZ2YnRfcGFuZWwtPnBhbmVsKTsKPgo+IC0JZ2VuZXJpY19leGVjX3NlcXVlbmNlKGludGVs X2RzaSwgc2VxdWVuY2UpOwo+ICsJcmV0dXJuICZ2YnRfcGFuZWwtPnBhbmVsOwoKWW91IGp1c3Qg bWlzc2VkIHZidF9wYW5lbC0+aW50ZWxfZHNpID0gaW50ZWxfZHNpOyBiZWZvcmUgcmV0dXJuaW5n CgpSZWdhcmRzClNob2JoaXQKCj4gICB9Cj4gLQo+IC1zdGF0aWMgdm9pZCBnZW5lcmljX2Rpc2Fi bGUoc3RydWN0IGludGVsX2RzaV9kZXZpY2UgKmRzaSkKPiAtewo+IC0Jc3RydWN0IGludGVsX2Rz aSAqaW50ZWxfZHNpID0gY29udGFpbmVyX29mKGRzaSwgc3RydWN0IGludGVsX2RzaSwgZGV2KTsK PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFzZS5kZXY7Cj4g LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ IC0KPiAtCWNoYXIgKnNlcXVlbmNlID0gZGV2X3ByaXYtPnZidC5kc2kuc2VxdWVuY2VbTUlQSV9T RVFfRElTUExBWV9PRkZdOwo+IC0KPiAtCWdlbmVyaWNfZXhlY19zZXF1ZW5jZShpbnRlbF9kc2ks IHNlcXVlbmNlKTsKPiAtfQo+IC0KPiAtc3RhdGljIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpn ZW5lcmljX2dldF9tb2RlcyhzdHJ1Y3QgaW50ZWxfZHNpX2RldmljZSAqZHNpKQo+IC17Cj4gLQlz dHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBjb250YWluZXJfb2YoZHNpLCBzdHJ1Y3QgaW50 ZWxfZHNpLCBkZXYpOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RzaS0+YmFz ZS5iYXNlLmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gLQo+IC0JZGV2X3ByaXYtPnZidC5sZnBfbHZkc192YnRfbW9kZS0+dHlw ZSB8PSBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKPiAtCXJldHVybiBkZXZfcHJpdi0+dmJ0Lmxm cF9sdmRzX3ZidF9tb2RlOwo+IC19Cj4gLQo+IC1zdHJ1Y3QgaW50ZWxfZHNpX2Rldl9vcHMgdmJ0 X2dlbmVyaWNfZHNpX2Rpc3BsYXlfb3BzID0gewo+IC0JLmluaXQgPSBnZW5lcmljX2luaXQsCj4g LQkucGFuZWxfcmVzZXQgPSBnZW5lcmljX3BhbmVsX3Jlc2V0LAo+IC0JLmRpc2FibGVfcGFuZWxf cG93ZXIgPSBnZW5lcmljX2Rpc2FibGVfcGFuZWxfcG93ZXIsCj4gLQkuZW5hYmxlID0gZ2VuZXJp Y19lbmFibGUsCj4gLQkuZGlzYWJsZSA9IGdlbmVyaWNfZGlzYWJsZSwKPiAtCS5nZXRfbW9kZXMg PSBnZW5lcmljX2dldF9tb2RlcywKPiAtfTsKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=