From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [PATCH 2/5] drm/msm/dsi: add implementation for helper functions Date: Tue, 13 Mar 2018 10:49:22 +0530 Message-ID: <1091cdf6-7322-17ad-f156-c65cfe7df87a@codeaurora.org> References: <1520860994-23334-1-git-send-email-sibis@codeaurora.org> <1520860994-23334-3-git-send-email-sibis@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1520860994-23334-3-git-send-email-sibis-sgV2jX0FEOL9JmXXK+q4OQ@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: Sibi S , robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org CgpPbiBNb25kYXkgMTIgTWFyY2ggMjAxOCAwNjo1MyBQTSwgU2liaSBTIHdyb3RlOgo+IEFkZCBk c2kgaG9zdCBoZWxwZXIgZnVuY3Rpb24gaW1wbGVtZW50YXRpb24gZm9yIERTSSB2Mgo+IGFuZCBE U0kgNkcgMS54IGNvbnRyb2xsZXJzCj4gCj4gU2lnbmVkLW9mZi1ieTogU2liaSBTIDxzaWJpc0Bj b2RlYXVyb3JhLm9yZz4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaS5oICAg ICAgfCAgMTUgKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfY2ZnLmMgIHwgIDQ0 ICsrKysrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9ob3N0LmMgfCAyNTAgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICAgMyBmaWxlcyBjaGFuZ2VkLCAy OTggaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vZHNpL2RzaS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpLmgK PiBpbmRleCA4MGJlODNlLi5kZmEwNDlkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t c20vZHNpL2RzaS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpLmgKPiBAQCAt MTgzLDYgKzE4MywyMSBAQCBpbnQgbXNtX2RzaV9ob3N0X21vZGVzZXRfaW5pdChzdHJ1Y3QgbWlw aV9kc2lfaG9zdCAqaG9zdCwKPiAgIGludCBtc21fZHNpX2hvc3RfaW5pdChzdHJ1Y3QgbXNtX2Rz aSAqbXNtX2RzaSk7Cj4gICBpbnQgbXNtX2RzaV9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmlj ZSAqZGV2KTsKPiAgIGludCBtc21fZHNpX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRl dik7Cj4gK2ludCBkc2lfbGlua19jbGtfZW5hYmxlXzZnKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1z bV9ob3N0KTsKPiAraW50IGRzaV9saW5rX2Nsa19lbmFibGVfdjIoc3RydWN0IG1zbV9kc2lfaG9z dCAqbXNtX2hvc3QpOwo+ICt2b2lkIGRzaV9saW5rX2Nsa19kaXNhYmxlXzZnKHN0cnVjdCBtc21f ZHNpX2hvc3QgKm1zbV9ob3N0KTsKPiArdm9pZCBkc2lfbGlua19jbGtfZGlzYWJsZV92MihzdHJ1 Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCk7Cj4gK2ludCBkc2lfdHhfYnVmX2FsbG9jXzZnKHN0 cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0LCBpbnQgc2l6ZSk7Cj4gK2ludCBkc2lfdHhfYnVm X2FsbG9jX3YyKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0LCBpbnQgc2l6ZSk7Cj4gK3Zv aWQgKmRzaV90eF9idWZfZ2V0XzZnKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KTsKPiAr dm9pZCAqZHNpX3R4X2J1Zl9nZXRfdjIoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpOwo+ ICt2b2lkIGRzaV90eF9idWZfcHV0XzZnKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KTsK PiAraW50IGRzaV9kbWFfYmFzZV9nZXRfNmcoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3Qs IHVpbnQ2NF90ICppb3ZhKTsKPiAraW50IGRzaV9kbWFfYmFzZV9nZXRfdjIoc3RydWN0IG1zbV9k c2lfaG9zdCAqbXNtX2hvc3QsIHVpbnQ2NF90ICppb3ZhKTsKPiAraW50IGRzaV9jbGtfaW5pdF92 MihzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCk7Cj4gK2ludCBkc2lfY2xrX2luaXRfNmdf djIoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpOwo+ICtpbnQgZHNpX2NhbGNfY2xrX3Jh dGVfdjIoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpOwo+ICtpbnQgZHNpX2NhbGNfY2xr X3JhdGVfNmcoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpOwo+ICAgCj4gICAvKiBkc2kg cGh5ICovCj4gICBzdHJ1Y3QgbXNtX2RzaV9waHk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZHNpL2RzaV9jZmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9jZmcu Ywo+IGluZGV4IDAzMjdiYjUuLmRjNTFhYWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9kc2kvZHNpX2NmZy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX2Nm Zy5jCj4gQEAgLTEzNiwyMCArMTM2LDQ2IEBACj4gICAJLm51bV9kc2kgPSAyLAo+ICAgfTsKPiAg IAo+ICtjb25zdCBzdGF0aWMgc3RydWN0IG1zbV9kc2lfaG9zdF9jZmdfb3BzIG1zbV9kc2lfdjJf aG9zdF9vcHMgPSB7Cj4gKwkubGlua19jbGtfZW5hYmxlID0gZHNpX2xpbmtfY2xrX2VuYWJsZV92 MiwKPiArCS5saW5rX2Nsa19kaXNhYmxlID0gZHNpX2xpbmtfY2xrX2Rpc2FibGVfdjIsCj4gKwku Y2xrX2luaXRfdmVyID0gZHNpX2Nsa19pbml0X3YyLAo+ICsJLnR4X2J1Zl9hbGxvYyA9IGRzaV90 eF9idWZfYWxsb2NfdjIsCj4gKwkudHhfYnVmX2dldCA9IGRzaV90eF9idWZfZ2V0X3YyLAo+ICsJ LnR4X2J1Zl9wdXQgPSBOVUxMLAo+ICsJLmRtYV9iYXNlX2dldCA9IGRzaV9kbWFfYmFzZV9nZXRf djIsCj4gKwkuY2FsY19jbGtfcmF0ZSA9IGRzaV9jYWxjX2Nsa19yYXRlX3YyLAo+ICt9Owo+ICsK PiArY29uc3Qgc3RhdGljIHN0cnVjdCBtc21fZHNpX2hvc3RfY2ZnX29wcyBtc21fZHNpXzZnX2hv c3Rfb3BzID0gewo+ICsJLmxpbmtfY2xrX2VuYWJsZSA9IGRzaV9saW5rX2Nsa19lbmFibGVfNmcs Cj4gKwkubGlua19jbGtfZGlzYWJsZSA9IGRzaV9saW5rX2Nsa19kaXNhYmxlXzZnLAo+ICsJLmNs a19pbml0X3ZlciA9IE5VTEwsCj4gKwkudHhfYnVmX2FsbG9jID0gZHNpX3R4X2J1Zl9hbGxvY182 ZywKPiArCS50eF9idWZfZ2V0ID0gZHNpX3R4X2J1Zl9nZXRfNmcsCj4gKwkudHhfYnVmX3B1dCA9 IGRzaV90eF9idWZfcHV0XzZnLAo+ICsJLmRtYV9iYXNlX2dldCA9IGRzaV9kbWFfYmFzZV9nZXRf NmcsCj4gKwkuY2FsY19jbGtfcmF0ZSA9IGRzaV9jYWxjX2Nsa19yYXRlXzZnLAo+ICt9OwoKQ291 bGQgeW91IGludHJvZHVjZSB0aGUgaG9zdCBvcHMgZm9yIFNETTg0NSAoaS5lLAptc21fZHNpXzZn X3YyX2hvc3Rfb3BzKSBpbiB0aGlzIHBhdGNoIGl0c2VsZj8gSXQgd291bGQgYmUgbmljZSB0bwpr ZWVwIHRoZSBEU0kgY29tbWFuZCBicm9hZGNhc3QgY29kZSBhcyBhIHNlcGFyYXRlIHBhdGNoIHNp bmNlIGl0CnByb2JhYmx5IG5lZWRzIHRvIGdvIHRocm91Z2ggbW9yZSBpdGVyYXRpb25zLgoKVGhl IG9wcyBhcHByb2FjaCBsb29rcyBnb29kIG90aGVyd2lzZS4KClRoYW5rcywKQXJjaGl0Cgo+ICAg c3RhdGljIGNvbnN0IHN0cnVjdCBtc21fZHNpX2NmZ19oYW5kbGVyIGRzaV9jZmdfaGFuZGxlcnNb XSA9IHsKPiAtCXtNU01fRFNJX1ZFUl9NQUpPUl9WMiwgTVNNX0RTSV9WMl9WRVJfTUlOT1JfODA2 NCwgJmFwcTgwNjRfZHNpX2NmZ30sCj4gKwl7TVNNX0RTSV9WRVJfTUFKT1JfVjIsIE1TTV9EU0lf VjJfVkVSX01JTk9SXzgwNjQsCj4gKwkJJmFwcTgwNjRfZHNpX2NmZywgJm1zbV9kc2lfdjJfaG9z dF9vcHN9LAo+ICAgCXtNU01fRFNJX1ZFUl9NQUpPUl82RywgTVNNX0RTSV82R19WRVJfTUlOT1Jf VjFfMCwKPiAtCQkJCQkJJm1zbTg5NzRfYXBxODA4NF9kc2lfY2ZnfSwKPiArCQkmbXNtODk3NF9h cHE4MDg0X2RzaV9jZmcsICZtc21fZHNpXzZnX2hvc3Rfb3BzfSwKPiAgIAl7TVNNX0RTSV9WRVJf TUFKT1JfNkcsIE1TTV9EU0lfNkdfVkVSX01JTk9SX1YxXzEsCj4gLQkJCQkJCSZtc204OTc0X2Fw cTgwODRfZHNpX2NmZ30sCj4gKwkJJm1zbTg5NzRfYXBxODA4NF9kc2lfY2ZnLCAmbXNtX2RzaV82 Z19ob3N0X29wc30sCj4gICAJe01TTV9EU0lfVkVSX01BSk9SXzZHLCBNU01fRFNJXzZHX1ZFUl9N SU5PUl9WMV8xXzEsCj4gLQkJCQkJCSZtc204OTc0X2FwcTgwODRfZHNpX2NmZ30sCj4gKwkJJm1z bTg5NzRfYXBxODA4NF9kc2lfY2ZnLCAmbXNtX2RzaV82Z19ob3N0X29wc30sCj4gICAJe01TTV9E U0lfVkVSX01BSk9SXzZHLCBNU01fRFNJXzZHX1ZFUl9NSU5PUl9WMV8yLAo+IC0JCQkJCQkmbXNt ODk3NF9hcHE4MDg0X2RzaV9jZmd9LAo+IC0Je01TTV9EU0lfVkVSX01BSk9SXzZHLCBNU01fRFNJ XzZHX1ZFUl9NSU5PUl9WMV8zLCAmbXNtODk5NF9kc2lfY2ZnfSwKPiAtCXtNU01fRFNJX1ZFUl9N QUpPUl82RywgTVNNX0RTSV82R19WRVJfTUlOT1JfVjFfM18xLCAmbXNtODkxNl9kc2lfY2ZnfSwK PiAtCXtNU01fRFNJX1ZFUl9NQUpPUl82RywgTVNNX0RTSV82R19WRVJfTUlOT1JfVjFfNF8xLCAm bXNtODk5Nl9kc2lfY2ZnfSwKPiAtCXtNU01fRFNJX1ZFUl9NQUpPUl82RywgTVNNX0RTSV82R19W RVJfTUlOT1JfVjJfMl8xLCAmc2RtODQ1X2RzaV9jZmd9LAo+ICsJCSZtc204OTc0X2FwcTgwODRf ZHNpX2NmZywgJm1zbV9kc2lfNmdfaG9zdF9vcHN9LAo+ICsJe01TTV9EU0lfVkVSX01BSk9SXzZH LCBNU01fRFNJXzZHX1ZFUl9NSU5PUl9WMV8zLAo+ICsJCSZtc204OTk0X2RzaV9jZmcsICZtc21f ZHNpXzZnX2hvc3Rfb3BzfSwKPiArCXtNU01fRFNJX1ZFUl9NQUpPUl82RywgTVNNX0RTSV82R19W RVJfTUlOT1JfVjFfM18xLAo+ICsJCSZtc204OTE2X2RzaV9jZmcsICZtc21fZHNpXzZnX2hvc3Rf b3BzfSwKPiArCXtNU01fRFNJX1ZFUl9NQUpPUl82RywgTVNNX0RTSV82R19WRVJfTUlOT1JfVjFf NF8xLAo+ICsJCSZtc204OTk2X2RzaV9jZmcsICZtc21fZHNpXzZnX2hvc3Rfb3BzfSwKPiArCXtN U01fRFNJX1ZFUl9NQUpPUl82RywgTVNNX0RTSV82R19WRVJfTUlOT1JfVjJfMl8xLAo+ICsJCSZz ZG04NDVfZHNpX2NmZywgJm1zbV9kc2lfNmdfaG9zdF9vcHN9LAo+ICAgfTsKPiAgIAo+ICAgY29u c3Qgc3RydWN0IG1zbV9kc2lfY2ZnX2hhbmRsZXIgKm1zbV9kc2lfY2ZnX2dldCh1MzIgbWFqb3Is IHUzMiBtaW5vcikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX2hv c3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9ob3N0LmMKPiBpbmRleCA3YTAzYTk0 Li5mN2EwNjZkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9ob3N0 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfaG9zdC5jCj4gQEAgLTMzMSw2 ICszMzEsNTQgQEAgc3RhdGljIGludCBkc2lfcmVndWxhdG9yX2luaXQoc3RydWN0IG1zbV9kc2lf aG9zdCAqbXNtX2hvc3QpCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiAraW50IGRzaV9jbGtf aW5pdF92MihzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkKPiArewo+ICsJc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldiA9IG1zbV9ob3N0LT5wZGV2Owo+ICsJaW50IHJldCA9IDA7Cj4g Kwo+ICsJbXNtX2hvc3QtPnNyY19jbGsgPSBtc21fY2xrX2dldChwZGV2LCAic3JjIik7Cj4gKwo+ ICsJaWYgKElTX0VSUihtc21faG9zdC0+c3JjX2NsaykpIHsKPiArCQlyZXQgPSBQVFJfRVJSKG1z bV9ob3N0LT5zcmNfY2xrKTsKPiArCQlwcl9lcnIoIiVzOiBjYW4ndCBmaW5kIHNyYyBjbG9jay4g cmV0PSVkXG4iLAo+ICsJCQlfX2Z1bmNfXywgcmV0KTsKPiArCQltc21faG9zdC0+c3JjX2NsayA9 IE5VTEw7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwltc21faG9zdC0+ZXNjX2Nsa19z cmMgPSBjbGtfZ2V0X3BhcmVudChtc21faG9zdC0+ZXNjX2Nsayk7Cj4gKwlpZiAoIW1zbV9ob3N0 LT5lc2NfY2xrX3NyYykgewo+ICsJCXJldCA9IC1FTk9ERVY7Cj4gKwkJcHJfZXJyKCIlczogY2Fu J3QgZ2V0IGVzYyBjbG9jayBwYXJlbnQuIHJldD0lZFxuIiwKPiArCQkJX19mdW5jX18sIHJldCk7 Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwltc21faG9zdC0+ZHNpX2Nsa19zcmMgPSBj bGtfZ2V0X3BhcmVudChtc21faG9zdC0+c3JjX2Nsayk7Cj4gKwlpZiAoIW1zbV9ob3N0LT5kc2lf Y2xrX3NyYykgewo+ICsJCXJldCA9IC1FTk9ERVY7Cj4gKwkJcHJfZXJyKCIlczogY2FuJ3QgZ2V0 IHNyYyBjbG9jayBwYXJlbnQuIHJldD0lZFxuIiwKPiArCQkJX19mdW5jX18sIHJldCk7Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAraW50IGRzaV9jbGtfaW5pdF82Z192Mihz dHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkKPiArewo+ICsJc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldiA9IG1zbV9ob3N0LT5wZGV2Owo+ICsJaW50IHJldCA9IDA7Cj4gKwo+ICsJbXNt X2hvc3QtPmJ5dGVfaW50Zl9jbGsgPSBtc21fY2xrX2dldChwZGV2LCAiYnl0ZV9pbnRmIik7Cj4g KwlpZiAoSVNfRVJSKG1zbV9ob3N0LT5ieXRlX2ludGZfY2xrKSkgewo+ICsJCXJldCA9IFBUUl9F UlIobXNtX2hvc3QtPmJ5dGVfaW50Zl9jbGspOwo+ICsJCXByX2VycigiJXM6IGNhbid0IGZpbmQg Ynl0ZV9pbnRmIGNsb2NrLiByZXQ9JWRcbiIsCj4gKwkJCV9fZnVuY19fLCByZXQpOwo+ICsJfQo+ ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gICBzdGF0aWMgaW50IGRzaV9jbGtfaW5pdChz dHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkKPiAgIHsKPiAgIAlzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2ID0gbXNtX2hvc3QtPnBkZXY7Cj4gQEAgLTQ5Nyw3ICs1NDUsNyBAQCBpbnQg bXNtX2RzaV9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gICAJcmV0dXJuIGRz aV9idXNfY2xrX2VuYWJsZShtc21faG9zdCk7Cj4gICB9Cj4gICAKPiAtc3RhdGljIGludCBkc2lf bGlua19jbGtfZW5hYmxlXzZnKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQo+ICtpbnQg ZHNpX2xpbmtfY2xrX2VuYWJsZV82ZyhzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkKPiAg IHsKPiAgIAlpbnQgcmV0Owo+ICAgCj4gQEAgLTU2NSw3ICs2MTMsNyBAQCBzdGF0aWMgaW50IGRz aV9saW5rX2Nsa19lbmFibGVfNmcoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpCj4gICAJ cmV0dXJuIHJldDsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50IGRzaV9saW5rX2Nsa19lbmFibGVf djIoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpCj4gK2ludCBkc2lfbGlua19jbGtfZW5h YmxlX3YyKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQo+ICAgewo+ICAgCWludCByZXQ7 Cj4gICAKPiBAQCAtNjQzLDYgKzY5MSwyMyBAQCBzdGF0aWMgaW50IGRzaV9saW5rX2Nsa19lbmFi bGUoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpCj4gICAJCXJldHVybiBkc2lfbGlua19j bGtfZW5hYmxlX3YyKG1zbV9ob3N0KTsKPiAgIH0KPiAgIAo+ICt2b2lkIGRzaV9saW5rX2Nsa19k aXNhYmxlXzZnKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQo+ICt7Cj4gKwljbGtfZGlz YWJsZV91bnByZXBhcmUobXNtX2hvc3QtPmVzY19jbGspOwo+ICsJY2xrX2Rpc2FibGVfdW5wcmVw YXJlKG1zbV9ob3N0LT5waXhlbF9jbGspOwo+ICsJaWYgKG1zbV9ob3N0LT5ieXRlX2ludGZfY2xr KQo+ICsJCWNsa19kaXNhYmxlX3VucHJlcGFyZShtc21faG9zdC0+Ynl0ZV9pbnRmX2Nsayk7Cj4g KwljbGtfZGlzYWJsZV91bnByZXBhcmUobXNtX2hvc3QtPmJ5dGVfY2xrKTsKPiArfQo+ICsKPiAr dm9pZCBkc2lfbGlua19jbGtfZGlzYWJsZV92MihzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9z dCkKPiArewo+ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1zbV9ob3N0LT5waXhlbF9jbGspOwo+ ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1zbV9ob3N0LT5zcmNfY2xrKTsKPiArCWNsa19kaXNh YmxlX3VucHJlcGFyZShtc21faG9zdC0+ZXNjX2Nsayk7Cj4gKwljbGtfZGlzYWJsZV91bnByZXBh cmUobXNtX2hvc3QtPmJ5dGVfY2xrKTsKPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIGRzaV9saW5r X2Nsa19kaXNhYmxlKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQo+ICAgewo+ICAgCWNv bnN0IHN0cnVjdCBtc21fZHNpX2NmZ19oYW5kbGVyICpjZmdfaG5kID0gbXNtX2hvc3QtPmNmZ19o bmQ7Cj4gQEAgLTY2MSw2ICs3MjYsOTQgQEAgc3RhdGljIHZvaWQgZHNpX2xpbmtfY2xrX2Rpc2Fi bGUoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpCj4gICAJfQo+ICAgfQo+ICAgCj4gK2lu dCBkc2lfY2FsY19jbGtfcmF0ZV82ZyhzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkKPiAr ewo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSBtc21faG9zdC0+bW9kZTsKPiAr CXU4IGxhbmVzID0gbXNtX2hvc3QtPmxhbmVzOwo+ICsJdTMyIGJwcCA9IGRzaV9nZXRfYnBwKG1z bV9ob3N0LT5mb3JtYXQpOwo+ICsJdTMyIHBjbGtfcmF0ZTsKPiArCj4gKwlpZiAoIW1vZGUpIHsK PiArCQlwcl9lcnIoIiVzOiBtb2RlIG5vdCBzZXRcbiIsIF9fZnVuY19fKTsKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiArCX0KPiArCj4gKwlwY2xrX3JhdGUgPSBtb2RlLT5jbG9jayAqIDEwMDA7Cj4g KwlpZiAobGFuZXMgPiAwKSB7Cj4gKwkJbXNtX2hvc3QtPmJ5dGVfY2xrX3JhdGUgPSAocGNsa19y YXRlICogYnBwKSAvICg4ICogbGFuZXMpOwo+ICsJfSBlbHNlIHsKPiArCQlwcl9lcnIoIiVzOiBm b3JjaW5nIG1kc3NfZHNpIGxhbmVzIHRvIDFcbiIsIF9fZnVuY19fKTsKPiArCQltc21faG9zdC0+ Ynl0ZV9jbGtfcmF0ZSA9IChwY2xrX3JhdGUgKiBicHApIC8gODsKPiArCX0KPiArCj4gKwlEQkco InBjbGs9JWQsIGJjbGs9JWQiLCBwY2xrX3JhdGUsIG1zbV9ob3N0LT5ieXRlX2Nsa19yYXRlKTsK PiArCj4gKwltc21faG9zdC0+ZXNjX2Nsa19yYXRlID0gY2xrX2dldF9yYXRlKG1zbV9ob3N0LT5l c2NfY2xrKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAraW50IGRzaV9jYWxjX2Nsa19y YXRlX3YyKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZSA9IG1zbV9ob3N0LT5tb2RlOwo+ICsJdTggbGFuZXMgPSBtc21f aG9zdC0+bGFuZXM7Cj4gKwl1MzIgYnBwID0gZHNpX2dldF9icHAobXNtX2hvc3QtPmZvcm1hdCk7 Cj4gKwl1MzIgcGNsa19yYXRlOwo+ICsJdW5zaWduZWQgaW50IGVzY19taHosIGVzY19kaXY7Cj4g Kwl1bnNpZ25lZCBsb25nIGJ5dGVfbWh6Owo+ICsKPiArCWlmICghbW9kZSkgewo+ICsJCXByX2Vy cigiJXM6IG1vZGUgbm90IHNldFxuIiwgX19mdW5jX18pOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ ICsJfQo+ICsKPiArCXBjbGtfcmF0ZSA9IG1vZGUtPmNsb2NrICogMTAwMDsKPiArCWlmIChsYW5l cyA+IDApIHsKPiArCQltc21faG9zdC0+Ynl0ZV9jbGtfcmF0ZSA9IChwY2xrX3JhdGUgKiBicHAp IC8gKDggKiBsYW5lcyk7Cj4gKwl9IGVsc2Ugewo+ICsJCXByX2VycigiJXM6IGZvcmNpbmcgbWRz c19kc2kgbGFuZXMgdG8gMVxuIiwgX19mdW5jX18pOwo+ICsJCW1zbV9ob3N0LT5ieXRlX2Nsa19y YXRlID0gKHBjbGtfcmF0ZSAqIGJwcCkgLyA4Owo+ICsJfQo+ICsKPiArCURCRygicGNsaz0lZCwg YmNsaz0lZCIsIHBjbGtfcmF0ZSwgbXNtX2hvc3QtPmJ5dGVfY2xrX3JhdGUpOwo+ICsKPiArCW1z bV9ob3N0LT5zcmNfY2xrX3JhdGUgPSAocGNsa19yYXRlICogYnBwKSAvIDg7Cj4gKwo+ICsJLyoK PiArCSAqIGVzYyBjbG9jayBpcyBieXRlIGNsb2NrIGZvbGxvd2VkIGJ5IGEgNCBiaXQgZGl2aWRl ciwKPiArCSAqIHdlIG5lZWQgdG8gZmluZCBhbiBlc2NhcGUgY2xvY2sgZnJlcXVlbmN5IHdpdGhp biB0aGUKPiArCSAqIG1pcGkgRFNJIHNwZWMgcmFuZ2Ugd2l0aGluIHRoZSBtYXhpbXVtIGRpdmlk ZXIgbGltaXQKPiArCSAqIFdlIGl0ZXJhdGUgaGVyZSBiZXR3ZWVuIGFuIGVzY2FwZSBjbG9jayBm cmVxdWVuY2V5Cj4gKwkgKiBiZXR3ZWVuIDIwIE1oeiB0byA1IE1oeiBhbmQgcGljayB1cCB0aGUg Zmlyc3Qgb25lCj4gKwkgKiB0aGF0IGNhbiBiZSBzdXBwb3J0ZWQgYnkgb3VyIGRpdmlkZXIKPiAr CSAqLwo+ICsKPiArCWJ5dGVfbWh6ID0gbXNtX2hvc3QtPmJ5dGVfY2xrX3JhdGUgLyAxMDAwMDAw Owo+ICsKPiArCWZvciAoZXNjX21oeiA9IDIwOyBlc2NfbWh6ID49IDU7IGVzY19taHotLSkgewo+ ICsJCWVzY19kaXYgPSBESVZfUk9VTkRfVVAoYnl0ZV9taHosIGVzY19taHopOwo+ICsKPiArCQkv Kgo+ICsJCSAqIFRPRE86IElkZWFsbHksIHdlIHNob3VsZG4ndCBrbm93IHdoYXQgc29ydCBvZiBk aXZpZGVyCj4gKwkJICogaXMgYXZhaWxhYmxlIGluIG1tc3NfY2MsIHdlJ3JlIGp1c3QgYXNzdW1p bmcgdGhhdAo+ICsJCSAqIGl0J2xsIGFsd2F5cyBiZSBhIDQgYml0IGRpdmlkZXIuIE5lZWQgdG8g Y29tZSB1cCB3aXRoCj4gKwkJICogYSBiZXR0ZXIgd2F5IGhlcmUuCj4gKwkJICovCj4gKwkJaWYg KGVzY19kaXYgPj0gMSAmJiBlc2NfZGl2IDw9IDE2KQo+ICsJCQlicmVhazsKPiArCX0KPiArCj4g KwlpZiAoZXNjX21oeiA8IDUpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJbXNtX2hvc3Qt PmVzY19jbGtfcmF0ZSA9IG1zbV9ob3N0LT5ieXRlX2Nsa19yYXRlIC8gZXNjX2RpdjsKPiArCj4g KwlEQkcoImVzYz0lZCwgc3JjPSVkIiwgbXNtX2hvc3QtPmVzY19jbGtfcmF0ZSwKPiArCQltc21f aG9zdC0+c3JjX2Nsa19yYXRlKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgIHN0YXRp YyBpbnQgZHNpX2NhbGNfY2xrX3JhdGUoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpCj4g ICB7Cj4gICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSBtc21faG9zdC0+bW9kZTsK PiBAQCAtMTAwOCw2ICsxMTYxLDU5IEBAIHN0YXRpYyB2b2lkIGRzaV93YWl0NHZpZGVvX2VuZ19i dXN5KHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQo+ICAgCX0KPiAgIH0KPiAgIAo+ICtp bnQgZHNpX3R4X2J1Zl9hbGxvY182ZyhzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCwgaW50 IHNpemUpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtc21faG9zdC0+ZGV2Owo+ ICsJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlp bnQgcmV0Owo+ICsJdWludDY0X3QgaW92YTsKPiArCj4gKwltc21faG9zdC0+dHhfZ2VtX29iaiA9 IG1zbV9nZW1fbmV3KGRldiwgc2l6ZSwgTVNNX0JPX1VOQ0FDSEVEKTsKPiArCWlmIChJU19FUlIo bXNtX2hvc3QtPnR4X2dlbV9vYmopKSB7Cj4gKwkJcmV0ID0gUFRSX0VSUihtc21faG9zdC0+dHhf Z2VtX29iaik7Cj4gKwkJcHJfZXJyKCIlczogZmFpbGVkIHRvIGFsbG9jYXRlIGdlbSwgJWRcbiIs Cj4gKwkJCV9fZnVuY19fLCByZXQpOwo+ICsJCW1zbV9ob3N0LT50eF9nZW1fb2JqID0gTlVMTDsK PiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldCA9IG1zbV9nZW1fZ2V0X2lvdmEobXNt X2hvc3QtPnR4X2dlbV9vYmosCj4gKwkJCXByaXYtPmttcy0+YXNwYWNlLCAmaW92YSk7Cj4gKwlt dXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiArCWlmIChyZXQpIHsKPiArCQlwcl9l cnIoIiVzOiBmYWlsZWQgdG8gZ2V0IGlvdmEsICVkXG4iLCBfX2Z1bmNfXywgcmV0KTsKPiArCQly ZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCWlmIChpb3ZhICYgMHgwNykgewo+ICsJCXByX2Vycigi JXM6IGJ1ZiBOT1QgOCBieXRlcyBhbGlnbmVkXG4iLCBfX2Z1bmNfXyk7Cj4gKwkJcmV0dXJuIC1F SU5WQUw7Cj4gKwl9Cj4gKwo+ICsJbXNtX2hvc3QtPnR4X3NpemUgPSBtc21faG9zdC0+dHhfZ2Vt X29iai0+c2l6ZTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAraW50IGRzaV90eF9idWZf YWxsb2NfdjIoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QsIGludCBzaXplKQo+ICt7Cj4g KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbXNtX2hvc3QtPmRldjsKPiArCWludCByZXQ7Cj4g Kwo+ICsJbXNtX2hvc3QtPnR4X2J1ZiA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYtPmRldiwgc2l6 ZSwKPiArCQkJCQkmbXNtX2hvc3QtPnR4X2J1Zl9wYWRkciwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAo IW1zbV9ob3N0LT50eF9idWYpIHsKPiArCQlyZXQgPSAtRU5PTUVNOwo+ICsJCXByX2VycigiJXM6 IGZhaWxlZCB0byBhbGxvY2F0ZSB0eCBidWYsICVkXG4iLAo+ICsJCQlfX2Z1bmNfXywgcmV0KTsK PiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCW1zbV9ob3N0LT50eF9zaXplID0gc2l6ZTsK PiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgIC8qIGRzaV9jbWQgKi8KPiAgIHN0YXRpYyBp bnQgZHNpX3R4X2J1Zl9hbGxvYyhzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCwgaW50IHNp emUpCj4gICB7Cj4gQEAgLTEwNzIsNiArMTI3OCwyMSBAQCBzdGF0aWMgdm9pZCBkc2lfdHhfYnVm X2ZyZWUoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpCj4gICAJCQltc21faG9zdC0+dHhf YnVmX3BhZGRyKTsKPiAgIH0KPiAgIAo+ICt2b2lkICpkc2lfdHhfYnVmX2dldF82ZyhzdHJ1Y3Qg bXNtX2RzaV9ob3N0ICptc21faG9zdCkKPiArewo+ICsJcmV0dXJuIG1zbV9nZW1fZ2V0X3ZhZGRy KG1zbV9ob3N0LT50eF9nZW1fb2JqKTsKPiArfQo+ICsKPiArdm9pZCAqZHNpX3R4X2J1Zl9nZXRf djIoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpCj4gK3sKPiArCXJldHVybiBtc21faG9z dC0+dHhfYnVmOwo+ICt9Cj4gKwo+ICt2b2lkIGRzaV90eF9idWZfcHV0XzZnKHN0cnVjdCBtc21f ZHNpX2hvc3QgKm1zbV9ob3N0KQo+ICt7Cj4gKwltc21fZ2VtX3B1dF92YWRkcihtc21faG9zdC0+ dHhfZ2VtX29iaik7Cj4gK30KPiArCj4gICAvKgo+ICAgICogcHJlcGFyZSBjbWQgYnVmZmVyIHRv IGJlIHR4ZWQKPiAgICAqLwo+IEBAIC0xMTczLDYgKzEzOTQsMzEgQEAgc3RhdGljIGludCBkc2lf bG9uZ19yZWFkX3Jlc3AodTggKmJ1ZiwgY29uc3Qgc3RydWN0IG1pcGlfZHNpX21zZyAqbXNnKQo+ ICAgCXJldHVybiBtc2ctPnJ4X2xlbjsKPiAgIH0KPiAgIAo+ICtpbnQgZHNpX2RtYV9iYXNlX2dl dF82ZyhzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCwgdWludDY0X3QgKmRtYV9iYXNlKQo+ ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbXNtX2hvc3QtPmRldjsKPiArCXN0cnVj dCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJdWludDY0X3Qg Kippb3ZhOwo+ICsJaW50IHJldDsKPiArCj4gKwlpZiAoIWRtYV9iYXNlKQo+ICsJCXJldHVybiAt RUlOVkFMOwo+ICsKPiArCWlvdmEgPSAmZG1hX2Jhc2U7Cj4gKwlyZXQgPSBtc21fZ2VtX2dldF9p b3ZhKG1zbV9ob3N0LT50eF9nZW1fb2JqLAo+ICsJCQkJcHJpdi0+a21zLT5hc3BhY2UsICppb3Zh KTsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK2ludCBkc2lfZG1hX2Jhc2VfZ2V0X3YyKHN0 cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0LCB1aW50NjRfdCAqZG1hX2Jhc2UpCj4gK3sKPiAr CWlmICghZG1hX2Jhc2UpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJKmRtYV9iYXNlID0g bXNtX2hvc3QtPnR4X2J1Zl9wYWRkcjsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgc3RhdGlj IGludCBkc2lfY21kX2RtYV90eChzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCwgaW50IGxl bikKPiAgIHsKPiAgIAljb25zdCBzdHJ1Y3QgbXNtX2RzaV9jZmdfaGFuZGxlciAqY2ZnX2huZCA9 IG1zbV9ob3N0LT5jZmdfaG5kOwo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9mcmVlZHJlbm8K