From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [DPU PATCH 03/11] drm/msm/dpu: add MDSS top level driver for dpu Date: Thu, 10 May 2018 10:14:42 -0400 Message-ID: <20180510141442.GB33053@art_vandelay> References: <1525940985-30428-1-git-send-email-ryadav@codeaurora.org> <1525940985-30428-4-git-send-email-ryadav@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1525940985-30428-4-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Rajesh Yadav Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gVGh1LCBNYXkgMTAsIDIwMTggYXQgMDE6NTk6MzdQTSArMDUzMCwgUmFqZXNoIFlhZGF2IHdy b3RlOgo+IFNvQ3MgY29udGFpbmluZyBkcHUgaGF2ZSBhIE1EU1MgdG9wIGxldmVsIHdyYXBwZXIK PiB3aGljaCBpbmNsdWRlcyBzdWItYmxvY2tzIGFzIGRwdSwgZHNpLCBwaHksIGRwIGV0Yy4KPiBN RFNTIHRvcCBsZXZlbCB3cmFwcGVyIG1hbmFnZXMgY29tbW9uIHJlc291cmNlcyBsaWtlCj4gY29t bW9uIGNsb2NrcywgcG93ZXIgYW5kIGlycSBmb3IgaXRzIHN1Yi1ibG9ja3MuCj4gCj4gQ3VycmVu dGx5LCBpbiBkcHUgZHJpdmVyLCBhbGwgdGhlIHBvd2VyIHJlc291cmNlCj4gbWFuYWdlbWVudCBp cyBwYXJ0IG9mIHBvd2VyX2hhbmRsZSB3aGljaCBtYW5hZ2VzCj4gdGhlc2UgcmVzb3VyY2VzIHZp YSBhIGN1c3RvbSBpbXBsZW1lbnRhdGlvbi4gQW5kCj4gdGhlIHJlc291cmNlIHJlbGF0aW9uc2hp cHMgYXJlIG5vdCBtb2RlbGxlZCBwcm9wZXJseQo+IGluIGR0LiAgTW9yZW92ZXIgdGhlIGlycSBk b21haW4gaGFuZGxpbmcgY29kZSBpcyBwYXJ0Cj4gb2YgZHB1IGRldmljZSAod2hpY2ggaXMgYSBj aGlsZCBkZXZpY2UpIGR1ZSB0byBsYWNrCj4gb2YgYSBkZWRpY2F0ZWQgZHJpdmVyIGZvciBNRFNT IHRvcCBsZXZlbCB3cmFwcGVyCj4gZGV2aWNlLgo+IAo+IFRoaXMgY2hhbmdlIGFkZHMgZHB1X21k c3MgdG9wIGxldmVsIGRyaXZlciB0byBoYW5kbGUKPiBjb21tb24gY2xvY2sgbGlrZSAtIGNvcmUg Y2xvY2ssIGFoYiBjbG9jawo+IChmb3IgcmVnaXN0ZXIgYWNjZXNzKSwgbWFpbiBwb3dlciBzdXBw bHkgKGkuZS4gZ2RzYykKPiBhbmQgaXJxIG1hbmFnZW1lbnQuCj4gVGhlIHRvcCBsZXZlbCBtZHNz IGRldmljZS9kcml2ZXIgYWN0cyBhcyBhbiBpbnRlcnJ1cHQKPiBjb250cm9sbGVyIGFuZCBtYW5h Z2UgaHdpcnEgbWFwcGluZyBmb3IgaXRzIGNoaWxkCj4gZGV2aWNlcy4KPiAKPiBJdCBpbXBsZW1l bnRzIHJ1bnRpbWVfcG0gc3VwcG9ydCBmb3IgcmVzb3VyY2UgbWFuYWdlbWVudC4KPiBDaGlsZCBu b2RlcyBjYW4gY29udHJvbCB0aGVzZSByZXNvdXJjZXMgdmlhIHJ1bnRpbWVfcG0KPiBnZXQvcHV0 IGNhbGxzIG9uIHRoZWlyIGNvcnJlc3BvbmRpbmcgZGV2aWNlcyBkdWUgdG8gcGFyZW50Cj4gY2hp bGQgcmVsYXRpb25zaGlwIGRlZmluZWQgaW4gZHQuCj4gCj4gU2lnbmVkLW9mZi1ieTogUmFqZXNo IFlhZGF2IDxyeWFkYXZAY29kZWF1cm9yYS5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9t c20vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9pcnEuYyAgICAgIHwgIDk3IC0tLS0tLS0KPiAgZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfaXJxLmggICAgICB8ICAxNCAtCj4g IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jYXRhbG9nLmMgICAgfCAgIDkg LQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5oICAgIHwg ICA3IC0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2ludGVycnVwdHMu YyB8ICAyOSArLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2ludGVy cnVwdHMuaCB8ICAxMSAtCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9pcnEu YyAgICAgICAgICAgfCAgNDggKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfa21zLmMgICAgICAgICAgIHwgICA2IC0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2ttcy5oICAgICAgICAgICB8ICAgMiAtCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9tZHNzLmMgICAgICAgICAgfCAzMDEgKysrKysrKysrKysrKysrKysrKysrKwo+ ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RwdV9pb191dGlsLmMgICAgICAgICAgICAgICAgIHwgIDU1 ICsrKysKPiAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMgICAgICAgICAgICAgICAgICAg ICB8ICAyNiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaCAgICAgICAgICAgICAg ICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ttcy5oICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKwo+ICBpbmNsdWRlL2xpbnV4L2RwdV9pb191dGlsLmggICAgICAg ICAgICAgICAgICAgICAgIHwgICAyICsKPiAgMTYgZmlsZXMgY2hhbmdlZCwgMzkwIGluc2VydGlv bnMoKyksIDIyMiBkZWxldGlvbnMoLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9tZHNzLmMKPiAKCjxzbmlwIC8+Cgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfbWRzcy5jIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X21kc3MuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMC4uMjZiZjJjMQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfbWRzcy5jCj4gQEAgLTAsMCArMSwzMDEgQEAKPiArLyoKPiAr ICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiArICogQ29weXJpZ2h0IChjKSAy MDE4LCBUaGUgTGludXggRm91bmRhdGlvbgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJkcHVfa21z LmgiCj4gKwo+ICsjZGVmaW5lIHRvX2RwdV9tZHNzKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qg ZHB1X21kc3MsIGJhc2UpCj4gKwo+ICsjZGVmaW5lIEhXX0lOVFJfU1RBVFVTCQkJMHgwMDEwCj4g Kwo+ICtzdHJ1Y3QgZHB1X21kc3Mgewo+ICsJc3RydWN0IG1zbV9tZHNzIGJhc2U7Cj4gKwl2b2lk IF9faW9tZW0gKm1taW87Cj4gKwl1bnNpZ25lZCBsb25nIG1taW9fbGVuOwo+ICsJdTMyIGh3dmVy c2lvbjsKPiArCXN0cnVjdCBkc3NfbW9kdWxlX3Bvd2VyIG1wOwo+ICsJc3RydWN0IGRwdV9pcnFf Y29udHJvbGxlciBpcnFfY29udHJvbGxlcjsKPiArfTsKPiArCj4gK3N0YXRpYyBpbmxpbmUgdm9p ZCBfZHB1X21kc3NfaHdfcmV2X2luaXQoc3RydWN0IGRwdV9tZHNzICpkcHVfbWRzcykKPiArewo+ ICsJZHB1X21kc3MtPmh3dmVyc2lvbiA9IHJlYWRsX3JlbGF4ZWQoZHB1X21kc3MtPm1taW8gKyAw eDApOwo+ICt9CgpUaGlzIGZ1bmN0aW9uIHByb2JhYmx5IGRvZXNuJ3QgbmVlZCB0byBleGlzdCwg anVzdCBwdXQgdGhlIGFzc2lnbm1lbnQgaW4KZHB1X21kc3NfaW5pdCgpCgo+ICsKPiArc3RhdGlj IGludCBfZHB1X21kc3NfZ2V0X2ludHJfc291cmNlcyhzdHJ1Y3QgZHB1X21kc3MgKmRwdV9tZHNz LAo+ICsJCXVpbnQzMl90ICpzb3VyY2VzKQo+ICt7Cj4gKwkqc291cmNlcyA9IHJlYWRsX3JlbGF4 ZWQoZHB1X21kc3MtPm1taW8gKyBIV19JTlRSX1NUQVRVUyk7Cj4gKwlyZXR1cm4gMDsKPiArfQoK U2FtZSBoZXJlLiBBZGRpdGlvbmFsbHksIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJ2YWwg dGhhdCBpcyBhbHdheXMKc3VjY2Vzc2Z1bCBhbmQgbmV2ZXIgY2hlY2tlZCwgc28geW91IHdvbid0 IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhhdCA6KQoKPiArCj4gK3N0YXRpYyBpcnFyZXR1cm5fdCBk cHVfbWRzc19pcnEoaW50IGlycSwgdm9pZCAqYXJnKQo+ICt7Cj4gKwlzdHJ1Y3QgZHB1X21kc3Mg KmRwdV9tZHNzID0gYXJnOwo+ICsJdTMyIGludGVycnVwdHM7Cj4gKwo+ICsJaWYgKCFhcmcpCj4g KwkJcmV0dXJuIElSUV9OT05FOwo+ICsKPiArCV9kcHVfbWRzc19nZXRfaW50cl9zb3VyY2VzKGRw dV9tZHNzLCAmaW50ZXJydXB0cyk7Cj4gKwo+ICsJd2hpbGUgKGludGVycnVwdHMpIHsKPiArCQlp cnFfaHdfbnVtYmVyX3QgaHdpcnEgPSBmbHMoaW50ZXJydXB0cykgLSAxOwo+ICsJCXVuc2lnbmVk IGludCBtYXBwaW5nOwo+ICsJCWludCByYzsKPiArCj4gKwkJbWFwcGluZyA9IGlycV9maW5kX21h cHBpbmcoZHB1X21kc3MtPmlycV9jb250cm9sbGVyLmRvbWFpbiwKPiArCQkJCWh3aXJxKTsKCkxp bmUgdGhpcyB1cCB3aXRoIGRwdV9tZHNzLT5pcnFfY29udHJvbGxlci5kb21haW4KCj4gKwkJaWYg KG1hcHBpbmcgPT0gMCkgewo+ICsJCQlEUFVfRVZUMzIoaHdpcnEsIERQVV9FVlRMT0dfRVJST1Ip Owo+ICsJCQlnb3RvIGVycm9yOwoKSnVzdCByZXR1cm4gSVJRX05PTkUKCj4gKwkJfQo+ICsKPiAr CQlyYyA9IGdlbmVyaWNfaGFuZGxlX2lycShtYXBwaW5nKTsKPiArCQlpZiAocmMgPCAwKSB7Cj4g KwkJCURQVV9FVlQzMihod2lycSwgbWFwcGluZywgcmMsIERQVV9FVlRMT0dfRVJST1IpOwo+ICsJ CQlnb3RvIGVycm9yOwoKU2FtZSBoZXJlLCBhbmQgcmVtb3ZlIHRoZSBsYWJlbAoKPiArCQl9Cj4g Kwo+ICsJCWludGVycnVwdHMgJj0gfigxIDw8IGh3aXJxKTsKPiArCX0KPiArCj4gKwlyZXR1cm4g SVJRX0hBTkRMRUQ7Cj4gKwo+ICtlcnJvcjoKPiArCS8qIGJhZCBzaXR1YXRpb24sIGluZm9ybSBp cnEgc3lzdGVtLCBpdCBtYXkgZGlzYWJsZSBvdmVyYWxsIE1EU1MgaXJxICovCj4gKwlyZXR1cm4g SVJRX05PTkU7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRwdV9tZHNzX2lycV9tYXNrKHN0cnVj dCBpcnFfZGF0YSAqaXJxZCkKPiArewo+ICsJc3RydWN0IGRwdV9tZHNzICpkcHVfbWRzczsKPiAr Cj4gKwlpZiAoIWlycWQgfHwgIWlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGlycWQpKSB7CgpO ZWl0aGVyIG9mIHRoZXNlIGNvbmRpdGlvbnMgY2FuIGJlIHRydWUsIHNvIHRoZXJlJ3Mgbm8gbmVl ZCBmb3IgdGhpcyBjaGVjay4KCj4gKwkJRFBVX0VSUk9SKCJpbnZhbGlkIHBhcmFtZXRlcnMgaXJx ZCAlZFxuIiwgaXJxZCAhPSBOVUxMKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwlkcHVfbWRzcyA9 IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGlycWQpOwo+ICsKPiArCS8qIG1lbW9yeSBiYXJy aWVyICovCj4gKwlzbXBfbWJfX2JlZm9yZV9hdG9taWMoKTsKPiArCWNsZWFyX2JpdChpcnFkLT5o d2lycSwgJmRwdV9tZHNzLT5pcnFfY29udHJvbGxlci5lbmFibGVkX21hc2spOwo+ICsJLyogbWVt b3J5IGJhcnJpZXIgKi8KPiArCXNtcF9tYl9fYWZ0ZXJfYXRvbWljKCk7Cj4gK30KPiArCj4gK3N0 YXRpYyB2b2lkIGRwdV9tZHNzX2lycV91bm1hc2soc3RydWN0IGlycV9kYXRhICppcnFkKQo+ICt7 Cj4gKwlzdHJ1Y3QgZHB1X21kc3MgKmRwdV9tZHNzOwo+ICsKPiArCWlmICghaXJxZCB8fCAhaXJx X2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoaXJxZCkpIHsKClNhbWUgaGVyZQoKPiArCQlEUFVfRVJS T1IoImludmFsaWQgcGFyYW1ldGVycyBpcnFkICVkXG4iLCBpcnFkICE9IE5VTEwpOwo+ICsJCXJl dHVybjsKPiArCX0KPiArCWRwdV9tZHNzID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoaXJx ZCk7Cj4gKwo+ICsJLyogbWVtb3J5IGJhcnJpZXIgKi8KPiArCXNtcF9tYl9fYmVmb3JlX2F0b21p YygpOwo+ICsJc2V0X2JpdChpcnFkLT5od2lycSwgJmRwdV9tZHNzLT5pcnFfY29udHJvbGxlci5l bmFibGVkX21hc2spOwo+ICsJLyogbWVtb3J5IGJhcnJpZXIgKi8KPiArCXNtcF9tYl9fYWZ0ZXJf YXRvbWljKCk7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgZHB1X21kc3NfaXJx X2NoaXAgPSB7Cj4gKwkubmFtZSA9ICJkcHVfbWRzcyIsCj4gKwkuaXJxX21hc2sgPSBkcHVfbWRz c19pcnFfbWFzaywKPiArCS5pcnFfdW5tYXNrID0gZHB1X21kc3NfaXJxX3VubWFzaywKPiArfTsK PiArCj4gK3N0YXRpYyBpbnQgZHB1X21kc3NfaXJxZG9tYWluX21hcChzdHJ1Y3QgaXJxX2RvbWFp biAqZG9tYWluLAo+ICsJCXVuc2lnbmVkIGludCBpcnEsIGlycV9od19udW1iZXJfdCBod2lycSkK PiArewo+ICsJc3RydWN0IGRwdV9tZHNzICpkcHVfbWRzczsKPiArCWludCByZXQ7Cj4gKwo+ICsJ aWYgKCFkb21haW4gfHwgIWRvbWFpbi0+aG9zdF9kYXRhKSB7CgpTYW1lIGhlcmUsIG5vdCBwb3Nz aWJsZSwgc28gZHJvcCB0aGUgY2hlY2suCgo+ICsJCURQVV9FUlJPUigiaW52YWxpZCBwYXJhbWV0 ZXJzIGRvbWFpbiAlZFxuIiwgZG9tYWluICE9IE5VTEwpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ ICsJfQo+ICsJZHB1X21kc3MgPSBkb21haW4tPmhvc3RfZGF0YTsKPiArCj4gKwlpcnFfc2V0X2No aXBfYW5kX2hhbmRsZXIoaXJxLCAmZHB1X21kc3NfaXJxX2NoaXAsIGhhbmRsZV9sZXZlbF9pcnEp Owo+ICsJcmV0ID0gaXJxX3NldF9jaGlwX2RhdGEoaXJxLCBkcHVfbWRzcyk7Cj4gKwo+ICsJcmV0 dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBk cHVfbWRzc19pcnFkb21haW5fb3BzID0gewo+ICsJLm1hcCA9IGRwdV9tZHNzX2lycWRvbWFpbl9t YXAsCj4gKwkueGxhdGUgPSBpcnFfZG9tYWluX3hsYXRlX29uZWNlbGwsCj4gK307Cj4gKwo+ICtz dGF0aWMgaW50IF9kcHVfbWRzc19pcnFfZG9tYWluX2FkZChzdHJ1Y3QgZHB1X21kc3MgKmRwdV9t ZHNzKQo+ICt7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gKwlzdHJ1Y3QgaXJxX2RvbWFpbiAq ZG9tYWluOwo+ICsKPiArCWRldiA9IGRwdV9tZHNzLT5iYXNlLmRldi0+ZGV2Owo+ICsKPiArCWRv bWFpbiA9IGlycV9kb21haW5fYWRkX2xpbmVhcihkZXYtPm9mX25vZGUsIDMyLAo+ICsJCQkmZHB1 X21kc3NfaXJxZG9tYWluX29wcywgZHB1X21kc3MpOwo+ICsJaWYgKCFkb21haW4pIHsKPiArCQlE UFVfRVJST1IoImZhaWxlZCB0byBhZGQgaXJxX2RvbWFpblxuIik7Cj4gKwkJcmV0dXJuIC1FSU5W QUw7Cj4gKwl9Cj4gKwo+ICsJZHB1X21kc3MtPmlycV9jb250cm9sbGVyLmVuYWJsZWRfbWFzayA9 IDA7Cj4gKwlkcHVfbWRzcy0+aXJxX2NvbnRyb2xsZXIuZG9tYWluID0gZG9tYWluOwo+ICsKPiAr CXJldHVybiAwOwo+ICt9Cj4gKwo+ICtpbnQgX2RwdV9tZHNzX2lycV9kb21haW5fZmluaShzdHJ1 Y3QgZHB1X21kc3MgKmRwdV9tZHNzKQo+ICt7Cj4gKwlpZiAoZHB1X21kc3MtPmlycV9jb250cm9s bGVyLmRvbWFpbikgewo+ICsJCWlycV9kb21haW5fcmVtb3ZlKGRwdV9tZHNzLT5pcnFfY29udHJv bGxlci5kb21haW4pOwo+ICsJCWRwdV9tZHNzLT5pcnFfY29udHJvbGxlci5kb21haW4gPSBOVUxM Owo+ICsJfQo+ICsJcmV0dXJuIDA7Cj4gK30KPiArc3RhdGljIGludCBkcHVfbWRzc19lbmFibGUo c3RydWN0IG1zbV9tZHNzICptZHNzKQo+ICt7Cj4gKwlzdHJ1Y3QgZHB1X21kc3MgKmRwdV9tZHNz ID0gdG9fZHB1X21kc3MobWRzcyk7Cj4gKwlzdHJ1Y3QgZHNzX21vZHVsZV9wb3dlciAqbXAgPSAm ZHB1X21kc3MtPm1wOwo+ICsJaW50IHJldCA9IDA7Cj4gKwo+ICsJcmV0ID0gbXNtX2Rzc19lbmFi bGVfY2xrKG1wLT5jbGtfY29uZmlnLCBtcC0+bnVtX2NsaywgdHJ1ZSk7Cj4gKwlpZiAocmV0KQo+ ICsJCURQVV9FUlJPUigiY2xvY2sgZW5hYmxlIGZhaWxlZCwgcmV0OiVkXG4iLCByZXQpOwoKV2h5 IG5vdCByZXR1cm4gdGhlIGVycm9yPwoKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIGludCBkcHVfbWRzc19kaXNhYmxlKHN0cnVjdCBtc21fbWRzcyAqbWRzcykKPiArewo+ICsJ c3RydWN0IGRwdV9tZHNzICpkcHVfbWRzcyA9IHRvX2RwdV9tZHNzKG1kc3MpOwo+ICsJc3RydWN0 IGRzc19tb2R1bGVfcG93ZXIgKm1wID0gJmRwdV9tZHNzLT5tcDsKPiArCWludCByZXQgPSAwOwo+ ICsKPiArCXJldCA9IG1zbV9kc3NfZW5hYmxlX2NsayhtcC0+Y2xrX2NvbmZpZywgbXAtPm51bV9j bGssIGZhbHNlKTsKPiArCWlmIChyZXQpCj4gKwkJRFBVX0VSUk9SKCJjbG9jayBkaXNhYmxlIGZh aWxlZCwgcmV0OiVkXG4iLCByZXQpOwoKU2FtZSBoZXJlLgoKPiArCj4gKwlyZXR1cm4gMDsKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQgZHB1X21kc3NfZGVzdHJveShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1f ZGV2aWNlKGRldi0+ZGV2KTsKPiArCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRwdV9tZHNzICpkcHVfbWRzcyA9IHRvX2RwdV9tZHNz KHByaXYtPm1kc3MpOwo+ICsJc3RydWN0IGRzc19tb2R1bGVfcG93ZXIgKm1wID0gJmRwdV9tZHNz LT5tcDsKPiArCj4gKwlpZiAoIWRwdV9tZHNzKQoKRm9ydHVuYXRlbHkgdGhpcyBpcyBpbXBvc3Np YmxlLCBzaW5jZSB5b3UgZGVyZWZlcmVuY2UgaXQgb24gdGhlIGxpbmUgYWJvdmUhIFNvCnJlbW92 ZSB0aGlzIGNoZWNrLgoKPiArCQlyZXR1cm47Cj4gKwo+ICsJX2RwdV9tZHNzX2lycV9kb21haW5f ZmluaShkcHVfbWRzcyk7Cj4gKwo+ICsJbXNtX2Rzc19wdXRfY2xrKG1wLT5jbGtfY29uZmlnLCBt cC0+bnVtX2Nsayk7Cj4gKwlkZXZtX2tmcmVlKCZwZGV2LT5kZXYsIG1wLT5jbGtfY29uZmlnKTsK PiArCj4gKwlpZiAoZHB1X21kc3MtPm1taW8pCj4gKwkJbXNtX2lvdW5tYXAocGRldiwgZHB1X21k c3MtPm1taW8pOwo+ICsJZHB1X21kc3MtPm1taW8gPSBOVUxMOwo+ICsKPiArCXBtX3J1bnRpbWVf ZGlzYWJsZShkZXYtPmRldik7Cj4gKwo+ICsJZGV2bV9rZnJlZShkZXYtPmRldiwgZHB1X21kc3Mp Owo+ICsJcHJpdi0+bWRzcyA9IE5VTEw7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg bXNtX21kc3NfZnVuY3MgbWRzc19mdW5jcyA9IHsKPiArCS5lbmFibGUJPSBkcHVfbWRzc19lbmFi bGUsCj4gKwkuZGlzYWJsZSA9IGRwdV9tZHNzX2Rpc2FibGUsCj4gKwkuZGVzdHJveSA9IGRwdV9t ZHNzX2Rlc3Ryb3ksCj4gK307Cj4gKwo+ICtpbnQgZHB1X21kc3NfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxh dGZvcm1fZGV2aWNlKGRldi0+ZGV2KTsKPiArCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYg PSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRwdV9tZHNzICpkcHVfbWRzczsKPiArCXN0 cnVjdCBkc3NfbW9kdWxlX3Bvd2VyICptcDsKPiArCWludCByZXQgPSAwOwo+ICsKPiArCWlmICgh b2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoZGV2LT5kZXYtPm9mX25vZGUsICJxY29tLGRwdS1tZHNz IikpCgpUaGlzIGlzIGFsc28gbm90IHBvc3NpYmxlLCBzbyByZW1vdmUgaXQuCgo+ICsJCXJldHVy biAwOwo+ICsKPiArCWRwdV9tZHNzID0gZGV2bV9remFsbG9jKGRldi0+ZGV2LCBzaXplb2YoKmRw dV9tZHNzKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWRwdV9tZHNzKQo+ICsJCXJldHVybiAtRU5P TUVNOwo+ICsKPiArCWRwdV9tZHNzLT5tbWlvID0gbXNtX2lvcmVtYXAocGRldiwgIm1kc3NfcGh5 cyIsICJtZHNzX3BoeXMiKTsKPiArCWlmIChJU19FUlIoZHB1X21kc3MtPm1taW8pKSB7Cj4gKwkJ cmV0ID0gUFRSX0VSUihkcHVfbWRzcy0+bW1pbyk7Cj4gKwkJRFBVX0VSUk9SKCJtZHNzIHJlZ2lz dGVyIG1lbW9yeSBtYXAgZmFpbGVkOiAlZFxuIiwgcmV0KTsKPiArCQlkcHVfbWRzcy0+bW1pbyA9 IE5VTEw7Cj4gKwkJZ290byBlcnJvcjsKPiArCX0KPiArCURSTV9JTkZPKCJtYXBwZWQgbWRzcyBh ZGRyZXNzIHNwYWNlIEAlcFxuIiwgZHB1X21kc3MtPm1taW8pOwo+ICsJZHB1X21kc3MtPm1taW9f bGVuID0gbXNtX2lvbWFwX3NpemUocGRldiwgIm1kc3NfcGh5cyIpOwo+ICsKPiArCW1wID0gJmRw dV9tZHNzLT5tcDsKPiArCXJldCA9IG1zbV9kc3NfcGFyc2VfY2xvY2socGRldiwgbXApOwo+ICsJ aWYgKHJldCkgewo+ICsJCURQVV9FUlJPUigiZmFpbGVkIHRvIHBhcnNlIGNsb2NrcywgcmV0PSVk XG4iLCByZXQpOwo+ICsJCWdvdG8gY2xrX3BhcnNlX2VycjsKPiArCX0KPiArCj4gKwlyZXQgPSBt c21fZHNzX2dldF9jbGsoJnBkZXYtPmRldiwgbXAtPmNsa19jb25maWcsIG1wLT5udW1fY2xrKTsK PiArCWlmIChyZXQpIHsKPiArCQlEUFVfRVJST1IoImZhaWxlZCB0byBnZXQgY2xvY2tzLCByZXQ9 JWRcbiIsIHJldCk7Cj4gKwkJZ290byBjbGtfZ2V0X2Vycm9yOwo+ICsJfQo+ICsKPiArCXJldCA9 IG1zbV9kc3NfY2xrX3NldF9yYXRlKG1wLT5jbGtfY29uZmlnLCBtcC0+bnVtX2Nsayk7Cj4gKwlp ZiAocmV0KSB7Cj4gKwkJRFBVX0VSUk9SKCJmYWlsZWQgdG8gc2V0IGNsb2NrIHJhdGUsIHJldD0l ZFxuIiwgcmV0KTsKPiArCQlnb3RvIGNsa19yYXRlX2Vycm9yOwo+ICsJfQo+ICsKPiArCWRwdV9t ZHNzLT5iYXNlLmRldiA9IGRldjsKPiArCWRwdV9tZHNzLT5iYXNlLmZ1bmNzID0gJm1kc3NfZnVu Y3M7Cj4gKwo+ICsJcmV0ID0gX2RwdV9tZHNzX2lycV9kb21haW5fYWRkKGRwdV9tZHNzKTsKPiAr CWlmIChyZXQpCj4gKwkJZ290byBpcnFfZG9tYWluX2Vycm9yOwo+ICsKPiArCXJldCA9IGRldm1f cmVxdWVzdF9pcnEoZGV2LT5kZXYsIHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCksCj4gKwkJCWRw dV9tZHNzX2lycSwgMCwgImRwdV9tZHNzX2lzciIsIGRwdV9tZHNzKTsKPiArCWlmIChyZXQpIHsK PiArCQlEUFVfRVJST1IoImZhaWxlZCB0byBpbml0IGlycTogJWRcbiIsIHJldCk7Cj4gKwkJZ290 byBpcnFfZXJyb3I7Cj4gKwl9Cj4gKwo+ICsJcG1fcnVudGltZV9lbmFibGUoZGV2LT5kZXYpOwo+ ICsKPiArCXBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2LT5kZXYpOwo+ICsJX2RwdV9tZHNzX2h3X3Jl dl9pbml0KGRwdV9tZHNzKTsKPiArCXBtX3J1bnRpbWVfcHV0X3N5bmMoZGV2LT5kZXYpOwo+ICsK PiArCXByaXYtPm1kc3MgPSAmZHB1X21kc3MtPmJhc2U7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiAr Cj4gK2lycV9lcnJvcjoKPiArCV9kcHVfbWRzc19pcnFfZG9tYWluX2ZpbmkoZHB1X21kc3MpOwo+ ICtpcnFfZG9tYWluX2Vycm9yOgo+ICtjbGtfcmF0ZV9lcnJvcjoKPiArCW1zbV9kc3NfcHV0X2Ns ayhtcC0+Y2xrX2NvbmZpZywgbXAtPm51bV9jbGspOwo+ICtjbGtfZ2V0X2Vycm9yOgo+ICsJZGV2 bV9rZnJlZSgmcGRldi0+ZGV2LCBtcC0+Y2xrX2NvbmZpZyk7Cj4gK2Nsa19wYXJzZV9lcnI6Cj4g KwlpZiAoZHB1X21kc3MtPm1taW8pCj4gKwkJbXNtX2lvdW5tYXAocGRldiwgZHB1X21kc3MtPm1t aW8pOwo+ICsJZHB1X21kc3MtPm1taW8gPSBOVUxMOwo+ICtlcnJvcjoKPiArCWRldm1fa2ZyZWUo ZGV2LT5kZXYsIGRwdV9tZHNzKTsKCkl0J3Mgbm90IG5lY2Vzc2FyeSB0byBmcmVlIGRldmljZSBt YW5hZ2VkIG1lbW9yeS4gU28gcmVtb3ZlIHRoaXMgbGFiZWwgYW5kCnJldHVybiBkaXJlY3RseSBp biB0aGUgSVNfRVJSKGRwdV9tZHNzLT5tbWlvKSBjYXNlIGFib3ZlLgoKPiArCXJldHVybiByZXQ7 Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcHVfaW9fdXRpbC5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kcHVfaW9fdXRpbC5jCj4gaW5kZXggYTE4YmM5OS4uZWZhMDZh OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwdV9pb191dGlsLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwdV9pb191dGlsLmMKPiBAQCAtNDQ4LDYgKzQ0OCw2MSBA QCBpbnQgbXNtX2Rzc19lbmFibGVfY2xrKHN0cnVjdCBkc3NfY2xrICpjbGtfYXJyeSwgaW50IG51 bV9jbGssIGludCBlbmFibGUpCj4gIH0gLyogbXNtX2Rzc19lbmFibGVfY2xrICovCj4gIEVYUE9S VF9TWU1CT0wobXNtX2Rzc19lbmFibGVfY2xrKTsKPiAgCj4gK2ludCBtc21fZHNzX3BhcnNlX2Ns b2NrKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gKwkJc3RydWN0IGRzc19tb2R1bGVf cG93ZXIgKm1wKQo+ICt7Cj4gKwl1MzIgaSA9IDAsIHJjID0gMDsKPiArCWNvbnN0IGNoYXIgKmNs b2NrX25hbWU7Cj4gKwl1MzIgY2xvY2tfcmF0ZSA9IDA7Cj4gKwl1MzIgY2xvY2tfbWF4X3JhdGUg PSAwOwo+ICsJaW50IG51bV9jbGsgPSAwOwo+ICsKPiArCWlmICghcGRldiB8fCAhbXApIHsKPiAr CQlwcl9lcnIoImludmFsaWQgaW5wdXQgcGFyYW0gcGRldjolcEsgbXA6JXBLXG4iLCBwZGV2LCBt cCk7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJbXAtPm51bV9jbGsgPSAwOwo+ ICsJbnVtX2NsayA9IG9mX3Byb3BlcnR5X2NvdW50X3N0cmluZ3MocGRldi0+ZGV2Lm9mX25vZGUs ICJjbG9jay1uYW1lcyIpOwo+ICsJaWYgKG51bV9jbGsgPD0gMCkgewo+ICsJCXByX2Vyci8qZGVi dWcqLygiY2xvY2tzIGFyZSBub3QgZGVmaW5lZFxuIik7Cgp3aGF0J3MgdXAgd2l0aCBwcl9lcnIv KmRlYnVnKi8gPwoKPiArCQlnb3RvIGNsa19lcnI7Cj4gKwl9Cj4gKwo+ICsJbXAtPm51bV9jbGsg PSBudW1fY2xrOwo+ICsJbXAtPmNsa19jb25maWcgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwK PiArCQkJc2l6ZW9mKHN0cnVjdCBkc3NfY2xrKSAqIG51bV9jbGssIEdGUF9LRVJORUwpOwo+ICsJ aWYgKCFtcC0+Y2xrX2NvbmZpZykgewo+ICsJCXJjID0gLUVOT01FTTsKPiArCQltcC0+bnVtX2Ns ayA9IDA7CgpKdXN0IGRvIHRoZSBtcC0+bnVtX2NsayBhc3NpZ25tZW50IGJlbG93IHRoaXMgY29u ZGl0aW9uYWwsIHRoZW4geW91IGRvbid0IG5lZWQKdG8gcmVzZXQgaXQuCgo+ICsJCWdvdG8gY2xr X2VycjsKPiArCX0KPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2NsazsgaSsrKSB7Cj4gKwkJ b2ZfcHJvcGVydHlfcmVhZF9zdHJpbmdfaW5kZXgocGRldi0+ZGV2Lm9mX25vZGUsICJjbG9jay1u YW1lcyIsCgpDaGVjayB0aGUgcmV0dXJuIHZhbHVlCgo+ICsJCQkJCQkJaSwgJmNsb2NrX25hbWUp OwoKQWxpZ24gd2l0aCB0aGUgb3RoZXIgYXJndW1lbnRzLgoKPiArCQlzdHJsY3B5KG1wLT5jbGtf Y29uZmlnW2ldLmNsa19uYW1lLCBjbG9ja19uYW1lLAo+ICsJCQkJc2l6ZW9mKG1wLT5jbGtfY29u ZmlnW2ldLmNsa19uYW1lKSk7CgphbGlnbm1lbnQKCj4gKwo+ICsJCW9mX3Byb3BlcnR5X3JlYWRf dTMyX2luZGV4KHBkZXYtPmRldi5vZl9ub2RlLCAiY2xvY2stcmF0ZSIsCgpDaGVjayB0aGUgcmV0 dXJuIHZhbHVlCgo+ICsJCQkJCQkJaSwgJmNsb2NrX3JhdGUpOwoKYWxpZ25tZW50Cgo+ICsJCW1w LT5jbGtfY29uZmlnW2ldLnJhdGUgPSBjbG9ja19yYXRlOwo+ICsKPiArCQlpZiAoIWNsb2NrX3Jh dGUpCj4gKwkJCW1wLT5jbGtfY29uZmlnW2ldLnR5cGUgPSBEU1NfQ0xLX0FIQjsKPiArCQllbHNl Cj4gKwkJCW1wLT5jbGtfY29uZmlnW2ldLnR5cGUgPSBEU1NfQ0xLX1BDTEs7Cj4gKwo+ICsJCWNs b2NrX21heF9yYXRlID0gMDsKCkluc3RlYWQgb2YgcmUtaW5pdGlhbGl6aW5nIHRoaXMgZXZlcnkg bG9vcCwgeW91IGNvdWxkIGhhdmUganVzdCBzY29wZWQgaXQKcHJvcGVybHkuIEF0IGFueSByYXRl LCB5b3UgY2FuIGp1c3QgcGFzcyBtcC0+Y2xrX2NvbmZpZ1tpXS5tYXhfcmF0ZSBkaXJlY3RseQpz aW5jZSB0aGUgdmFsdWUgaXMgb25seSB3cml0dGVuIG9uIHN1Y2Nlc3MuCgo+ICsJCW9mX3Byb3Bl cnR5X3JlYWRfdTMyX2luZGV4KHBkZXYtPmRldi5vZl9ub2RlLCAiY2xvY2stbWF4LXJhdGUiLAoK Q2hlY2sgcmV0dXJuLgoKPiArCQkJCQkJCWksICZjbG9ja19tYXhfcmF0ZSk7CgphbGlnbm1lbnQK Cj4gKwkJbXAtPmNsa19jb25maWdbaV0ubWF4X3JhdGUgPSBjbG9ja19tYXhfcmF0ZTsKPiArCX0K PiArCj4gK2Nsa19lcnI6Cj4gKwlyZXR1cm4gcmM7CgpObyBuZWVkIGZvciB0aGlzIGxhYmVsLCBq dXN0IHJldHVybiBkaXJlY3RseS4KCj4gK30KPiArRVhQT1JUX1NZTUJPTChtc21fZHNzX3BhcnNl X2Nsb2NrKTsKPiAgCj4gIGludCBkcHVfaTJjX2J5dGVfcmVhZChzdHJ1Y3QgaTJjX2NsaWVudCAq Y2xpZW50LCB1aW50OF90IHNsYXZlX2FkZHIsCj4gIAkJCXVpbnQ4X3QgcmVnX29mZnNldCwgdWlu dDhfdCAqcmVhZF9idWYpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Ry di5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiBpbmRleCA1ZDhmMWI2Li5hMGU3 M2VhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiBAQCAtNTAzLDcgKzUwMywxOCBAQCBzdGF0 aWMgaW50IG1zbV9kcm1faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZHJpdmVy ICpkcnYpCj4gIAlkZGV2LT5kZXZfcHJpdmF0ZSA9IHByaXY7Cj4gIAlwcml2LT5kZXYgPSBkZGV2 Owo+ICAKPiAtCXJldCA9IG1kcDVfbWRzc19pbml0KGRkZXYpOwo+ICsJc3dpdGNoIChnZXRfbWRw X3ZlcihwZGV2KSkgewo+ICsJY2FzZSBLTVNfTURQNToKPiArCQlyZXQgPSBtZHA1X21kc3NfaW5p dChkZGV2KTsKPiArCQlicmVhazsKPiArCWNhc2UgS01TX0RQVToKPiArCQlyZXQgPSBkcHVfbWRz c19pbml0KGRkZXYpOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlyZXQgPSAwOwo+ICsJ CWJyZWFrOwo+ICsJfQo+ICsKPiAgCWlmIChyZXQpCj4gIAkJZ290byBtZHNzX2luaXRfZmFpbDsK PiAgCj4gQEAgLTE1MzksMTIgKzE1NTAsMTMgQEAgc3RhdGljIGludCBhZGRfZGlzcGxheV9jb21w b25lbnRzKHN0cnVjdCBkZXZpY2UgKmRldiwKPiAgCWludCByZXQ7Cj4gIAo+ICAJLyoKPiAtCSAq IE1EUDUgYmFzZWQgZGV2aWNlcyBkb24ndCBoYXZlIGEgZmxhdCBoaWVyYXJjaHkuIFRoZXJlIGlz IGEgdG9wIGxldmVsCj4gLQkgKiBwYXJlbnQ6IE1EU1MsIGFuZCBjaGlsZHJlbjogTURQNSwgRFNJ LCBIRE1JLCBlRFAgZXRjLiBQb3B1bGF0ZSB0aGUKPiAtCSAqIGNoaWxkcmVuIGRldmljZXMsIGZp bmQgdGhlIE1EUDUgbm9kZSwgYW5kIHRoZW4gYWRkIHRoZSBpbnRlcmZhY2VzCj4gLQkgKiB0byBv dXIgY29tcG9uZW50cyBsaXN0Lgo+ICsJICogTURQNS9EUFUgYmFzZWQgZGV2aWNlcyBkb24ndCBo YXZlIGEgZmxhdCBoaWVyYXJjaHkuIFRoZXJlIGlzIGEgdG9wCj4gKwkgKiBsZXZlbCBwYXJlbnQ6 IE1EU1MsIGFuZCBjaGlsZHJlbjogTURQNS9EUFUsIERTSSwgSERNSSwgZURQIGV0Yy4KPiArCSAq IFBvcHVsYXRlIHRoZSBjaGlsZHJlbiBkZXZpY2VzLCBmaW5kIHRoZSBNRFA1L0RQVSBub2RlLCBh bmQgdGhlbiBhZGQKPiArCSAqIHRoZSBpbnRlcmZhY2VzIHRvIG91ciBjb21wb25lbnRzIGxpc3Qu Cj4gIAkgKi8KPiAtCWlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShkZXYtPm9mX25vZGUsICJx Y29tLG1kc3MiKSkgewo+ICsJaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKGRldi0+b2Zfbm9k ZSwgInFjb20sbWRzcyIpIHx8Cj4gKwkJb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoZGV2LT5vZl9u b2RlLCAicWNvbSxkcHUtbWRzcyIpKSB7CgpBbGlnbiB3aXRoIHRoZSBwcmV2aW91cyBjb25kaXRp b24sIGllOgoKICAgICAgICBpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoZGV2LT5vZl9ub2Rl LCAicWNvbSxtZHNzIikgfHwKICAgICAgICAgICAgb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoZGV2 LT5vZl9ub2RlLCAicWNvbSxkcHUtbWRzcyIpKSB7CgoKPiAgCQlyZXQgPSBvZl9wbGF0Zm9ybV9w b3B1bGF0ZShkZXYtPm9mX25vZGUsIE5VTEwsIE5VTEwsIGRldik7Cj4gIAkJaWYgKHJldCkgewo+ ICAJCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBwb3B1bGF0ZSBjaGlsZHJlbiBkZXZpY2VzXG4i KTsKPiBAQCAtMTY4Niw3ICsxNjk4LDcgQEAgc3RhdGljIGludCBtc21fcGRldl9yZW1vdmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCXsgLmNvbXBhdGlibGUgPSAicWNvbSxtZHA0 IiwgLmRhdGEgPSAodm9pZCAqKUtNU19NRFA0IH0sCj4gIAl7IC5jb21wYXRpYmxlID0gInFjb20s bWRzcyIsIC5kYXRhID0gKHZvaWQgKilLTVNfTURQNSB9LAo+ICAjaWZkZWYgQ09ORklHX0RSTV9N U01fRFBVCj4gLQl7IC5jb21wYXRpYmxlID0gInFjb20sZHB1LWttcyIsIC5kYXRhID0gKHZvaWQg KilLTVNfRFBVIH0sCj4gKwl7IC5jb21wYXRpYmxlID0gInFjb20sZHB1LW1kc3MiLCAuZGF0YSA9 ICh2b2lkICopS01TX0RQVSB9LAoKVGhpcyByZXF1aXJlcyBhIGR0IGJpbmRpbmcgY2hhbmdlLgoK PiAgI2VuZGlmCj4gIAl7fQo+ICB9Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCj4gaW5kZXggOTBhMjUy MS4uZThlNWU3MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCj4gQEAgLTM4MSw3ICszODEsNyBA QCBzdHJ1Y3QgbXNtX2RybV9wcml2YXRlIHsKPiAgCS8qIHN1Ym9yZGluYXRlIGRldmljZXMsIGlm IHByZXNlbnQ6ICovCj4gIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpncHVfcGRldjsKPiAgCj4g LQkvKiB0b3AgbGV2ZWwgTURTUyB3cmFwcGVyIGRldmljZSAoZm9yIE1EUDUgb25seSkgKi8KPiAr CS8qIHRvcCBsZXZlbCBNRFNTIHdyYXBwZXIgZGV2aWNlIChmb3IgTURQNS9EUFUgb25seSkgKi8K PiAgCXN0cnVjdCBtc21fbWRzcyAqbWRzczsKPiAgCj4gIAkvKiBwb3NzaWJseSB0aGlzIHNob3Vs ZCBiZSBpbiB0aGUga21zIGNvbXBvbmVudCwgYnV0IGl0IGlzCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgK PiBpbmRleCA5YTdiYzdkLi44ZjUwNjEzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2ttcy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgKPiBAQCAt MTQ1LDYgKzE0NSw4IEBAIHN0cnVjdCBtc21fbWRzcyB7Cj4gIAo+ICBpbnQgbWRwNV9tZHNzX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIAoKUmVtb3ZlIHRoaXMgbGluZS4KCj4gK2lu dCBkcHVfbWRzc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICsKPiAgLyoqCj4gICAq IE1vZGUgU2V0IFV0aWxpdHkgRnVuY3Rpb25zCj4gICAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2RwdV9pb191dGlsLmggYi9pbmNsdWRlL2xpbnV4L2RwdV9pb191dGlsLmgKPiBpbmRl eCA3YzczODk5Li40NWU2MDZmIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvZHB1X2lvX3V0 aWwuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvZHB1X2lvX3V0aWwuaAo+IEBAIC0xMDQsNiArMTA0 LDggQEAgaW50IG1zbV9kc3NfY29uZmlnX3ZyZWcoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg ZHNzX3ZyZWcgKmluX3ZyZWcsCj4gIHZvaWQgbXNtX2Rzc19wdXRfY2xrKHN0cnVjdCBkc3NfY2xr ICpjbGtfYXJyeSwgaW50IG51bV9jbGspOwo+ICBpbnQgbXNtX2Rzc19jbGtfc2V0X3JhdGUoc3Ry dWN0IGRzc19jbGsgKmNsa19hcnJ5LCBpbnQgbnVtX2Nsayk7Cj4gIGludCBtc21fZHNzX2VuYWJs ZV9jbGsoc3RydWN0IGRzc19jbGsgKmNsa19hcnJ5LCBpbnQgbnVtX2NsaywgaW50IGVuYWJsZSk7 Cj4gK2ludCBtc21fZHNzX3BhcnNlX2Nsb2NrKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYs Cj4gKwkJc3RydWN0IGRzc19tb2R1bGVfcG93ZXIgKm1wKTsKPiAgCj4gIGludCBkcHVfaTJjX2J5 dGVfcmVhZChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCB1aW50OF90IHNsYXZlX2FkZHIsCj4g IAkJICAgICAgIHVpbnQ4X3QgcmVnX29mZnNldCwgdWludDhfdCAqcmVhZF9idWYpOwo+IC0tIAo+ IFRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUg Q29kZSBBdXJvcmEgRm9ydW0sCj4gYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJv amVjdAo+IAoKLS0gClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9t aXVtIE9TCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZy ZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=