From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sharat Masetty Subject: Re: [Freedreno] [PATCH 5/5] drm/msm/A6xx: Add support for using system cache(llc) Date: Thu, 5 Apr 2018 10:55:53 +0530 Message-ID: <903c9f7e-29be-cbf7-5f63-e75f820cd0ea@codeaurora.org> References: <1521789591-28628-1-git-send-email-smasetty@codeaurora.org> <1521789591-28628-6-git-send-email-smasetty@codeaurora.org> <20180403212451.GI22210@jcrouse-lnx.qualcomm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180403212451.GI22210@jcrouse-lnx.qualcomm.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: vivek.gautam@codeaurora.org List-Id: dri-devel@lists.freedesktop.org CgpPbiA0LzQvMjAxOCAyOjU0IEFNLCBKb3JkYW4gQ3JvdXNlIHdyb3RlOgo+IE9uIEZyaSwgTWFy IDIzLCAyMDE4IGF0IDEyOjQ5OjUxUE0gKzA1MzAsIFNoYXJhdCBNYXNldHR5IHdyb3RlOgo+PiBU aGUgbGFzdCBsZXZlbCBzeXN0ZW0gY2FjaGUgY2FuIGJlIHBhcnRpdGlvbmVkIHRvIDMyCj4+IGRp ZmZlcmVudCBzbGljZXMgb2Ygd2hpY2ggR1BVIGhhcyB0d28gc2xpY2VzIHByZWFsbG9jYXRlZC4K Pj4gVGhlICJncHUiIHNsaWNlIGlzIHVzZWQgZm9yIGNhY2hpbmcgR1BVIGJ1ZmZlcnMgYW5kCj4+ IHRoZSAiZ3B1aHR3IiBzbGljZSBpcyB1c2VkIGZvciBjYWNoaW5nIHRoZSBHUFUgU01NVQo+PiBw YWdldGFibGVzLiAgVGhpcyBwYXRjaCB0YWxrcyB0byB0aGUgY29yZSBzeXN0ZW0gY2FjaGUKPj4g ZHJpdmVyIHRvIGFjcXVpcmUgdGhlIHNsaWNlIGhhbmRsZXMsIGNvbmZpZ3VyZSB0aGUgU0NJRCdz Cj4+IHRvIHRob3NlIHNsaWNlcyBhbmQgYWN0aXZhdGVzIGFuZCBkZWFjdGl2YXRlcyB0aGUgc2xp Y2VzCj4+IHVwb24gR1BVIHBvd2VyIGNvbGxhcHNlIGFuZCByZXN0b3JlLgo+Pgo+PiBTb21lIHN1 cHBvcnQgZnJvbSB0aGUgSU9NTVUgZHJpdmVyIGlzIGFsc28gbmVlZGVkIHRvCj4+IG1ha2UgdXNl IG9mIHRoZSBzeXN0ZW0gY2FjaGUuIElPTU1VX1VQU1RSRUFNX0hJTlQgaXMKPj4gYSBidWZmZXIg cHJvdGVjdGlvbiBmbGFnIHdoaWNoIGVuYWJsZXMgY2FjaGluZyBHUFUgZGF0YQo+PiBidWZmZXJz IGluIHRoZSBzeXN0ZW0gY2FjaGUgd2l0aCBtZW1vcnkgYXR0cmlidXRlcyBzdWNoCj4+IGFzIG91 dGVyIGNhY2hlYWJsZSwgcmVhZC1hbGxvY2F0ZSwgd3JpdGUtYWxsb2NhdGUgZm9yIGJ1ZmZlcnMu Cj4+IFRoZSBHUFUgdGhlbiBoYXMgdGhlIGFiaWxpdHkgdG8gb3ZlcnJpZGUgYSBmZXcgY2FjaGVh YmlsaXR5Cj4+IHBhcmFtZXRlcnMgd2hpY2ggaXQgZG9lcyB0byBvdmVycmlkZSB3cml0ZS1hbGxv Y2F0ZSB0bwo+PiB3cml0ZS1uby1hbGxvY2F0ZSBhcyB0aGUgR1BVIGhhcmR3YXJlIGRvZXMgbm90 IGJlbmVmaXQgbXVjaAo+PiBmcm9tIGl0Lgo+PiBTaW1pbGFybHkgRE9NQUlOX0FUVFJfVVNFX1VQ U1RSRUFNX0hJTlQgaXMgYW5vdGhlciBkb21haW4gbGV2ZWwKPj4gYXR0cmlidXRlIHVzZWQgYnkg dGhlIElPTU1VIGRyaXZlciB0byBzZXQgdGhlIHJpZ2h0IGF0dHJpYnV0ZXMKPj4gdG8gY2FjaGUg dGhlIGhhcmR3YXJlIHBhZ2V0YWJsZXMgaW50byB0aGUgc3lzdGVtIGNhY2hlLgo+IAo+IFRoaXMg aGFzIGEgZGVwZW5kZW5jeSBvbiB0aGUgTExDQyBkcml2ZXIgYW5kIHRoZSBBUEkgdG8gdGhhdCBt YXkgY2hhbmdlIChpdCBpcwo+IHVuZGVyIHJldmlldyBub3cpLiAgV2hlbiBpdCBkb2VzLCB0aGlz IHdpbGwgaGF2ZSB0byBuYXR1cmFsbHkgY2hhbmdlIGFzIHdlbGwgYnV0Cj4gdGhhdCdsbCBiZSBh IG1pbm9yIHR3ZWVrIGFuZCB3b24ndCBhZmZlY3QgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhpcyBk cml2ZXIgc28KPiBwZW5kaW5nIHRob3NlIGNoYW5nZXMuLgoKVGhhbmtzIGZvciB0aGUgcmV2aWV3 IEpvcmRhbi4gVml2ZWsgd2lsbCBhbHNvIHN1Ym1pdCB0aGUgU01NVSBjaGFuZ2VzIApmb3IgdGhl IFVQU1RSRUFNX0hJTlQgc3VwcG9ydCB0byB0aGUgbWFpbGluZyBsaXN0IHNvb24uIFNvIG9uY2Ug dGhlIApkZXBlbmRlbmNpZXMgYXJlIHNvcnRlZCBvdXQsIEkgd2lsbCByZXZpZXcgYW5kIHN1Ym1p dCBhIGZyZXNoIHBhdGNoIHNldCAKaWYgbmVlZGVkLgo+IAo+IFJldmlld2VkLWJ5OiBKb3JkYW4g Q3JvdXNlIDxqY3JvdXNlQGNvZGVhdXJvcmEub3JnPiA+Cj4+IFNpZ25lZC1vZmYtYnk6IFNoYXJh dCBNYXNldHR5IDxzbWFzZXR0eUBjb2RlYXVyb3JhLm9yZz4KPj4gLS0tCj4+ICAgZHJpdmVycy9n cHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuYyB8IDE2MiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystCj4+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuaCB8 ICAgOSArKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2lvbW11LmMgICAgICAgfCAgMTMg KysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fbW11LmggICAgICAgICB8ICAgMyArCj4+ ICAgNCBmaWxlcyBjaGFuZ2VkLCAxODYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Pgo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ3B1LmMKPj4gaW5kZXggYmQ1MDY3NC4uZTQ1 NTRlYiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUu Ywo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dwdS5jCj4+IEBAIC0x Myw2ICsxMyw3IEBACj4+ICAgCj4+ICAgI2luY2x1ZGUgPGxpbnV4L3Fjb21fc2NtLmg+Cj4+ICAg I2luY2x1ZGUgPGxpbnV4L3NvYy9xY29tL21kdF9sb2FkZXIuaD4KPj4gKyNpbmNsdWRlIDxsaW51 eC9zb2MvcWNvbS9sbGNjLXFjb20uaD4KPj4gICAKPj4gICAjaW5jbHVkZSAibXNtX2dlbS5oIgo+ PiAgICNpbmNsdWRlICJtc21fbW11LmgiCj4+IEBAIC05MTMsNiArOTE0LDE1NCBAQCBzdGF0aWMg aXJxcmV0dXJuX3QgYTZ4eF9pcnEoc3RydWN0IG1zbV9ncHUgKmdwdSkKPj4gICAJfjAKPj4gICB9 Owo+PiAgIAo+PiArI2RlZmluZSBBNlhYX0xMQ19OVU1fR1BVX1NDSURTCQk1Cj4+ICsjZGVmaW5l IEE2WFhfR1BVX0xMQ19TQ0lEX05VTV9CSVRTCTUKPj4gKwo+PiArI2RlZmluZSBBNlhYX0dQVV9M TENfU0NJRF9NQVNLIFwKPj4gKwkoKDEgPDwgKEE2WFhfTExDX05VTV9HUFVfU0NJRFMgKiBBNlhY X0dQVV9MTENfU0NJRF9OVU1fQklUUykpIC0gMSkKPj4gKwo+PiArI2RlZmluZSBBNlhYX0dQVUhU V19MTENfU0NJRF9TSElGVAkyNQo+PiArI2RlZmluZSBBNlhYX0dQVUhUV19MTENfU0NJRF9NQVNL IFwKPj4gKwkoKCgxIDw8IEE2WFhfR1BVX0xMQ19TQ0lEX05VTV9CSVRTKSAtIDEpIDw8IEE2WFhf R1BVSFRXX0xMQ19TQ0lEX1NISUZUKQo+PiArCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgYTZ4eF9n cHVfY3hfcm13KHN0cnVjdCBhNnh4X2xsYyAqbGxjLAo+PiArCXUzMiByZWcsIHUzMiBtYXNrLCB1 MzIgb3IpCj4+ICt7Cj4+ICsJbXNtX3JtdyhsbGMtPm1taW8gKyAocmVnIDw8IDIpLCBtYXNrLCBv cik7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGE2eHhfbGxjX2RlYWN0aXZhdGUoc3RydWN0 IG1zbV9ncHUgKmdwdSkKPj4gK3sKPj4gKwlzdHJ1Y3QgYWRyZW5vX2dwdSAqYWRyZW5vX2dwdSA9 IHRvX2FkcmVub19ncHUoZ3B1KTsKPj4gKwlzdHJ1Y3QgYTZ4eF9ncHUgKmE2eHhfZ3B1ID0gdG9f YTZ4eF9ncHUoYWRyZW5vX2dwdSk7Cj4+ICsJc3RydWN0IGE2eHhfbGxjICpsbGMgPSAmYTZ4eF9n cHUtPmxsYzsKPj4gKwo+PiArCWxsY2Nfc2xpY2VfZGVhY3RpdmF0ZShsbGMtPmdwdV9sbGNfc2xp Y2UpOwo+PiArCWxsY2Nfc2xpY2VfZGVhY3RpdmF0ZShsbGMtPmdwdWh0d19sbGNfc2xpY2UpOwo+ PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBhNnh4X2xsY19hY3RpdmF0ZShzdHJ1Y3QgbXNtX2dw dSAqZ3B1KQo+PiArewo+PiArCXN0cnVjdCBhZHJlbm9fZ3B1ICphZHJlbm9fZ3B1ID0gdG9fYWRy ZW5vX2dwdShncHUpOwo+PiArCXN0cnVjdCBhNnh4X2dwdSAqYTZ4eF9ncHUgPSB0b19hNnh4X2dw dShhZHJlbm9fZ3B1KTsKPj4gKwlzdHJ1Y3QgYTZ4eF9sbGMgKmxsYyA9ICZhNnh4X2dwdS0+bGxj Owo+PiArCj4+ICsJaWYgKCFsbGMtPm1taW8pCj4+ICsJCXJldHVybjsKPj4gKwo+PiArCWlmIChs bGMtPmdwdV9sbGNfc2xpY2UpCj4+ICsJCWlmICghbGxjY19zbGljZV9hY3RpdmF0ZShsbGMtPmdw dV9sbGNfc2xpY2UpKQo+PiArCQkJLyogUHJvZ3JhbSB0aGUgc3ViLWNhY2hlIElEIGZvciBhbGwg R1BVIGJsb2NrcyAqLwo+PiArCQkJYTZ4eF9ncHVfY3hfcm13KGxsYywKPj4gKwkJCQlSRUdfQTZY WF9HUFVfQ1hfTUlTQ19TWVNURU1fQ0FDSEVfQ05UTF8xLAo+PiArCQkJCUE2WFhfR1BVX0xMQ19T Q0lEX01BU0ssCj4+ICsJCQkJKGxsYy0+Y250bDFfcmVndmFsICYKPj4gKwkJCQkJQTZYWF9HUFVf TExDX1NDSURfTUFTSykpOwo+PiArCj4+ICsJaWYgKGxsYy0+Z3B1aHR3X2xsY19zbGljZSkKPj4g KwkJaWYgKCFsbGNjX3NsaWNlX2FjdGl2YXRlKGxsYy0+Z3B1aHR3X2xsY19zbGljZSkpCj4+ICsJ CQkvKiBQcm9ncmFtIHRoZSBzdWItY2FjaGUgSUQgZm9yIEdQVSBwYWdldGFibGVzICovCj4+ICsJ CQlhNnh4X2dwdV9jeF9ybXcobGxjLAo+PiArCQkJCVJFR19BNlhYX0dQVV9DWF9NSVNDX1NZU1RF TV9DQUNIRV9DTlRMXzEsCj4+ICsJCQkJQTZYWF9HUFVIVFdfTExDX1NDSURfTUFTSywKPj4gKwkJ CQkobGxjLT5jbnRsMV9yZWd2YWwgJgo+PiArCQkJCQlBNlhYX0dQVUhUV19MTENfU0NJRF9NQVNL KSk7Cj4+ICsKPj4gKwkvKiBQcm9ncmFtIGNhY2hlYWJpbGl0eSBvdmVycmlkZXMgKi8KPj4gKwlh Nnh4X2dwdV9jeF9ybXcobGxjLCBSRUdfQTZYWF9HUFVfQ1hfTUlTQ19TWVNURU1fQ0FDSEVfQ05U TF8wLCAweEYsCj4+ICsJCWxsYy0+Y250bDBfcmVndmFsKTsKPj4gK30KPj4gKwo+PiArdm9pZCBh Nnh4X2xsY19zbGljZXNfZGVzdHJveShzdHJ1Y3QgYTZ4eF9sbGMgKmxsYykKPj4gK3sKPj4gKwlp ZiAobGxjLT5tbWlvKSB7Cj4+ICsJCWlvdW5tYXAobGxjLT5tbWlvKTsKPj4gKwkJbGxjLT5tbWlv ID0gTlVMTDsKPj4gKwl9Cj4+ICsKPj4gKwlsbGNjX3NsaWNlX3B1dGQobGxjLT5ncHVfbGxjX3Ns aWNlKTsKPj4gKwlsbGMtPmdwdV9sbGNfc2xpY2UgPSBOVUxMOwo+PiArCj4+ICsJbGxjY19zbGlj ZV9wdXRkKGxsYy0+Z3B1aHR3X2xsY19zbGljZSk7Cj4+ICsJbGxjLT5ncHVodHdfbGxjX3NsaWNl ID0gTlVMTDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBhNnh4X2xsY19zbGljZXNfaW5pdChz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+PiArCQlzdHJ1Y3QgYTZ4eF9sbGMgKmxsYykK Pj4gK3sKPj4gKwlpbnQgaTsKPj4gKwo+PiArCS8qIEdldCB0aGUgc3lzdGVtIGNhY2hlIHNsaWNl IGRlc2NyaXB0b3IgZm9yIEdQVSBhbmQgR1BVSFRXcyAqLwo+PiArCWxsYy0+Z3B1X2xsY19zbGlj ZSA9IGxsY2Nfc2xpY2VfZ2V0ZCgmcGRldi0+ZGV2LCAiZ3B1Iik7Cj4+ICsJaWYgKElTX0VSUihs bGMtPmdwdV9sbGNfc2xpY2UpKQo+PiArCQlsbGMtPmdwdV9sbGNfc2xpY2UgPSBOVUxMOwo+PiAr Cj4+ICsJbGxjLT5ncHVodHdfbGxjX3NsaWNlID0gbGxjY19zbGljZV9nZXRkKCZwZGV2LT5kZXYs ICJncHVodHciKTsKPj4gKwlpZiAoSVNfRVJSKGxsYy0+Z3B1aHR3X2xsY19zbGljZSkpCj4+ICsJ CWxsYy0+Z3B1aHR3X2xsY19zbGljZSA9IE5VTEw7Cj4+ICsKPj4gKwlpZiAobGxjLT5ncHVfbGxj X3NsaWNlID09IE5VTEwgJiYgbGxjLT5ncHVodHdfbGxjX3NsaWNlID09IE5VTEwpCj4+ICsJCXJl dHVybiAtMTsKPj4gKwo+PiArCS8qIE1hcCByZWdpc3RlcnMgKi8KPj4gKwlsbGMtPm1taW8gPSBt c21faW9yZW1hcChwZGV2LCAiY3hfbWVtIiwgImdwdV9jeCIpOwo+PiArCWlmIChJU19FUlIobGxj LT5tbWlvKSkgewo+PiArCQlsbGMtPm1taW8gPSBOVUxMOwo+PiArCQlhNnh4X2xsY19zbGljZXNf ZGVzdHJveShsbGMpOwo+PiArCQlyZXR1cm4gLTE7Cj4+ICsJfQo+PiArCj4+ICsJLyoKPj4gKwkg KiBTZXR1cCBHUFUgc3lzdGVtIGNhY2hlIENOVEwwIGFuZCBDTlRMMSByZWdpc3RlciB2YWx1ZXMu Cj4+ICsJICogVGhlc2UgdmFsdWVzIHdpbGwgYmUgcHJvZ3JhbW1lZCBldmVyeXRpbWUgR1BVIGNv bWVzIG91dAo+PiArCSAqIG9mIHBvd2VyIGNvbGxhcHNlIGFzIHRoZXNlIGFyZSBub24tcmV0ZW50 aW9uIHJlZ2lzdGVycy4KPj4gKwkgKi8KPj4gKwo+PiArCS8qCj4+ICsJICogQ05UTDAgcHJvdmlk ZXMgb3B0aW9ucyB0byBvdmVycmlkZSB0aGUgc2V0dGluZ3MgZm9yIHRoZQo+PiArCSAqIHJlYWQg YW5kIHdyaXRlIGFsbG9jYXRpb24gcG9saWNpZXMgZm9yIHRoZSBMTEMuIFRoZXNlCj4+ICsJICog b3ZlcnJpZGVzIGFyZSBnbG9iYWwgZm9yIGFsbCBtZW1vcnkgdHJhbnNhY3Rpb25zIGZyb20KPj4g KwkgKiB0aGUgR1BVLgo+PiArCSAqCj4+ICsJICogMHgzOiByZWFkLW5vLWFsbG9jLW92ZXJyaWRk ZW4gPSAwCj4+ICsJICogICAgICByZWFkLW5vLWFsbG9jID0gMCAtIEFsbG9jYXRlIGxpbmVzIG9u IHJlYWQgbWlzcwo+PiArCSAqICAgICAgd3JpdGUtbm8tYWxsb2Mtb3ZlcnJpZGRlbiA9IDEKPj4g KwkgKiAgICAgIHdyaXRlLW5vLWFsbG9jID0gMSAtIERvIG5vdCBhbGxvY2F0ZXMgbGluZXMgb24g d3JpdGUgbWlzcwo+PiArCSAqLwo+PiArCWxsYy0+Y250bDBfcmVndmFsID0gMHgwMzsKPj4gKwo+ PiArCS8qCj4+ICsJICogQ05UTDEgaXMgdXNlZCB0byBzcGVjaWZ5IFNDSUQgZm9yIChDUCwgVFAs IFZGRCwgQ0NVIGFuZCBVQldDCj4+ICsJICogRkxBRyBjYWNoZSkgR1BVIGJsb2Nrcy4gVGhpcyB2 YWx1ZSB3aWxsIGJlIHBhc3NlZCBhbG9uZyB3aXRoCj4+ICsJICogdGhlIGFkZHJlc3MgZm9yIGFu eSBtZW1vcnkgdHJhbnNhY3Rpb24gZnJvbSBHUFUgdG8gaWRlbnRpZnkKPj4gKwkgKiB0aGUgc3Vi LWNhY2hlIGZvciB0aGF0IHRyYW5zYWN0aW9uLgo+PiArCSAqCj4+ICsJICogQ3VycmVudGx5IHRo ZXJlIGlzIG9ubHkgb25lIFNDSUQgYWxsb2NhdGVkIGZvciBhbGwgR1BVIGJsb2Nrcwo+PiArCSAq IEhlbmNlIHNldCBzYW1lIFNDSUQgZm9yIGFsbCB0aGUgYmxvY2tzLgo+PiArCSAqLwo+PiArCj4+ ICsJaWYgKGxsYy0+Z3B1X2xsY19zbGljZSkgewo+PiArCQl1MzIgZ3B1X3NjaWQgPSBsbGNjX2dl dF9zbGljZV9pZChsbGMtPmdwdV9sbGNfc2xpY2UpOwo+PiArCj4+ICsJCWZvciAoaSA9IDA7IGkg PCBBNlhYX0xMQ19OVU1fR1BVX1NDSURTOyBpKyspCj4+ICsJCQlsbGMtPmNudGwxX3JlZ3ZhbCB8 PQo+PiArCQkJCWdwdV9zY2lkIDw8IChBNlhYX0dQVV9MTENfU0NJRF9OVU1fQklUUyAqIGkpOwo+ PiArCX0KPj4gKwo+PiArCS8qCj4+ICsJICogU2V0IFNDSUQgZm9yIEdQVSBJT01NVS4gVGhpcyB3 aWxsIGJlIHVzZWQgdG8gYWNjZXNzCj4+ICsJICogcGFnZSB0YWJsZXMgdGhhdCBhcmUgY2FjaGVk IGluIExMQy4KPj4gKwkgKi8KPj4gKwlpZiAobGxjLT5ncHVodHdfbGxjX3NsaWNlKSB7Cj4+ICsJ CXUzMiBncHVodHdfc2NpZCA9IGxsY2NfZ2V0X3NsaWNlX2lkKGxsYy0+Z3B1aHR3X2xsY19zbGlj ZSk7Cj4+ICsKPj4gKwkJbGxjLT5jbnRsMV9yZWd2YWwgfD0KPj4gKwkJCWdwdWh0d19zY2lkIDw8 IEE2WFhfR1BVSFRXX0xMQ19TQ0lEX1NISUZUOwo+PiArCX0KPj4gKwo+PiArCXJldHVybiAwOwo+ PiArfQo+PiArCj4+ICAgc3RhdGljIGludCBhNnh4X3BtX3Jlc3VtZShzdHJ1Y3QgbXNtX2dwdSAq Z3B1KQo+PiAgIHsKPj4gICAJc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUgPSB0b19hZHJl bm9fZ3B1KGdwdSk7Cj4+IEBAIC05MjMsNiArMTA3Miw5IEBAIHN0YXRpYyBpbnQgYTZ4eF9wbV9y ZXN1bWUoc3RydWN0IG1zbV9ncHUgKmdwdSkKPj4gICAKPj4gICAJZ3B1LT5uZWVkc19od19pbml0 ID0gdHJ1ZTsKPj4gICAKPj4gKwkvKiBBY3RpdmF0ZSBMTEMgc2xpY2VzICovCj4+ICsJYTZ4eF9s bGNfYWN0aXZhdGUoZ3B1KTsKPj4gKwo+PiAgIAlyZXR1cm4gcmV0Owo+PiAgIH0KPj4gICAKPj4g QEAgLTkzMSw2ICsxMDgzLDkgQEAgc3RhdGljIGludCBhNnh4X3BtX3N1c3BlbmQoc3RydWN0IG1z bV9ncHUgKmdwdSkKPj4gICAJc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUgPSB0b19hZHJl bm9fZ3B1KGdwdSk7Cj4+ICAgCXN0cnVjdCBhNnh4X2dwdSAqYTZ4eF9ncHUgPSB0b19hNnh4X2dw dShhZHJlbm9fZ3B1KTsKPj4gICAKPj4gKwkvKiBEZWFjdGl2YXRlIExMQyBzbGljZXMgKi8KPj4g KwlhNnh4X2xsY19kZWFjdGl2YXRlKGdwdSk7Cj4+ICsKPj4gICAJLyoKPj4gICAJICogTWFrZSBz dXJlIHRoZSBHTVUgaXMgaWRsZSBiZWZvcmUgY29udGludWluZyAoYmVjYXVzZSBzb21lIHRyYW5z aXRpb25zCj4+ICAgCSAqIG1heSB1c2UgVkJJRgo+PiBAQCAtOTkzLDYgKzExNDgsOCBAQCBzdGF0 aWMgdm9pZCBhNnh4X2Rlc3Ryb3koc3RydWN0IG1zbV9ncHUgKmdwdSkKPj4gICAJCWRybV9nZW1f b2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKGE2eHhfZ3B1LT5zcWVfYm8pOwo+PiAgIAl9Cj4+ ICAgCj4+ICsJYTZ4eF9sbGNfc2xpY2VzX2Rlc3Ryb3koJmE2eHhfZ3B1LT5sbGMpOwo+PiArCj4+ ICAgCWE2eHhfZ211X3JlbW92ZShhNnh4X2dwdSk7Cj4+ICAgCj4+ICAgCWFkcmVub19ncHVfY2xl YW51cChhZHJlbm9fZ3B1KTsKPj4gQEAgLTEwNDAsNyArMTE5NywxMCBAQCBzdHJ1Y3QgbXNtX2dw dSAqYTZ4eF9ncHVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAlhZHJlbm9fZ3B1 LT5yZWdpc3RlcnMgPSBhNnh4X3JlZ2lzdGVyczsKPj4gICAJYWRyZW5vX2dwdS0+cmVnX29mZnNl dHMgPSBhNnh4X3JlZ2lzdGVyX29mZnNldHM7Cj4+ICAgCj4+IC0JcmV0ID0gYWRyZW5vX2dwdV9p bml0KGRldiwgcGRldiwgYWRyZW5vX2dwdSwgJmZ1bmNzLCA0LCAwKTsKPj4gKwlyZXQgPSBhNnh4 X2xsY19zbGljZXNfaW5pdChwZGV2LCAmYTZ4eF9ncHUtPmxsYyk7Cj4+ICsKPj4gKwlyZXQgPSBh ZHJlbm9fZ3B1X2luaXQoZGV2LCBwZGV2LCBhZHJlbm9fZ3B1LCAmZnVuY3MsIDQsCj4+ICsJCQly ZXQgPyAwIDogTU1VX0ZFQVRVUkVfVVNFX1NZU1RFTV9DQUNIRSk7Cj4+ICAgCWlmIChyZXQpIHsK Pj4gICAJCWE2eHhfZGVzdHJveSgmKGE2eHhfZ3B1LT5iYXNlLmJhc2UpKTsKPj4gICAJCXJldHVy biBFUlJfUFRSKHJldCk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVu by9hNnh4X2dwdS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuaAo+PiBp bmRleCAyMWFiNzAxLi4zOTJjNDI2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2FkcmVuby9hNnh4X2dwdS5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2 eHhfZ3B1LmgKPj4gQEAgLTIxLDYgKzIxLDE0IEBACj4+ICAgCj4+ICAgZXh0ZXJuIGJvb2wgaGFu Z19kZWJ1ZzsKPj4gICAKPj4gK3N0cnVjdCBhNnh4X2xsYyB7Cj4+ICsJdm9pZCBfX2lvbWVtICpt bWlvOwo+PiArCXZvaWQgKmdwdV9sbGNfc2xpY2U7Cj4+ICsJdm9pZCAqZ3B1aHR3X2xsY19zbGlj ZTsKPj4gKwl1MzIgY250bDBfcmVndmFsOwo+PiArCXUzMiBjbnRsMV9yZWd2YWw7Cj4+ICt9Owo+ PiArCj4+ICAgc3RydWN0IGE2eHhfZ3B1IHsKPj4gICAJc3RydWN0IGFkcmVub19ncHUgYmFzZTsK Pj4gICAKPj4gQEAgLTQ2LDYgKzU0LDcgQEAgc3RydWN0IGE2eHhfZ3B1IHsKPj4gICAJdWludDY0 X3Qgc2NyYXRjaF9pb3ZhOwo+PiAgIAo+PiAgIAlzdHJ1Y3QgYTZ4eF9nbXUgZ211Owo+PiArCXN0 cnVjdCBhNnh4X2xsYyBsbGM7Cj4+ICAgfTsKPj4gICAKPj4gICAjZGVmaW5lIHRvX2E2eHhfZ3B1 KHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgYTZ4eF9ncHUsIGJhc2UpCj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9pb21tdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9t c21faW9tbXUuYwo+PiBpbmRleCAxYWI2MjliLi42YzAzZWRhIDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9pb21tdS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2lvbW11LmMKPj4gQEAgLTM5LDYgKzM5LDE2IEBAIHN0YXRpYyBpbnQgbXNtX2lvbW11X2F0 dGFjaChzdHJ1Y3QgbXNtX21tdSAqbW11LCBjb25zdCBjaGFyICogY29uc3QgKm5hbWVzLAo+PiAg IHsKPj4gICAJc3RydWN0IG1zbV9pb21tdSAqaW9tbXUgPSB0b19tc21faW9tbXUobW11KTsKPj4g ICAJaW50IHJldDsKPj4gKwlpbnQgZ3B1X2h0d19sbGMgPSAxOwo+PiArCj4+ICsJLyoKPj4gKwkg KiBUaGlzIGFsbG93cyBHUFUgdG8gc2V0IHRoZSBidXMgYXR0cmlidXRlcyByZXF1aXJlZAo+PiAr CSAqIHRvIHVzZSBzeXN0ZW0gY2FjaGUgb24gYmVoYWxmIG9mIHRoZSBpb21tdSBwYWdlIHRhYmxl Cj4+ICsJICogd2Fsa2VyLgo+PiArCSAqLwo+PiArCWlmIChtc21fbW11X2hhc19mZWF0dXJlKG1t dSwgTU1VX0ZFQVRVUkVfVVNFX1NZU1RFTV9DQUNIRSkpCj4+ICsJCWlvbW11X2RvbWFpbl9zZXRf YXR0cihpb21tdS0+ZG9tYWluLAo+PiArCQkJCURPTUFJTl9BVFRSX1VTRV9VUFNUUkVBTV9ISU5U LCAmZ3B1X2h0d19sbGMpOwo+PiAgIAo+PiAgIAlwbV9ydW50aW1lX2dldF9zdXBwbGllcnMobW11 LT5kZXYpOwo+PiAgIAlyZXQgPSBpb21tdV9hdHRhY2hfZGV2aWNlKGlvbW11LT5kb21haW4sIG1t dS0+ZGV2KTsKPj4gQEAgLTYzLDYgKzczLDkgQEAgc3RhdGljIGludCBtc21faW9tbXVfbWFwKHN0 cnVjdCBtc21fbW11ICptbXUsIHVpbnQ2NF90IGlvdmEsCj4+ICAgCXN0cnVjdCBtc21faW9tbXUg KmlvbW11ID0gdG9fbXNtX2lvbW11KG1tdSk7Cj4+ICAgCXNpemVfdCByZXQ7Cj4+ICAgCj4+ICsJ aWYgKG1zbV9tbXVfaGFzX2ZlYXR1cmUobW11LCBNTVVfRkVBVFVSRV9VU0VfU1lTVEVNX0NBQ0hF KSkKPj4gKwkJcHJvdCB8PSBJT01NVV9VU0VfVVBTVFJFQU1fSElOVDsKPj4gKwo+PiAgIAlwbV9y dW50aW1lX2dldF9zdXBwbGllcnMobW11LT5kZXYpOwo+PiAgIAlyZXQgPSBpb21tdV9tYXBfc2co aW9tbXUtPmRvbWFpbiwgaW92YSwgc2d0LT5zZ2wsIHNndC0+bmVudHMsIHByb3QpOwo+PiAgIAlw bV9ydW50aW1lX3B1dF9zdXBwbGllcnMobW11LT5kZXYpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fbW11LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9tbXUuaAo+ PiBpbmRleCA4NWRmNzhkLi4yNTdiZGVhIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9tbXUuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9tbXUuaAo+PiBA QCAtMzAsNiArMzAsOSBAQCBzdHJ1Y3QgbXNtX21tdV9mdW5jcyB7Cj4+ICAgCXZvaWQgKCpkZXN0 cm95KShzdHJ1Y3QgbXNtX21tdSAqbW11KTsKPj4gICB9Owo+PiAgIAo+PiArLyogTU1VIGZlYXR1 cmVzICovCj4+ICsjZGVmaW5lIE1NVV9GRUFUVVJFX1VTRV9TWVNURU1fQ0FDSEUgKDEgPDwgMCkK Pj4gKwo+PiAgIHN0cnVjdCBtc21fbW11IHsKPj4gICAJY29uc3Qgc3RydWN0IG1zbV9tbXVfZnVu Y3MgKmZ1bmNzOwo+PiAgIAlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4+IC0tIAo+PiAxLjkuMQo+Pgo+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBGcmVl ZHJlbm8gbWFpbGluZyBsaXN0Cj4+IEZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4g aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K PiAKCi0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIg b2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLApMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUg UHJvamVjdApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK