From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [PATCH 09/21] drm/msm/mdp5: subclass msm_mdss for mdp5 Date: Mon, 16 Jul 2018 20:10:01 +0530 Message-ID: <8962a28a-5af7-c2ba-7362-8fd0c897c86e@codeaurora.org> References: <20180709173200.238457-1-seanpaul@chromium.org> <20180709173200.238457-10-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180709173200.238457-10-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul , abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, chandanu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, skolluku-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, airlied-cv59FeDIM0c@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, nganji-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, dovizu-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org CgpPbiBNb25kYXkgMDkgSnVseSAyMDE4IDExOjAxIFBNLCBTZWFuIFBhdWwgd3JvdGU6Cj4gRnJv bTogUmFqZXNoIFlhZGF2IDxyeWFkYXZAY29kZWF1cm9yYS5vcmc+Cj4gCj4gU29DcyBoYXZpbmcg bWRwNSBvciBkcHUgaGF2ZSBpZGVudGljYWwgdHJlZSBsaWtlCj4gZGV2aWNlIGhpZXJhcmNoeSB3 aGVyZSBNRFNTIHRvcCBsZXZlbCB3cmFwcGVyIG1hbmFnZXMKPiBjb21tb24gcG93ZXIgcmVzb3Vy Y2VzIGZvciBhbGwgY2hpbGQgZGV2aWNlcy4KPiAKPiBTdWJjbGFzcyBtc21fbWRzcyBzbyB0aGF0 IG1zbV9tZHNzIGluY2x1ZGVzIGNvbW1vbiBkZWZpbmVzCj4gYW5kIG1kcDUvZHB1IG1kc3MgZGVy aXZhdGlvbnMgdG8gaW5jbHVkZSBhbnkgZXh0ZW5zaW9ucy4KPiAKPiBBZGQgbWRzcyBoZWxwZXIg aW50ZXJmYWNlIChtc21fbWRzc19mdW5jcykgdG8gbXNtX21kc3MKPiBiYXNlIGZvciBtZHA1L2Rw dSBtZHNzIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGNhbGxzLgo+IAo+IFRoaXMgY2hhbmdlIHN1 YmNsYXNzZXMgbXNtX21kc3MgZm9yIG1kcDUsIGRwdSBzcGVjaWZpYwo+IGNoYW5nZXMgd2lsbCBi ZSBkb25lIHNlcGFyYXRlbHkuCgpSZXZpZXdlZC1ieTogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBj b2RlYXVyb3JhLm9yZz4KCj4gCj4gQ2hhbmdlcyBpbiB2MzoKPiAJLSBub25lCj4gCj4gQ2hhbmdl cyBpbiB2MjoKPiAJLSBmaXhlZCBpbmRlbnRhdGlvbiBmb3IgaXJxX2RvbWFpbl9hZGRfbGluZWFy IGNhbGwgKFNlYW4gUGF1bCkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBSYWplc2ggWWFkYXYgPHJ5YWRh dkBjb2RlYXVyb3JhLm9yZz4KPiBSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJv bWl1bS5vcmc+Cj4gW3NlYW5wYXVsIHJlYmFzZWQgb24gbXNtLW5leHQgYW5kIHJlc29sdmVkIGNv bmZsaWN0c10KPiBTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9y Zz4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfbWRzcy5jIHwg MTU0ICsrKysrKysrKysrKy0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Ry di5jICAgICAgICAgICAgIHwgIDIyICsrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2tt cy5oICAgICAgICAgICAgIHwgIDE3ICsrLQo+ICAgMyBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0 aW9ucygrKSwgODQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9tZHA1L21kcDVfbWRzcy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21k cDUvbWRwNV9tZHNzLmMKPiBpbmRleCBmMmEwZGI3YThhMDMuLjFjYzRlNTdmMDIyNiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X21kc3MuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfbWRzcy5jCj4gQEAgLTIwLDEyICsy MCwxMCBAQAo+ICAgI2luY2x1ZGUgIm1zbV9kcnYuaCIKPiAgICNpbmNsdWRlICJtZHA1X2ttcy5o Igo+ICAgCj4gLS8qCj4gLSAqIElmIG5lZWRlZCwgdGhpcyBjYW4gYmVjb21lIG1vcmUgc3BlY2lm aWM6IHNvbWV0aGluZyBsaWtlIHN0cnVjdCBtZHA1X21kc3MsCj4gLSAqIHdoaWNoIGNvbnRhaW5z IGEgJ3N0cnVjdCBtc21fbWRzcyBiYXNlJyBtZW1iZXIuCj4gLSAqLwo+IC1zdHJ1Y3QgbXNtX21k c3Mgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldjsKPiArI2RlZmluZSB0b19tZHA1X21kc3Mo eCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBtZHA1X21kc3MsIGJhc2UpCj4gKwo+ICtzdHJ1Y3Qg bWRwNV9tZHNzIHsKPiArCXN0cnVjdCBtc21fbWRzcyBiYXNlOwo+ICAgCj4gICAJdm9pZCBfX2lv bWVtICptbWlvLCAqdmJpZjsKPiAgIAo+IEBAIC00MSwyMiArMzksMjIgQEAgc3RydWN0IG1zbV9t ZHNzIHsKPiAgIAl9IGlycWNvbnRyb2xsZXI7Cj4gICB9Owo+ICAgCj4gLXN0YXRpYyBpbmxpbmUg dm9pZCBtZHNzX3dyaXRlKHN0cnVjdCBtc21fbWRzcyAqbWRzcywgdTMyIHJlZywgdTMyIGRhdGEp Cj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBtZHNzX3dyaXRlKHN0cnVjdCBtZHA1X21kc3MgKm1kcDVf bWRzcywgdTMyIHJlZywgdTMyIGRhdGEpCj4gICB7Cj4gLQltc21fd3JpdGVsKGRhdGEsIG1kc3Mt Pm1taW8gKyByZWcpOwo+ICsJbXNtX3dyaXRlbChkYXRhLCBtZHA1X21kc3MtPm1taW8gKyByZWcp Owo+ICAgfQo+ICAgCj4gLXN0YXRpYyBpbmxpbmUgdTMyIG1kc3NfcmVhZChzdHJ1Y3QgbXNtX21k c3MgKm1kc3MsIHUzMiByZWcpCj4gK3N0YXRpYyBpbmxpbmUgdTMyIG1kc3NfcmVhZChzdHJ1Y3Qg bWRwNV9tZHNzICptZHA1X21kc3MsIHUzMiByZWcpCj4gICB7Cj4gLQlyZXR1cm4gbXNtX3JlYWRs KG1kc3MtPm1taW8gKyByZWcpOwo+ICsJcmV0dXJuIG1zbV9yZWFkbChtZHA1X21kc3MtPm1taW8g KyByZWcpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgaXJxcmV0dXJuX3QgbWRzc19pcnEoaW50IGly cSwgdm9pZCAqYXJnKQo+ICAgewo+IC0Jc3RydWN0IG1zbV9tZHNzICptZHNzID0gYXJnOwo+ICsJ c3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzID0gYXJnOwo+ICAgCXUzMiBpbnRyOwo+ICAgCj4g LQlpbnRyID0gbWRzc19yZWFkKG1kc3MsIFJFR19NRFNTX0hXX0lOVFJfU1RBVFVTKTsKPiArCWlu dHIgPSBtZHNzX3JlYWQobWRwNV9tZHNzLCBSRUdfTURTU19IV19JTlRSX1NUQVRVUyk7Cj4gICAK PiAgIAlWRVJCKCJpbnRyPSUwOHgiLCBpbnRyKTsKPiAgIAo+IEBAIC02NCw3ICs2Miw3IEBAIHN0 YXRpYyBpcnFyZXR1cm5fdCBtZHNzX2lycShpbnQgaXJxLCB2b2lkICphcmcpCj4gICAJCWlycV9o d19udW1iZXJfdCBod2lycSA9IGZscyhpbnRyKSAtIDE7Cj4gICAKPiAgIAkJZ2VuZXJpY19oYW5k bGVfaXJxKGlycV9maW5kX21hcHBpbmcoCj4gLQkJCQltZHNzLT5pcnFjb250cm9sbGVyLmRvbWFp biwgaHdpcnEpKTsKPiArCQkJCW1kcDVfbWRzcy0+aXJxY29udHJvbGxlci5kb21haW4sIGh3aXJx KSk7Cj4gICAJCWludHIgJj0gfigxIDw8IGh3aXJxKTsKPiAgIAl9Cj4gICAKPiBAQCAtODQsMTkg KzgyLDE5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBtZHNzX2lycShpbnQgaXJxLCB2b2lkICphcmcp Cj4gICAKPiAgIHN0YXRpYyB2b2lkIG1kc3NfaHdfbWFza19pcnEoc3RydWN0IGlycV9kYXRhICpp cnFkKQo+ICAgewo+IC0Jc3RydWN0IG1zbV9tZHNzICptZHNzID0gaXJxX2RhdGFfZ2V0X2lycV9j aGlwX2RhdGEoaXJxZCk7Cj4gKwlzdHJ1Y3QgbWRwNV9tZHNzICptZHA1X21kc3MgPSBpcnFfZGF0 YV9nZXRfaXJxX2NoaXBfZGF0YShpcnFkKTsKPiAgIAo+ICAgCXNtcF9tYl9fYmVmb3JlX2F0b21p YygpOwo+IC0JY2xlYXJfYml0KGlycWQtPmh3aXJxLCAmbWRzcy0+aXJxY29udHJvbGxlci5lbmFi bGVkX21hc2spOwo+ICsJY2xlYXJfYml0KGlycWQtPmh3aXJxLCAmbWRwNV9tZHNzLT5pcnFjb250 cm9sbGVyLmVuYWJsZWRfbWFzayk7Cj4gICAJc21wX21iX19hZnRlcl9hdG9taWMoKTsKPiAgIH0K PiAgIAo+ICAgc3RhdGljIHZvaWQgbWRzc19od191bm1hc2tfaXJxKHN0cnVjdCBpcnFfZGF0YSAq aXJxZCkKPiAgIHsKPiAtCXN0cnVjdCBtc21fbWRzcyAqbWRzcyA9IGlycV9kYXRhX2dldF9pcnFf Y2hpcF9kYXRhKGlycWQpOwo+ICsJc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzID0gaXJxX2Rh dGFfZ2V0X2lycV9jaGlwX2RhdGEoaXJxZCk7Cj4gICAKPiAgIAlzbXBfbWJfX2JlZm9yZV9hdG9t aWMoKTsKPiAtCXNldF9iaXQoaXJxZC0+aHdpcnEsICZtZHNzLT5pcnFjb250cm9sbGVyLmVuYWJs ZWRfbWFzayk7Cj4gKwlzZXRfYml0KGlycWQtPmh3aXJxLCAmbWRwNV9tZHNzLT5pcnFjb250cm9s bGVyLmVuYWJsZWRfbWFzayk7Cj4gICAJc21wX21iX19hZnRlcl9hdG9taWMoKTsKPiAgIH0KPiAg IAo+IEBAIC0xMDksMTMgKzEwNywxMyBAQCBzdGF0aWMgc3RydWN0IGlycV9jaGlwIG1kc3NfaHdf aXJxX2NoaXAgPSB7Cj4gICBzdGF0aWMgaW50IG1kc3NfaHdfaXJxZG9tYWluX21hcChzdHJ1Y3Qg aXJxX2RvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlycSwKPiAgIAkJCQkgaXJxX2h3X251bWJlcl90 IGh3aXJxKQo+ICAgewo+IC0Jc3RydWN0IG1zbV9tZHNzICptZHNzID0gZC0+aG9zdF9kYXRhOwo+ ICsJc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzID0gZC0+aG9zdF9kYXRhOwo+ICAgCj4gICAJ aWYgKCEoVkFMSURfSVJRUyAmICgxIDw8IGh3aXJxKSkpCj4gICAJCXJldHVybiAtRVBFUk07Cj4g ICAKPiAgIAlpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCAmbWRzc19od19pcnFfY2hpcCwg aGFuZGxlX2xldmVsX2lycSk7Cj4gLQlpcnFfc2V0X2NoaXBfZGF0YShpcnEsIG1kc3MpOwo+ICsJ aXJxX3NldF9jaGlwX2RhdGEoaXJxLCBtZHA1X21kc3MpOwo+ICAgCj4gICAJcmV0dXJuIDA7Cj4g ICB9Cj4gQEAgLTEyNiw5MCArMTI0LDk5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2RvbWFp bl9vcHMgbWRzc19od19pcnFkb21haW5fb3BzID0gewo+ICAgfTsKPiAgIAo+ICAgCj4gLXN0YXRp YyBpbnQgbWRzc19pcnFfZG9tYWluX2luaXQoc3RydWN0IG1zbV9tZHNzICptZHNzKQo+ICtzdGF0 aWMgaW50IG1kc3NfaXJxX2RvbWFpbl9pbml0KHN0cnVjdCBtZHA1X21kc3MgKm1kcDVfbWRzcykK PiAgIHsKPiAtCXN0cnVjdCBkZXZpY2UgKmRldiA9IG1kc3MtPmRldi0+ZGV2Owo+ICsJc3RydWN0 IGRldmljZSAqZGV2ID0gbWRwNV9tZHNzLT5iYXNlLmRldi0+ZGV2Owo+ICAgCXN0cnVjdCBpcnFf ZG9tYWluICpkOwo+ICAgCj4gICAJZCA9IGlycV9kb21haW5fYWRkX2xpbmVhcihkZXYtPm9mX25v ZGUsIDMyLCAmbWRzc19od19pcnFkb21haW5fb3BzLAo+IC0JCQkJICBtZHNzKTsKPiArCQkJCSAg bWRwNV9tZHNzKTsKPiAgIAlpZiAoIWQpIHsKPiAgIAkJZGV2X2VycihkZXYsICJtZHNzIGlycSBk b21haW4gYWRkIGZhaWxlZFxuIik7Cj4gICAJCXJldHVybiAtRU5YSU87Cj4gICAJfQo+ICAgCj4g LQltZHNzLT5pcnFjb250cm9sbGVyLmVuYWJsZWRfbWFzayA9IDA7Cj4gLQltZHNzLT5pcnFjb250 cm9sbGVyLmRvbWFpbiA9IGQ7Cj4gKwltZHA1X21kc3MtPmlycWNvbnRyb2xsZXIuZW5hYmxlZF9t YXNrID0gMDsKPiArCW1kcDVfbWRzcy0+aXJxY29udHJvbGxlci5kb21haW4gPSBkOwo+ICAgCj4g ICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiAtaW50IG1zbV9tZHNzX2VuYWJsZShzdHJ1Y3QgbXNt X21kc3MgKm1kc3MpCj4gK3N0YXRpYyBpbnQgbWRwNV9tZHNzX2VuYWJsZShzdHJ1Y3QgbXNtX21k c3MgKm1kc3MpCj4gICB7Cj4gKwlzdHJ1Y3QgbWRwNV9tZHNzICptZHA1X21kc3MgPSB0b19tZHA1 X21kc3MobWRzcyk7Cj4gICAJREJHKCIiKTsKPiAgIAo+IC0JY2xrX3ByZXBhcmVfZW5hYmxlKG1k c3MtPmFoYl9jbGspOwo+IC0JaWYgKG1kc3MtPmF4aV9jbGspCj4gLQkJY2xrX3ByZXBhcmVfZW5h YmxlKG1kc3MtPmF4aV9jbGspOwo+IC0JaWYgKG1kc3MtPnZzeW5jX2NsaykKPiAtCQljbGtfcHJl cGFyZV9lbmFibGUobWRzcy0+dnN5bmNfY2xrKTsKPiArCWNsa19wcmVwYXJlX2VuYWJsZShtZHA1 X21kc3MtPmFoYl9jbGspOwo+ICsJaWYgKG1kcDVfbWRzcy0+YXhpX2NsaykKPiArCQljbGtfcHJl cGFyZV9lbmFibGUobWRwNV9tZHNzLT5heGlfY2xrKTsKPiArCWlmIChtZHA1X21kc3MtPnZzeW5j X2NsaykKPiArCQljbGtfcHJlcGFyZV9lbmFibGUobWRwNV9tZHNzLT52c3luY19jbGspOwo+ICAg Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiAtaW50IG1zbV9tZHNzX2Rpc2FibGUoc3RydWN0 IG1zbV9tZHNzICptZHNzKQo+ICtzdGF0aWMgaW50IG1kcDVfbWRzc19kaXNhYmxlKHN0cnVjdCBt c21fbWRzcyAqbWRzcykKPiAgIHsKPiArCXN0cnVjdCBtZHA1X21kc3MgKm1kcDVfbWRzcyA9IHRv X21kcDVfbWRzcyhtZHNzKTsKPiAgIAlEQkcoIiIpOwo+ICAgCj4gLQlpZiAobWRzcy0+dnN5bmNf Y2xrKQo+IC0JCWNsa19kaXNhYmxlX3VucHJlcGFyZShtZHNzLT52c3luY19jbGspOwo+IC0JaWYg KG1kc3MtPmF4aV9jbGspCj4gLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1kc3MtPmF4aV9jbGsp Owo+IC0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1kc3MtPmFoYl9jbGspOwo+ICsJaWYgKG1kcDVf bWRzcy0+dnN5bmNfY2xrKQo+ICsJCWNsa19kaXNhYmxlX3VucHJlcGFyZShtZHA1X21kc3MtPnZz eW5jX2Nsayk7Cj4gKwlpZiAobWRwNV9tZHNzLT5heGlfY2xrKQo+ICsJCWNsa19kaXNhYmxlX3Vu cHJlcGFyZShtZHA1X21kc3MtPmF4aV9jbGspOwo+ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1k cDVfbWRzcy0+YWhiX2Nsayk7Cj4gICAKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+IC1zdGF0 aWMgaW50IG1zbV9tZHNzX2dldF9jbG9ja3Moc3RydWN0IG1zbV9tZHNzICptZHNzKQo+ICtzdGF0 aWMgaW50IG1zbV9tZHNzX2dldF9jbG9ja3Moc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzKQo+ ICAgewo+IC0Jc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2Rldmlj ZShtZHNzLT5kZXYtPmRldik7Cj4gKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0KPiAr CQkJdG9fcGxhdGZvcm1fZGV2aWNlKG1kcDVfbWRzcy0+YmFzZS5kZXYtPmRldik7Cj4gICAKPiAt CW1kc3MtPmFoYl9jbGsgPSBtc21fY2xrX2dldChwZGV2LCAiaWZhY2UiKTsKPiAtCWlmIChJU19F UlIobWRzcy0+YWhiX2NsaykpCj4gLQkJbWRzcy0+YWhiX2NsayA9IE5VTEw7Cj4gKwltZHA1X21k c3MtPmFoYl9jbGsgPSBtc21fY2xrX2dldChwZGV2LCAiaWZhY2UiKTsKPiArCWlmIChJU19FUlIo bWRwNV9tZHNzLT5haGJfY2xrKSkKPiArCQltZHA1X21kc3MtPmFoYl9jbGsgPSBOVUxMOwo+ICAg Cj4gLQltZHNzLT5heGlfY2xrID0gbXNtX2Nsa19nZXQocGRldiwgImJ1cyIpOwo+IC0JaWYgKElT X0VSUihtZHNzLT5heGlfY2xrKSkKPiAtCQltZHNzLT5heGlfY2xrID0gTlVMTDsKPiArCW1kcDVf bWRzcy0+YXhpX2NsayA9IG1zbV9jbGtfZ2V0KHBkZXYsICJidXMiKTsKPiArCWlmIChJU19FUlIo bWRwNV9tZHNzLT5heGlfY2xrKSkKPiArCQltZHA1X21kc3MtPmF4aV9jbGsgPSBOVUxMOwo+ICAg Cj4gLQltZHNzLT52c3luY19jbGsgPSBtc21fY2xrX2dldChwZGV2LCAidnN5bmMiKTsKPiAtCWlm IChJU19FUlIobWRzcy0+dnN5bmNfY2xrKSkKPiAtCQltZHNzLT52c3luY19jbGsgPSBOVUxMOwo+ ICsJbWRwNV9tZHNzLT52c3luY19jbGsgPSBtc21fY2xrX2dldChwZGV2LCAidnN5bmMiKTsKPiAr CWlmIChJU19FUlIobWRwNV9tZHNzLT52c3luY19jbGspKQo+ICsJCW1kcDVfbWRzcy0+dnN5bmNf Y2xrID0gTlVMTDsKPiAgIAo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAgCj4gLXZvaWQgbXNtX21k c3NfZGVzdHJveShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICtzdGF0aWMgdm9pZCBtZHA1X21k c3NfZGVzdHJveShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgewo+ICAgCXN0cnVjdCBtc21f ZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IG1zbV9tZHNz ICptZHNzID0gcHJpdi0+bWRzczsKPiArCXN0cnVjdCBtZHA1X21kc3MgKm1kcDVfbWRzcyA9IHRv X21kcDVfbWRzcyhwcml2LT5tZHNzKTsKPiAgIAo+IC0JaWYgKCFtZHNzKQo+ICsJaWYgKCFtZHA1 X21kc3MpCj4gICAJCXJldHVybjsKPiAgIAo+IC0JaXJxX2RvbWFpbl9yZW1vdmUobWRzcy0+aXJx Y29udHJvbGxlci5kb21haW4pOwo+IC0JbWRzcy0+aXJxY29udHJvbGxlci5kb21haW4gPSBOVUxM Owo+ICsJaXJxX2RvbWFpbl9yZW1vdmUobWRwNV9tZHNzLT5pcnFjb250cm9sbGVyLmRvbWFpbik7 Cj4gKwltZHA1X21kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluID0gTlVMTDsKPiAgIAo+IC0JcmVn dWxhdG9yX2Rpc2FibGUobWRzcy0+dmRkKTsKPiArCXJlZ3VsYXRvcl9kaXNhYmxlKG1kcDVfbWRz cy0+dmRkKTsKPiAgIAo+ICAgCXBtX3J1bnRpbWVfZGlzYWJsZShkZXYtPmRldik7Cj4gICB9Cj4g ICAKPiAtaW50IG1zbV9tZHNzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBtc21fbWRzc19mdW5jcyBtZHNzX2Z1bmNzID0gewo+ICsJLmVuYWJsZQk9 IG1kcDVfbWRzc19lbmFibGUsCj4gKwkuZGlzYWJsZSA9IG1kcDVfbWRzc19kaXNhYmxlLAo+ICsJ LmRlc3Ryb3kgPSBtZHA1X21kc3NfZGVzdHJveSwKPiArfTsKPiArCj4gK2ludCBtZHA1X21kc3Nf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgewo+ICAgCXN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2UoZGV2LT5kZXYpOwo+ICAgCXN0cnVjdCBt c21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IG1zbV9t ZHNzICptZHNzOwo+ICsJc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzOwo+ICAgCWludCByZXQ7 Cj4gICAKPiAgIAlEQkcoIiIpOwo+IEBAIC0yMTcsNDAgKzIyNCw0MCBAQCBpbnQgbXNtX21kc3Nf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCWlmICghb2ZfZGV2aWNlX2lzX2NvbXBh dGlibGUoZGV2LT5kZXYtPm9mX25vZGUsICJxY29tLG1kc3MiKSkKPiAgIAkJcmV0dXJuIDA7Cj4g ICAKPiAtCW1kc3MgPSBkZXZtX2t6YWxsb2MoZGV2LT5kZXYsIHNpemVvZigqbWRzcyksIEdGUF9L RVJORUwpOwo+IC0JaWYgKCFtZHNzKSB7Cj4gKwltZHA1X21kc3MgPSBkZXZtX2t6YWxsb2MoZGV2 LT5kZXYsIHNpemVvZigqbWRwNV9tZHNzKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIW1kcDVfbWRz cykgewo+ICAgCQlyZXQgPSAtRU5PTUVNOwo+ICAgCQlnb3RvIGZhaWw7Cj4gICAJfQo+ICAgCj4g LQltZHNzLT5kZXYgPSBkZXY7Cj4gKwltZHA1X21kc3MtPmJhc2UuZGV2ID0gZGV2Owo+ICAgCj4g LQltZHNzLT5tbWlvID0gbXNtX2lvcmVtYXAocGRldiwgIm1kc3NfcGh5cyIsICJNRFNTIik7Cj4g LQlpZiAoSVNfRVJSKG1kc3MtPm1taW8pKSB7Cj4gLQkJcmV0ID0gUFRSX0VSUihtZHNzLT5tbWlv KTsKPiArCW1kcDVfbWRzcy0+bW1pbyA9IG1zbV9pb3JlbWFwKHBkZXYsICJtZHNzX3BoeXMiLCAi TURTUyIpOwo+ICsJaWYgKElTX0VSUihtZHA1X21kc3MtPm1taW8pKSB7Cj4gKwkJcmV0ID0gUFRS X0VSUihtZHA1X21kc3MtPm1taW8pOwo+ICAgCQlnb3RvIGZhaWw7Cj4gICAJfQo+ICAgCj4gLQlt ZHNzLT52YmlmID0gbXNtX2lvcmVtYXAocGRldiwgInZiaWZfcGh5cyIsICJWQklGIik7Cj4gLQlp ZiAoSVNfRVJSKG1kc3MtPnZiaWYpKSB7Cj4gLQkJcmV0ID0gUFRSX0VSUihtZHNzLT52YmlmKTsK PiArCW1kcDVfbWRzcy0+dmJpZiA9IG1zbV9pb3JlbWFwKHBkZXYsICJ2YmlmX3BoeXMiLCAiVkJJ RiIpOwo+ICsJaWYgKElTX0VSUihtZHA1X21kc3MtPnZiaWYpKSB7Cj4gKwkJcmV0ID0gUFRSX0VS UihtZHA1X21kc3MtPnZiaWYpOwo+ICAgCQlnb3RvIGZhaWw7Cj4gICAJfQo+ICAgCj4gLQlyZXQg PSBtc21fbWRzc19nZXRfY2xvY2tzKG1kc3MpOwo+ICsJcmV0ID0gbXNtX21kc3NfZ2V0X2Nsb2Nr cyhtZHA1X21kc3MpOwo+ICAgCWlmIChyZXQpIHsKPiAgIAkJZGV2X2VycihkZXYtPmRldiwgImZh aWxlZCB0byBnZXQgY2xvY2tzOiAlZFxuIiwgcmV0KTsKPiAgIAkJZ290byBmYWlsOwo+ICAgCX0K PiAgIAo+ICAgCS8qIFJlZ3VsYXRvciB0byBlbmFibGUgR0RTQ3MgaW4gZG93bnN0cmVhbSBrZXJu ZWxzICovCj4gLQltZHNzLT52ZGQgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoZGV2LT5kZXYsICJ2ZGQi KTsKPiAtCWlmIChJU19FUlIobWRzcy0+dmRkKSkgewo+IC0JCXJldCA9IFBUUl9FUlIobWRzcy0+ dmRkKTsKPiArCW1kcDVfbWRzcy0+dmRkID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldi0+ZGV2LCAi dmRkIik7Cj4gKwlpZiAoSVNfRVJSKG1kcDVfbWRzcy0+dmRkKSkgewo+ICsJCXJldCA9IFBUUl9F UlIobWRwNV9tZHNzLT52ZGQpOwo+ICAgCQlnb3RvIGZhaWw7Cj4gICAJfQo+ICAgCj4gLQlyZXQg PSByZWd1bGF0b3JfZW5hYmxlKG1kc3MtPnZkZCk7Cj4gKwlyZXQgPSByZWd1bGF0b3JfZW5hYmxl KG1kcDVfbWRzcy0+dmRkKTsKPiAgIAlpZiAocmV0KSB7Cj4gICAJCWRldl9lcnIoZGV2LT5kZXYs ICJmYWlsZWQgdG8gZW5hYmxlIHJlZ3VsYXRvciB2ZGQ6ICVkXG4iLAo+ICAgCQkJcmV0KTsKPiBA QCAtMjU4LDI1ICsyNjUsMjYgQEAgaW50IG1zbV9tZHNzX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgIAl9Cj4gICAKPiAgIAlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKGRldi0+ZGV2LCBw bGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApLAo+IC0JCQkgICAgICAgbWRzc19pcnEsIDAsICJtZHNz X2lzciIsIG1kc3MpOwo+ICsJCQkgICAgICAgbWRzc19pcnEsIDAsICJtZHNzX2lzciIsIG1kcDVf bWRzcyk7Cj4gICAJaWYgKHJldCkgewo+ICAgCQlkZXZfZXJyKGRldi0+ZGV2LCAiZmFpbGVkIHRv IGluaXQgaXJxOiAlZFxuIiwgcmV0KTsKPiAgIAkJZ290byBmYWlsX2lycTsKPiAgIAl9Cj4gICAK PiAtCXJldCA9IG1kc3NfaXJxX2RvbWFpbl9pbml0KG1kc3MpOwo+ICsJcmV0ID0gbWRzc19pcnFf ZG9tYWluX2luaXQobWRwNV9tZHNzKTsKPiAgIAlpZiAocmV0KSB7Cj4gICAJCWRldl9lcnIoZGV2 LT5kZXYsICJmYWlsZWQgdG8gaW5pdCBzdWItYmxvY2sgaXJxczogJWRcbiIsIHJldCk7Cj4gICAJ CWdvdG8gZmFpbF9pcnE7Cj4gICAJfQo+ICAgCj4gLQlwcml2LT5tZHNzID0gbWRzczsKPiArCW1k cDVfbWRzcy0+YmFzZS5mdW5jcyA9ICZtZHNzX2Z1bmNzOwo+ICsJcHJpdi0+bWRzcyA9ICZtZHA1 X21kc3MtPmJhc2U7Cj4gICAKPiAgIAlwbV9ydW50aW1lX2VuYWJsZShkZXYtPmRldik7Cj4gICAK PiAgIAlyZXR1cm4gMDsKPiAgIGZhaWxfaXJxOgo+IC0JcmVndWxhdG9yX2Rpc2FibGUobWRzcy0+ dmRkKTsKPiArCXJlZ3VsYXRvcl9kaXNhYmxlKG1kcDVfbWRzcy0+dmRkKTsKPiAgIGZhaWw6Cj4g ICAJcmV0dXJuIHJldDsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+IGluZGV4IDdmNzMyMWVi NTMxMi4uMjYwOGQzZjc3OTU2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiBAQCAtMjA4LDYg KzIwOCw3IEBAIHN0YXRpYyBpbnQgbXNtX2RybV91bmluaXQoc3RydWN0IGRldmljZSAqZGV2KQo+ ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7 Cj4gICAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRkZXYtPmRldl9wcml2YXRlOwo+ ICAgCXN0cnVjdCBtc21fa21zICprbXMgPSBwcml2LT5rbXM7Cj4gKwlzdHJ1Y3QgbXNtX21kc3Mg Km1kc3MgPSBwcml2LT5tZHNzOwo+ICAgCXN0cnVjdCBtc21fdmJsYW5rX2N0cmwgKnZibF9jdHJs ID0gJnByaXYtPnZibGFua19jdHJsOwo+ICAgCXN0cnVjdCB2YmxhbmtfZXZlbnQgKnZibF9ldiwg KnRtcDsKPiAgIAo+IEBAIC0yNTgsNyArMjU5LDggQEAgc3RhdGljIGludCBtc21fZHJtX3VuaW5p dChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gICAKPiAgIAljb21wb25lbnRfdW5iaW5kX2FsbChkZXYs IGRkZXYpOwo+ICAgCj4gLQltc21fbWRzc19kZXN0cm95KGRkZXYpOwo+ICsJaWYgKG1kc3MgJiYg bWRzcy0+ZnVuY3MpCj4gKwkJbWRzcy0+ZnVuY3MtPmRlc3Ryb3koZGRldik7Cj4gICAKPiAgIAlk ZGV2LT5kZXZfcHJpdmF0ZSA9IE5VTEw7Cj4gICAJZHJtX2Rldl91bnJlZihkZGV2KTsKPiBAQCAt MzU3LDYgKzM1OSw3IEBAIHN0YXRpYyBpbnQgbXNtX2RybV9pbml0KHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRybV9kcml2ZXIgKmRydikKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldjsK PiAgIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2Owo+ICAgCXN0cnVjdCBtc21fa21zICpr bXM7Cj4gKwlzdHJ1Y3QgbXNtX21kc3MgKm1kc3M7Cj4gICAJaW50IHJldDsKPiAgIAo+ICAgCWRk ZXYgPSBkcm1fZGV2X2FsbG9jKGRydiwgZGV2KTsKPiBAQCAtMzc2LDEzICszNzksMTUgQEAgc3Rh dGljIGludCBtc21fZHJtX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2RyaXZl ciAqZHJ2KQo+ICAgCWRkZXYtPmRldl9wcml2YXRlID0gcHJpdjsKPiAgIAlwcml2LT5kZXYgPSBk ZGV2Owo+ICAgCj4gLQlyZXQgPSBtc21fbWRzc19pbml0KGRkZXYpOwo+ICsJcmV0ID0gbWRwNV9t ZHNzX2luaXQoZGRldik7Cj4gICAJaWYgKHJldCkgewo+ICAgCQlrZnJlZShwcml2KTsKPiAgIAkJ ZHJtX2Rldl91bnJlZihkZGV2KTsKPiAgIAkJcmV0dXJuIHJldDsKPiAgIAl9Cj4gICAKPiArCW1k c3MgPSBwcml2LT5tZHNzOwo+ICsKPiAgIAlwcml2LT53cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1 ZXVlKCJtc20iLCAwKTsKPiAgIAlwcml2LT5hdG9taWNfd3EgPSBhbGxvY19vcmRlcmVkX3dvcmtx dWV1ZSgibXNtOmF0b21pYyIsIDApOwo+ICAgCj4gQEAgLTM5Niw3ICs0MDEsOCBAQCBzdGF0aWMg aW50IG1zbV9kcm1faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZHJpdmVyICpk cnYpCj4gICAJLyogQmluZCBhbGwgb3VyIHN1Yi1jb21wb25lbnRzOiAqLwo+ICAgCXJldCA9IGNv bXBvbmVudF9iaW5kX2FsbChkZXYsIGRkZXYpOwo+ICAgCWlmIChyZXQpIHsKPiAtCQltc21fbWRz c19kZXN0cm95KGRkZXYpOwo+ICsJCWlmIChtZHNzICYmIG1kc3MtPmZ1bmNzKQo+ICsJCQltZHNz LT5mdW5jcy0+ZGVzdHJveShkZGV2KTsKPiAgIAkJa2ZyZWUocHJpdik7Cj4gICAJCWRybV9kZXZf dW5yZWYoZGRldik7Cj4gICAJCXJldHVybiByZXQ7Cj4gQEAgLTkyNCwxMSArOTMwLDEyIEBAIHN0 YXRpYyBpbnQgbXNtX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gICB7Cj4g ICAJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiAgIAlz dHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1 Y3QgbXNtX21kc3MgKm1kc3MgPSBwcml2LT5tZHNzOwo+ICAgCj4gICAJREJHKCIiKTsKPiAgIAo+ IC0JaWYgKHByaXYtPm1kc3MpCj4gLQkJcmV0dXJuIG1zbV9tZHNzX2Rpc2FibGUocHJpdi0+bWRz cyk7Cj4gKwlpZiAobWRzcyAmJiBtZHNzLT5mdW5jcykKPiArCQlyZXR1cm4gbWRzcy0+ZnVuY3Mt PmRpc2FibGUobWRzcyk7Cj4gICAKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiBAQCAtOTM3LDExICs5 NDQsMTIgQEAgc3RhdGljIGludCBtc21fcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2 KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRl dik7Cj4gICAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRkZXYtPmRldl9wcml2YXRl Owo+ICsJc3RydWN0IG1zbV9tZHNzICptZHNzID0gcHJpdi0+bWRzczsKPiAgIAo+ICAgCURCRygi Iik7Cj4gICAKPiAtCWlmIChwcml2LT5tZHNzKQo+IC0JCXJldHVybiBtc21fbWRzc19lbmFibGUo cHJpdi0+bWRzcyk7Cj4gKwlpZiAobWRzcyAmJiBtZHNzLT5mdW5jcykKPiArCQlyZXR1cm4gbWRz cy0+ZnVuY3MtPmVuYWJsZShtZHNzKTsKPiAgIAo+ICAgCXJldHVybiAwOwo+ICAgfQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2ttcy5oCj4gaW5kZXggZGZkOTI5NDdkZTJjLi43NmMxNDIyMWZmZGYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9rbXMuaAo+IEBAIC04Niw5ICs4NiwxOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg bXNtX2ttc19pbml0KHN0cnVjdCBtc21fa21zICprbXMsCj4gICAKPiAgIHN0cnVjdCBtc21fa21z ICptZHA0X2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICAgc3RydWN0IG1zbV9r bXMgKm1kcDVfa21zX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gLWludCBtc21fbWRz c19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IC12b2lkIG1zbV9tZHNzX2Rlc3Ryb3ko c3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gLWludCBtc21fbWRzc19lbmFibGUoc3RydWN0IG1z bV9tZHNzICptZHNzKTsKPiAtaW50IG1zbV9tZHNzX2Rpc2FibGUoc3RydWN0IG1zbV9tZHNzICpt ZHNzKTsKPiArCj4gK3N0cnVjdCBtc21fbWRzc19mdW5jcyB7Cj4gKwlpbnQgKCplbmFibGUpKHN0 cnVjdCBtc21fbWRzcyAqbWRzcyk7Cj4gKwlpbnQgKCpkaXNhYmxlKShzdHJ1Y3QgbXNtX21kc3Mg Km1kc3MpOwo+ICsJdm9pZCAoKmRlc3Ryb3kpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICt9 Owo+ICsKPiArc3RydWN0IG1zbV9tZHNzIHsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7Cj4g Kwljb25zdCBzdHJ1Y3QgbXNtX21kc3NfZnVuY3MgKmZ1bmNzOwo+ICt9Owo+ICsKPiAraW50IG1k cDVfbWRzc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICAgCj4gICAjZW5kaWYgLyog X19NU01fS01TX0hfXyAqLwo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9m cmVlZHJlbm8K