From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [PATCH 1/2] drm/bridge: Refactor out the panel wrapper from the lvds-encoder bridge. Date: Wed, 3 May 2017 14:53:00 +0530 Message-ID: References: <20170427163601.7313-1-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by gabe.freedesktop.org (Postfix) with ESMTPS id C08136E2E6 for ; Wed, 3 May 2017 09:23:06 +0000 (UTC) In-Reply-To: <20170427163601.7313-1-eric@anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Eric Anholt , dri-devel@lists.freedesktop.org Cc: Yannick Fertre , Thierry Reding , linux-kernel@vger.kernel.org, Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org SGksCgpPbiAwNC8yNy8yMDE3IDEwOjA2IFBNLCBFcmljIEFuaG9sdCB3cm90ZToKPiBNYW55IERS TSBkcml2ZXJzIGhhdmUgY29tbW9uIGNvZGUgdG8gbWFrZSBhIHN0dWIgY29ubmVjdG9yCj4gaW1w bGVtZW50YXRpb24gdGhhdCB3cmFwcyBhIGRybV9wYW5lbC4gIEJ5IHdyYXBwaW5nIHRoZSBwYW5l bCBpbiBhIERSTQo+IGJyaWRnZSwgYWxsIG9mIHRoZSBjb25uZWN0b3IgY29kZSAoaW5jbHVkaW5n IGNhbGxzIGR1cmluZyBlbmNvZGVyCj4gZW5hYmxlL2Rpc2FibGUpIGdvZXMgYXdheS4KPgo+IFNp Z25lZC1vZmYtYnk6IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Cj4gLS0tCj4gIERvY3Vt ZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QgfCAgIDMgKwo+ICBkcml2ZXJzL2dwdS9k cm0vYnJpZGdlL0tjb25maWcgICAgICAgIHwgIDExICstCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlk Z2UvTWFrZWZpbGUgICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2x2ZHMt ZW5jb2Rlci5jIHwgMTU4ICsrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9wYW5lbC5jICAgICAgICB8IDE4OCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gIGluY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCAgICAgICAgICAgICAgfCAg IDggKysKPiAgNiBmaWxlcyBjaGFuZ2VkLCAyMjggaW5zZXJ0aW9ucygrKSwgMTQxIGRlbGV0aW9u cygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYW5lbC5j Cj4KPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdCBi L0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QKPiBpbmRleCBjMDc1YWFkZDcw NzguLjYwZWIzYjQxNzAyYiAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21z LWhlbHBlcnMucnN0Cj4gKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJz dAo+IEBAIC0xNDMsNiArMTQzLDkgQEAgQnJpZGdlIEhlbHBlciBSZWZlcmVuY2UKPiAgLi4ga2Vy bmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMKPiAgICAgOmV4cG9ydDoKPgo+ ICsuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYW5lbC5jCj4gKyAgIDpl eHBvcnQ6Cj4gKwo+ICAuLiBfZHJtX3BhbmVsX2hlbHBlcjoKPgo+ICBQYW5lbCBIZWxwZXIgUmVm ZXJlbmNlCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZyBiL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwo+IGluZGV4IGY2OTY4ZDNiNGI0MS4uYzRkYWNh Mzg3NDNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwo+IEBAIC00LDYgKzQsMTQgQEAgY29u ZmlnIERSTV9CUklER0UKPiAgCWhlbHAKPiAgCSAgQnJpZGdlIHJlZ2lzdHJhdGlvbiBhbmQgbG9v a3VwIGZyYW1ld29yay4KPgo+ICtjb25maWcgRFJNX1BBTkVMX0JSSURHRQo+ICsJZGVmX2Jvb2wg eQo+ICsJZGVwZW5kcyBvbiBEUk1fQlJJREdFCj4gKwlzZWxlY3QgRFJNX0tNU19IRUxQRVIKPiAr CXNlbGVjdCBEUk1fUEFORUwKPiArCWhlbHAKPiArCSAgRFJNIGJyaWRnZSB3cmFwcGVyIG9mIERS TSBwYW5lbHMKPiArCj4gIG1lbnUgIkRpc3BsYXkgSW50ZXJmYWNlIEJyaWRnZXMiCj4gIAlkZXBl bmRzIG9uIERSTSAmJiBEUk1fQlJJREdFCj4KPiBAQCAtMjcsOCArMzUsNyBAQCBjb25maWcgRFJN X0RVTUJfVkdBX0RBQwo+ICBjb25maWcgRFJNX0xWRFNfRU5DT0RFUgo+ICAJdHJpc3RhdGUgIlRy YW5zcGFyZW50IHBhcmFsbGVsIHRvIExWRFMgZW5jb2RlciBzdXBwb3J0Igo+ICAJZGVwZW5kcyBv biBPRgo+IC0Jc2VsZWN0IERSTV9LTVNfSEVMUEVSCj4gLQlzZWxlY3QgRFJNX1BBTkVMCj4gKwlz ZWxlY3QgRFJNX1BBTkVMX0JSSURHRQo+ICAJaGVscAo+ICAJICBTdXBwb3J0IGZvciB0cmFuc3Bh cmVudCBwYXJhbGxlbCB0byBMVkRTIGVuY29kZXJzIHRoYXQgZG9uJ3QgcmVxdWlyZQo+ICAJICBh bnkgY29uZmlndXJhdGlvbi4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9N YWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKPiBpbmRleCAzZmUyMjI2 ZWUyZjIuLjQwYTQzNzUwYWQ1NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQo+IEBAIC01 LDYgKzUsNyBAQCBvYmotJChDT05GSUdfRFJNX0RVTUJfVkdBX0RBQykgKz0gZHVtYi12Z2EtZGFj Lm8KPiAgb2JqLSQoQ09ORklHX0RSTV9MVkRTX0VOQ09ERVIpICs9IGx2ZHMtZW5jb2Rlci5vCj4g IG9iai0kKENPTkZJR19EUk1fTUVHQUNISVBTX1NURFBYWFhYX0dFX0I4NTBWM19GVykgKz0gbWVn YWNoaXBzLXN0ZHB4eHh4LWdlLWI4NTB2My1mdy5vCj4gIG9iai0kKENPTkZJR19EUk1fTlhQX1BU TjM0NjApICs9IG54cC1wdG4zNDYwLm8KPiArb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9CUklER0Up ICs9IHBhbmVsLm8KPiAgb2JqLSQoQ09ORklHX0RSTV9QQVJBREVfUFM4NjIyKSArPSBwYXJhZGUt cHM4NjIyLm8KPiAgb2JqLSQoQ09ORklHX0RSTV9TSUxfU0lJODYyMCkgKz0gc2lsLXNpaTg2MjAu bwo+ICBvYmotJChDT05GSUdfRFJNX1NJSTkwMlgpICs9IHNpaTkwMngubwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2x2ZHMtZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9sdmRzLWVuY29kZXIuYwo+IGluZGV4IGYxZjY3YTI3OTQyNi4uMDRlMTUwNGM0ZDhm IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbHZkcy1lbmNvZGVyLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2x2ZHMtZW5jb2Rlci5jCj4gQEAgLTgsMTQ0ICs4 LDE4IEBACj4gICAqLwo+Cj4gICNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+IC0jaW5jbHVkZSA8ZHJt L2RybV9hdG9taWNfaGVscGVyLmg+Cj4gLSNpbmNsdWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgo+ IC0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+IC0jaW5jbHVkZSA8ZHJtL2RybV9l bmNvZGVyLmg+Cj4gLSNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaD4K PiArI2luY2x1ZGUgPGRybS9kcm1fYnJpZGdlLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVs Lmg+Cj4KPiAgI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+Cj4KPiAtc3RydWN0IGx2ZHNfZW5j b2RlciB7Cj4gLQlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gLQo+IC0Jc3RydWN0IGRybV9icmlkZ2Ug YnJpZGdlOwo+IC0Jc3RydWN0IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOwo+IC0Jc3RydWN0IGRy bV9wYW5lbCAqcGFuZWw7Cj4gLX07Cj4gLQo+IC1zdGF0aWMgaW5saW5lIHN0cnVjdCBsdmRzX2Vu Y29kZXIgKgo+IC1kcm1fYnJpZGdlX3RvX2x2ZHNfZW5jb2RlcihzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKQo+IC17Cj4gLQlyZXR1cm4gY29udGFpbmVyX29mKGJyaWRnZSwgc3RydWN0IGx2ZHNf ZW5jb2RlciwgYnJpZGdlKTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSBzdHJ1Y3QgbHZkc19l bmNvZGVyICoKPiAtZHJtX2Nvbm5lY3Rvcl90b19sdmRzX2VuY29kZXIoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKPiAtewo+IC0JcmV0dXJuIGNvbnRhaW5lcl9vZihjb25uZWN0b3Is IHN0cnVjdCBsdmRzX2VuY29kZXIsIGNvbm5lY3Rvcik7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbnQg bHZkc19jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ip Cj4gLXsKPiAtCXN0cnVjdCBsdmRzX2VuY29kZXIgKmx2ZHMgPSBkcm1fY29ubmVjdG9yX3RvX2x2 ZHNfZW5jb2Rlcihjb25uZWN0b3IpOwo+IC0KPiAtCXJldHVybiBkcm1fcGFuZWxfZ2V0X21vZGVz KGx2ZHMtPnBhbmVsKTsKPiAtfQo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX2hlbHBlcl9mdW5jcyBsdmRzX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7Cj4gLQkuZ2V0 X21vZGVzID0gbHZkc19jb25uZWN0b3JfZ2V0X21vZGVzLAo+IC19Owo+IC0KPiAtc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGx2ZHNfY29ubmVjdG9yX2Z1bmNzID0gewo+ IC0JLmRwbXMgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHBtcywKPiAtCS5yZXNldCA9 IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9yZXNldCwKPiAtCS5maWxsX21vZGVzID0gZHJt X2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAo+IC0JLmRlc3Ryb3kgPSBkcm1f Y29ubmVjdG9yX2NsZWFudXAsCj4gLQkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9t aWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUsCj4gLQkuYXRvbWljX2Rlc3Ryb3lf c3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPiAtfTsK PiAtCj4gLXN0YXRpYyBpbnQgbHZkc19lbmNvZGVyX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKQo+IC17Cj4gLQlzdHJ1Y3QgbHZkc19lbmNvZGVyICpsdmRzID0gZHJtX2JyaWRnZV90 b19sdmRzX2VuY29kZXIoYnJpZGdlKTsKPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IgPSAmbHZkcy0+Y29ubmVjdG9yOwo+IC0JaW50IHJldDsKPiAtCj4gLQlpZiAoIWJyaWRnZS0+ ZW5jb2Rlcikgewo+IC0JCURSTV9FUlJPUigiTWlzc2luZyBlbmNvZGVyXG4iKTsKPiAtCQlyZXR1 cm4gLUVOT0RFVjsKPiAtCX0KPiAtCj4gLQlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVj dG9yLCAmbHZkc19jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKPiAtCj4gLQlyZXQgPSBkcm1fY29u bmVjdG9yX2luaXQoYnJpZGdlLT5kZXYsIGNvbm5lY3RvciwgJmx2ZHNfY29ubmVjdG9yX2Z1bmNz LAo+IC0JCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9MVkRTKTsKPiAtCWlmIChyZXQpIHsKPiAtCQlE Uk1fRVJST1IoIkZhaWxlZCB0byBpbml0aWFsaXplIGNvbm5lY3RvclxuIik7Cj4gLQkJcmV0dXJu IHJldDsKPiAtCX0KPiAtCj4gLQlkcm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoJmx2 ZHMtPmNvbm5lY3RvciwgYnJpZGdlLT5lbmNvZGVyKTsKPiAtCj4gLQlyZXQgPSBkcm1fcGFuZWxf YXR0YWNoKGx2ZHMtPnBhbmVsLCAmbHZkcy0+Y29ubmVjdG9yKTsKPiAtCWlmIChyZXQgPCAwKQo+ IC0JCXJldHVybiByZXQ7Cj4gLQo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lk IGx2ZHNfZW5jb2Rlcl9kZXRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAtewo+IC0J c3RydWN0IGx2ZHNfZW5jb2RlciAqbHZkcyA9IGRybV9icmlkZ2VfdG9fbHZkc19lbmNvZGVyKGJy aWRnZSk7Cj4gLQo+IC0JZHJtX3BhbmVsX2RldGFjaChsdmRzLT5wYW5lbCk7Cj4gLX0KPiAtCj4g LXN0YXRpYyB2b2lkIGx2ZHNfZW5jb2Rlcl9wcmVfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpi cmlkZ2UpCj4gLXsKPiAtCXN0cnVjdCBsdmRzX2VuY29kZXIgKmx2ZHMgPSBkcm1fYnJpZGdlX3Rv X2x2ZHNfZW5jb2RlcihicmlkZ2UpOwo+IC0KPiAtCWRybV9wYW5lbF9wcmVwYXJlKGx2ZHMtPnBh bmVsKTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgbHZkc19lbmNvZGVyX2VuYWJsZShzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlKQo+IC17Cj4gLQlzdHJ1Y3QgbHZkc19lbmNvZGVyICpsdmRzID0g ZHJtX2JyaWRnZV90b19sdmRzX2VuY29kZXIoYnJpZGdlKTsKPiAtCj4gLQlkcm1fcGFuZWxfZW5h YmxlKGx2ZHMtPnBhbmVsKTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgbHZkc19lbmNvZGVyX2Rp c2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAtewo+IC0Jc3RydWN0IGx2ZHNfZW5j b2RlciAqbHZkcyA9IGRybV9icmlkZ2VfdG9fbHZkc19lbmNvZGVyKGJyaWRnZSk7Cj4gLQo+IC0J ZHJtX3BhbmVsX2Rpc2FibGUobHZkcy0+cGFuZWwpOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBs dmRzX2VuY29kZXJfcG9zdF9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gLXsK PiAtCXN0cnVjdCBsdmRzX2VuY29kZXIgKmx2ZHMgPSBkcm1fYnJpZGdlX3RvX2x2ZHNfZW5jb2Rl cihicmlkZ2UpOwo+IC0KPiAtCWRybV9wYW5lbF91bnByZXBhcmUobHZkcy0+cGFuZWwpOwo+IC19 Cj4gLQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgbHZkc19lbmNvZGVy X2JyaWRnZV9mdW5jcyA9IHsKPiAtCS5hdHRhY2ggPSBsdmRzX2VuY29kZXJfYXR0YWNoLAo+IC0J LmRldGFjaCA9IGx2ZHNfZW5jb2Rlcl9kZXRhY2gsCj4gLQkucHJlX2VuYWJsZSA9IGx2ZHNfZW5j b2Rlcl9wcmVfZW5hYmxlLAo+IC0JLmVuYWJsZSA9IGx2ZHNfZW5jb2Rlcl9lbmFibGUsCj4gLQku ZGlzYWJsZSA9IGx2ZHNfZW5jb2Rlcl9kaXNhYmxlLAo+IC0JLnBvc3RfZGlzYWJsZSA9IGx2ZHNf ZW5jb2Rlcl9wb3N0X2Rpc2FibGUsCj4gLX07Cj4gLQo+ICBzdGF0aWMgaW50IGx2ZHNfZW5jb2Rl cl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICB7Cj4gLQlzdHJ1Y3QgbHZk c19lbmNvZGVyICpsdmRzOwo+ICAJc3RydWN0IGRldmljZV9ub2RlICpwb3J0Owo+ICAJc3RydWN0 IGRldmljZV9ub2RlICplbmRwb2ludDsKPiAtCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcGFuZWw7Cj4g LQo+IC0JbHZkcyA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKmx2ZHMpLCBHRlBf S0VSTkVMKTsKPiAtCWlmICghbHZkcykKPiAtCQlyZXR1cm4gLUVOT01FTTsKPiAtCj4gLQlsdmRz LT5kZXYgPSAmcGRldi0+ZGV2Owo+IC0JcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgbHZkcyk7 Cj4gLQo+IC0JbHZkcy0+YnJpZGdlLmZ1bmNzID0gJmx2ZHNfZW5jb2Rlcl9icmlkZ2VfZnVuY3M7 Cj4gLQlsdmRzLT5icmlkZ2Uub2Zfbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOwo+ICsJc3RydWN0 IGRldmljZV9ub2RlICpwYW5lbF9ub2RlOwo+ICsJc3RydWN0IGRybV9wYW5lbCAqcGFuZWw7Cj4g KwlzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlOwo+Cj4gIAkvKiBMb2NhdGUgdGhlIHBhbmVsIERU IG5vZGUuICovCj4gIAlwb3J0ID0gb2ZfZ3JhcGhfZ2V0X3BvcnRfYnlfaWQocGRldi0+ZGV2Lm9m X25vZGUsIDEpOwo+IEBAIC0xNjEsMjkgKzM1LDM1IEBAIHN0YXRpYyBpbnQgbHZkc19lbmNvZGVy X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJcmV0dXJuIC1FTlhJTzsK PiAgCX0KPgo+IC0JcGFuZWwgPSBvZl9ncmFwaF9nZXRfcmVtb3RlX3BvcnRfcGFyZW50KGVuZHBv aW50KTsKPiArCXBhbmVsX25vZGUgPSBvZl9ncmFwaF9nZXRfcmVtb3RlX3BvcnRfcGFyZW50KGVu ZHBvaW50KTsKPiAgCW9mX25vZGVfcHV0KGVuZHBvaW50KTsKPiAtCWlmICghcGFuZWwpIHsKPiAr CWlmICghcGFuZWxfbm9kZSkgewo+ICAJCWRldl9kYmcoJnBkZXYtPmRldiwgIm5vIHJlbW90ZSBl bmRwb2ludCBmb3IgcG9ydCAxXG4iKTsKPiAgCQlyZXR1cm4gLUVOWElPOwo+ICAJfQo+Cj4gLQls dmRzLT5wYW5lbCA9IG9mX2RybV9maW5kX3BhbmVsKHBhbmVsKTsKPiAtCW9mX25vZGVfcHV0KHBh bmVsKTsKPiAtCWlmICghbHZkcy0+cGFuZWwpIHsKPiArCXBhbmVsID0gb2ZfZHJtX2ZpbmRfcGFu ZWwocGFuZWxfbm9kZSk7Cj4gKwlvZl9ub2RlX3B1dChwYW5lbF9ub2RlKTsKPiArCWlmICghcGFu ZWwpIHsKPiAgCQlkZXZfZGJnKCZwZGV2LT5kZXYsICJwYW5lbCBub3QgZm91bmQsIGRlZmVycmlu ZyBwcm9iZVxuIik7Cj4gIAkJcmV0dXJuIC1FUFJPQkVfREVGRVI7Cj4gIAl9Cj4KPiAtCS8qIFJl Z2lzdGVyIHRoZSBicmlkZ2UuICovCj4gLQlyZXR1cm4gZHJtX2JyaWRnZV9hZGQoJmx2ZHMtPmJy aWRnZSk7Cj4gKwlicmlkZ2UgPSBkcm1fcGFuZWxfYnJpZGdlX2FkZCgmcGRldi0+ZGV2LCBwYW5l bCwKPiArCQkJCSAgICAgIERSTV9NT0RFX0NPTk5FQ1RPUl9MVkRTKTsKPiArCWlmIChJU19FUlIo YnJpZGdlKSkKPiArCQlyZXR1cm4gUFRSX0VSUihicmlkZ2UpOwo+ICsKPiArCXBsYXRmb3JtX3Nl dF9kcnZkYXRhKHBkZXYsIGJyaWRnZSk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KPgo+ICBzdGF0 aWMgaW50IGx2ZHNfZW5jb2Rlcl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK PiAgewo+IC0Jc3RydWN0IGx2ZHNfZW5jb2RlciAqZW5jb2RlciA9IHBsYXRmb3JtX2dldF9kcnZk YXRhKHBkZXYpOwo+ICsJc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSA9IHBsYXRmb3JtX2dldF9k cnZkYXRhKHBkZXYpOwo+Cj4gLQlkcm1fYnJpZGdlX3JlbW92ZSgmZW5jb2Rlci0+YnJpZGdlKTsK PiArCWRybV9icmlkZ2VfcmVtb3ZlKGJyaWRnZSk7Cj4KPiAgCXJldHVybiAwOwo+ICB9Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFuZWwuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvcGFuZWwuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAw MDAwLi4yMDgxMjQ1NDU1YzYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9wYW5lbC5jCj4gQEAgLTAsMCArMSwxODggQEAKPiArLyoKPiArICogQ29weXJpZ2h0 IChDKSAyMDE2IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJk LmNvbT4KPiArICogQ29weXJpZ2h0IChDKSAyMDE3IEJyb2FkY29tCj4gKyAqCj4gKyAqIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK PiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMKPiArICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDIgb2YKPiArICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGRybS9kcm1Q Lmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0 b21pY19oZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fY29ubmVjdG9yLmg+Cj4gKyNpbmNs dWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIu aD4KPiArI2luY2x1ZGUgPGRybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oPgo+ICsjaW5j bHVkZSA8ZHJtL2RybV9wYW5lbC5oPgo+ICsKPiArc3RydWN0IHBhbmVsX2JyaWRnZSB7Cj4gKwlz dHJ1Y3QgZHJtX2JyaWRnZSBicmlkZ2U7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gKwlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbDsK PiArCXUzMiBjb25uZWN0b3JfdHlwZTsKPiArfTsKPiArCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0 IHBhbmVsX2JyaWRnZSAqCj4gK2RybV9icmlkZ2VfdG9fcGFuZWxfYnJpZGdlKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UpCj4gK3sKPiArCXJldHVybiBjb250YWluZXJfb2YoYnJpZGdlLCBzdHJ1 Y3QgcGFuZWxfYnJpZGdlLCBicmlkZ2UpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHN0cnVj dCBwYW5lbF9icmlkZ2UgKgo+ICtkcm1fY29ubmVjdG9yX3RvX3BhbmVsX2JyaWRnZShzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlyZXR1cm4gY29udGFpbmVyX29mKGNv bm5lY3Rvciwgc3RydWN0IHBhbmVsX2JyaWRnZSwgY29ubmVjdG9yKTsKPiArfQo+ICsKPiArc3Rh dGljIGludCBwYW5lbF9icmlkZ2VfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgcGFuZWxfYnJpZGdlICpwYW5lbF9icmlk Z2UgPQo+ICsJCWRybV9jb25uZWN0b3JfdG9fcGFuZWxfYnJpZGdlKGNvbm5lY3Rvcik7Cj4gKwo+ ICsJcmV0dXJuIGRybV9wYW5lbF9nZXRfbW9kZXMocGFuZWxfYnJpZGdlLT5wYW5lbCk7Cj4gK30K PiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgcGFu ZWxfYnJpZGdlX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7Cj4gKwkuZ2V0X21vZGVzID0gcGFu ZWxfYnJpZGdlX2Nvbm5lY3Rvcl9nZXRfbW9kZXMsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgcGFuZWxfYnJpZGdlX2Nvbm5lY3Rvcl9mdW5jcyA9 IHsKPiArCS5kcG1zID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2RwbXMsCj4gKwkucmVz ZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQsCj4gKwkuZmlsbF9tb2RlcyA9 IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKPiArCS5kZXN0cm95ID0g ZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwLAo+ICsJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1f YXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlLAo+ICsJLmF0b21pY19kZXN0 cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCj4g K307Cj4gKwo+ICtzdGF0aWMgaW50IHBhbmVsX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSkKPiArewo+ICsJc3RydWN0IHBhbmVsX2JyaWRnZSAqcGFuZWxfYnJpZGdlID0g ZHJtX2JyaWRnZV90b19wYW5lbF9icmlkZ2UoYnJpZGdlKTsKPiArCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IgPSAmcGFuZWxfYnJpZGdlLT5jb25uZWN0b3I7Cj4gKwlpbnQgcmV0Owo+ ICsKPiArCWlmICghYnJpZGdlLT5lbmNvZGVyKSB7Cj4gKwkJRFJNX0VSUk9SKCJNaXNzaW5nIGVu Y29kZXJcbiIpOwo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsJfQo+ICsKPiArCWRybV9jb25uZWN0 b3JfaGVscGVyX2FkZChjb25uZWN0b3IsCj4gKwkJCQkgJnBhbmVsX2JyaWRnZV9jb25uZWN0b3Jf aGVscGVyX2Z1bmNzKTsKPiArCj4gKwlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoYnJpZGdlLT5k ZXYsIGNvbm5lY3RvciwKPiArCQkJCSAmcGFuZWxfYnJpZGdlX2Nvbm5lY3Rvcl9mdW5jcywKPiAr CQkJCSBwYW5lbF9icmlkZ2UtPmNvbm5lY3Rvcl90eXBlKTsKPiArCWlmIChyZXQpIHsKPiArCQlE Uk1fRVJST1IoIkZhaWxlZCB0byBpbml0aWFsaXplIGNvbm5lY3RvclxuIik7Cj4gKwkJcmV0dXJu IHJldDsKPiArCX0KPiArCj4gKwlkcm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoJnBh bmVsX2JyaWRnZS0+Y29ubmVjdG9yLAo+ICsJCQkJCSAgYnJpZGdlLT5lbmNvZGVyKTsKPiArCj4g KwlyZXQgPSBkcm1fcGFuZWxfYXR0YWNoKHBhbmVsX2JyaWRnZS0+cGFuZWwsICZwYW5lbF9icmlk Z2UtPmNvbm5lY3Rvcik7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiAr CXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBwYW5lbF9icmlkZ2VfZGV0YWNoKHN0 cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3sKPiArCXN0cnVjdCBwYW5lbF9icmlkZ2UgKnBh bmVsX2JyaWRnZSA9IGRybV9icmlkZ2VfdG9fcGFuZWxfYnJpZGdlKGJyaWRnZSk7Cj4gKwo+ICsJ ZHJtX3BhbmVsX2RldGFjaChwYW5lbF9icmlkZ2UtPnBhbmVsKTsKPiArfQo+ICsKPiArc3RhdGlj IHZvaWQgcGFuZWxfYnJpZGdlX3ByZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkK PiArewo+ICsJc3RydWN0IHBhbmVsX2JyaWRnZSAqcGFuZWxfYnJpZGdlID0gZHJtX2JyaWRnZV90 b19wYW5lbF9icmlkZ2UoYnJpZGdlKTsKPiArCj4gKwlkcm1fcGFuZWxfcHJlcGFyZShwYW5lbF9i cmlkZ2UtPnBhbmVsKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgcGFuZWxfYnJpZGdlX2VuYWJs ZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICt7Cj4gKwlzdHJ1Y3QgcGFuZWxfYnJpZGdl ICpwYW5lbF9icmlkZ2UgPSBkcm1fYnJpZGdlX3RvX3BhbmVsX2JyaWRnZShicmlkZ2UpOwo+ICsK PiArCWRybV9wYW5lbF9lbmFibGUocGFuZWxfYnJpZGdlLT5wYW5lbCk7Cj4gK30KPiArCj4gK3N0 YXRpYyB2b2lkIHBhbmVsX2JyaWRnZV9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Up Cj4gK3sKPiArCXN0cnVjdCBwYW5lbF9icmlkZ2UgKnBhbmVsX2JyaWRnZSA9IGRybV9icmlkZ2Vf dG9fcGFuZWxfYnJpZGdlKGJyaWRnZSk7Cj4gKwo+ICsJZHJtX3BhbmVsX2Rpc2FibGUocGFuZWxf YnJpZGdlLT5wYW5lbCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHBhbmVsX2JyaWRnZV9wb3N0 X2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArewo+ICsJc3RydWN0IHBhbmVs X2JyaWRnZSAqcGFuZWxfYnJpZGdlID0gZHJtX2JyaWRnZV90b19wYW5lbF9icmlkZ2UoYnJpZGdl KTsKPiArCj4gKwlkcm1fcGFuZWxfdW5wcmVwYXJlKHBhbmVsX2JyaWRnZS0+cGFuZWwpOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgcGFuZWxfYnJpZGdl X2JyaWRnZV9mdW5jcyA9IHsKPiArCS5hdHRhY2ggPSBwYW5lbF9icmlkZ2VfYXR0YWNoLAo+ICsJ LmRldGFjaCA9IHBhbmVsX2JyaWRnZV9kZXRhY2gsCj4gKwkucHJlX2VuYWJsZSA9IHBhbmVsX2Jy aWRnZV9wcmVfZW5hYmxlLAo+ICsJLmVuYWJsZSA9IHBhbmVsX2JyaWRnZV9lbmFibGUsCj4gKwku ZGlzYWJsZSA9IHBhbmVsX2JyaWRnZV9kaXNhYmxlLAo+ICsJLnBvc3RfZGlzYWJsZSA9IHBhbmVs X2JyaWRnZV9wb3N0X2Rpc2FibGUsCj4gK307Cj4gKwo+ICsvKioKPiArICogZHJtX3BhbmVsX2Jy aWRnZV9hZGQgLSBDcmVhdGVzIGEgZHJtX2JyaWRnZSBhbmQgZHJtX2Nvbm5lY3RvciB0aGF0Cj4g KyAqIGp1c3QgY2FsbCB0aGUgYXBwcm9wcmlhdGUgZnVuY3Rpb25zIGZyb20gZHJtX3BhbmVsLgo+ ICsgKgo+ICsgKiBAZGV2OiBUaGUgc3RydWN0IGRldmljZSBvZiB0aGUgcGFuZWwgZGV2aWNlLiAg VGhpcyBpcyB1c2VkIGZvcgo+ICsgKiByZWdpc3RlcmluZyB0aGUgZHJtX2JyaWRnZS4KPiArICog QHBhbmVsOiBUaGUgZHJtX3BhbmVsIGJlaW5nIHdyYXBwZWQuICBNdXN0IGJlIG5vbi1OVUxMLgo+ ICsgKiBAY29ubmVjdG9yX3R5cGU6IFRoZSBEUk1fTU9ERV9DT05ORUNUT1JfKiBmb3IgdGhlIGNv bm5lY3RvciB0byBiZQo+ICsgKiBjcmVhdGVkLgo+ICsgKgo+ICsgKiBGb3IgZHJpdmVycyBjb252 ZXJ0aW5nIGZyb20gZGlyZWN0bHkgdXNpbmcgZHJtX3BhbmVsOiBUaGUgZXhwZWN0ZWQKPiArICog dXNhZ2UgcGF0dGVybiBpcyB0aGF0IGR1cmluZyBlaXRoZXIgZW5jb2RlciBtb2R1bGUgcHJvYmUg b3IgRFNJCj4gKyAqIGhvc3QgYXR0YWNoLCBhIGRybV9wYW5lbCB3aWxsIGJlIGxvb2tlZCB1cCB0 aHJvdWdoCj4gKyAqIGRybV9vZl9maW5kX3BhbmVsX29yX2JyaWRnZSgpLiAgZHJtX3BhbmVsX2Jy aWRnZV9hZGQoKSBpcyB1c2VkIHRvCj4gKyAqIHdyYXAgdGhhdCBwYW5lbCBpbiB0aGUgbmV3IGJy aWRnZSwgYW5kIHRoZSByZXN1bHQgY2FuIHRoZW4gYmUKPiArICogcGFzc2VkIHRvIGRybV9icmlk Z2VfYXR0YWNoKCkuICBUaGUgZHJtX3BhbmVsX3ByZXBhcmUoKSBhbmQgcmVsYXRlZAo+ICsgKiBm dW5jdGlvbnMgY2FuIGJlIGRyb3BwZWQgZnJvbSB0aGUgZW5jb2RlciBkcml2ZXIgKHRoZXkncmUg bm93Cj4gKyAqIGNhbGxlZCBieSB0aGUgS01TIGhlbHBlcnMgYmVmb3JlIGNhbGxpbmcgaW50byB0 aGUgZW5jb2RlciksIGFsb25nCj4gKyAqIHdpdGggY29ubmVjdG9yIGNyZWF0aW9uLgoKK3BhbmVs L2JyaWRnZSByZXZpZXdlcnMuCgpUaGlzIGRvZXMgbWFrZSB0aGluZ3MgbXVjaCBjbGVhbmVyLCBi dXQgaXQgc2VlbXMgYSBiaXQgc3RyYW5nZSB0byBjcmVhdGUKYSBkcm1fYnJpZGdlIHdoZW4gdGhl cmUgaXNuJ3QgcmVhbGx5IGEgSFcgYnJpZGdlIGluIHRoZSBkaXNwbGF5IGNoYWluIChpLmUsCndo ZW4gdGhlIERTSSBlbmNvZGVyIGlzIGRpcmVjdGx5IGNvbm5lY3RlZCB0byBhIERTSSBwYW5lbCku CgpUaGVyZSBhcmUga21zIGRyaXZlcnMgdGhhdCB1c2UgZHJtX3BhbmVsLCBidXQgZG9uJ3QgaGF2 ZSBzaW1wbGUgc3R1YiBjb25uZWN0b3JzCnRoYXQgd3JhcCBhcm91bmQgYSBkcm1fcGFuZWwuIFRo ZXkgaGF2ZSBtb3JlIGNvbXBsaWNhdGVkIGNvbm5lY3RvciBvcHMsIGFuZAptYXkgY2FsbCBkcm1f cGFuZWxfcHJlcGFyZSgpIGFuZCByZWxhdGVkIGZ1bmN0aW9ucyBhIGJpdCBkaWZmZXJlbnRseS4g V2Ugd29uJ3QKYmUgYWJsZSB0byB1c2UgZHJtX3BhbmVsX2JyaWRnZSBmb3IgdGhvc2UgZHJpdmVy cy4KCkZvciBtc20sIHdlIGNoZWNrIHdoZXRoZXIgdGhlIERTSSBlbmNvZGVyIGlzIGNvbm5lY3Rl ZCBkaXJlY3RseSB0byBhIHBhbmVsCm9yIGFuIGV4dGVybmFsIGJyaWRnZS4gSWYgaXQncyBjb25u ZWN0ZWQgdG8gYW4gZXh0ZXJuYWwgYnJpZGdlLCB3ZSBza2lwIHRoZQpjcmVhdGlvbiBvZiB0aGUg c3R1YiBjb25uZWN0b3IsIGFuZCByZWx5IG9uIHRoZSBleHRlcm5hbCBicmlkZ2UgZHJpdmVyIHRv CmNyZWF0ZSB0aGUgY29ubmVjdG9yOgoKaHR0cDovL2x4ci5mcmVlLWVsZWN0cm9ucy5jb20vc291 cmNlL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaS5jI0wyMjcKClRoZSBtc20gc29sdXRpb24g aXNuJ3QgdmVyeSBuZWF0LCBidXQgaXQgYXZvaWRzIHRoZSBuZWVkIHRvIGNyZWF0ZSBhbm90aGVy CmJyaWRnZSB0byBnbHVlIHRoaW5ncyB0b2dldGhlci4KCkFyY2hpdAoKPiArICovCj4gK3N0cnVj dCBkcm1fYnJpZGdlICpkcm1fcGFuZWxfYnJpZGdlX2FkZChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4g KwkJCQkJc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCj4gKwkJCQkJdTMyIGNvbm5lY3Rvcl90eXBl KQo+ICt7Cj4gKwlzdHJ1Y3QgcGFuZWxfYnJpZGdlICpwYW5lbF9icmlkZ2UgPQo+ICsJCWRldm1f a3phbGxvYyhkZXYsIHNpemVvZigqcGFuZWxfYnJpZGdlKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpbnQg cmV0O3RlZ3JhX291dHB1dF9jb25uZWN0b3JfZGV0ZWN0LAo+ICsKPiArCWlmICghZGV2IHx8ICFw YW5lbCkKPiArCQlyZXR1cm4gRVJSX1BUUihFSU5WQUwpOwo+ICsKPiArCXBhbmVsX2JyaWRnZS0+ ZGV2ID0gZGV2Owo+ICsJcGFuZWxfYnJpZGdlLT5jb25uZWN0b3JfdHlwZSA9IGNvbm5lY3Rvcl90 eXBlOwo+ICsJcGFuZWxfYnJpZGdlLT5wYW5lbCA9IHBhbmVsOwo+ICsKPiArCXBhbmVsX2JyaWRn ZS0+YnJpZGdlLmZ1bmNzID0gJnBhbmVsX2JyaWRnZV9icmlkZ2VfZnVuY3M7Cj4gKwlwYW5lbF9i cmlkZ2UtPmJyaWRnZS5vZl9ub2RlID0gZGV2LT5vZl9ub2RlOwo+ICsKPiArCXJldCA9IGRybV9i cmlkZ2VfYWRkKCZwYW5lbF9icmlkZ2UtPmJyaWRnZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVy biBFUlJfUFRSKHJldCk7Cj4gKwo+ICsJcmV0dXJuICZwYW5lbF9icmlkZ2UtPmJyaWRnZTsKPiAr fQo+ICtFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF9icmlkZ2VfYWRkKTsKPiArCj4gK3ZvaWQgZHJt X3BhbmVsX2JyaWRnZV9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2JyaWRn ZSAqYnJpZGdlKQo+ICt7Cj4gKwlkcm1fYnJpZGdlX3JlbW92ZShicmlkZ2UpOwo+ICsJZGV2bV9r ZnJlZShkZXYsIGJyaWRnZSk7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fcGFuZWxfYnJpZGdl X3JlbW92ZSk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCBiL2luY2x1 ZGUvZHJtL2RybV9icmlkZ2UuaAo+IGluZGV4IGZkZDgyZmNiZjE2OC4uZTA4NTYzZWUwNTQ2IDEw MDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaAo+ICsrKyBiL2luY2x1ZGUvZHJt L2RybV9icmlkZ2UuaAo+IEBAIC0yOSw2ICsyOSw3IEBACj4gICNpbmNsdWRlIDxkcm0vZHJtX21v ZGVzLmg+Cj4KPiAgc3RydWN0IGRybV9icmlkZ2U7Cj4gK3N0cnVjdCBkcm1fcGFuZWw7Cj4KPiAg LyoqCj4gICAqIHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIC0gZHJtX2JyaWRnZSBjb250cm9sIGZ1 bmN0aW9ucwo+IEBAIC0yMjEsNCArMjIyLDExIEBAIHZvaWQgZHJtX2JyaWRnZV9tb2RlX3NldChz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICB2b2lkIGRybV9icmlkZ2VfcHJlX2VuYWJsZShz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiAgdm9pZCBkcm1fYnJpZGdlX2VuYWJsZShzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPgo+ICsjaWZkZWYgQ09ORklHX0RSTV9QQU5FTAo+ICtz dHJ1Y3QgZHJtX2JyaWRnZSAqZHJtX3BhbmVsX2JyaWRnZV9hZGQoc3RydWN0IGRldmljZSAqZGV2 LAo+ICsJCQkJCXN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAo+ICsJCQkJCXUzMiBjb25uZWN0b3Jf dHlwZSk7Cj4gK3ZvaWQgZHJtX3BhbmVsX2JyaWRnZV9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiArI2VuZGlmCj4gKwo+ICAjZW5kaWYKPgoK LS0gClF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIENvZGUg QXVyb3JhIEZvcnVtLAphIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=