From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sharat Masetty Subject: Re: [v2 7/7] drm/msm/a6xx: Add support for using system cache(LLC) Date: Mon, 8 Oct 2018 19:29:03 +0530 Message-ID: <4dd1439a-990e-6a34-0290-7adc4837ca7f@codeaurora.org> References: <1538744915-25490-1-git-send-email-smasetty@codeaurora.org> <1538744915-25490-8-git-send-email-smasetty@codeaurora.org> <20181005150745.GJ31641@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: <20181005150745.GJ31641-9PYrDHPZ2Orvke4nUoYGnHL1okKdlPRT@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: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: dri-devel@lists.freedesktop.org CgpPbiAxMC81LzIwMTggODozNyBQTSwgSm9yZGFuIENyb3VzZSB3cm90ZToKPiBPbiBGcmksIE9j dCAwNSwgMjAxOCBhdCAwNjozODozNVBNICswNTMwLCBTaGFyYXQgTWFzZXR0eSB3cm90ZToKPj4g VGhlIGxhc3QgbGV2ZWwgc3lzdGVtIGNhY2hlIGNhbiBiZSBwYXJ0aXRpb25lZCB0byAzMiBkaWZm ZXJlbnQgc2xpY2VzCj4+IG9mIHdoaWNoIEdQVSBoYXMgdHdvIHNsaWNlcyBwcmVhbGxvY2F0ZWQu IE9uZSBzbGljZSBpcyB1c2VkIGZvciBjYWNoaW5nIEdQVQo+PiBidWZmZXJzIGFuZCB0aGUgb3Ro ZXIgc2xpY2UgaXMgdXNlZCBmb3IgY2FjaGluZyB0aGUgR1BVIFNNTVUgcGFnZXRhYmxlcy4KPj4g VGhpcyBwYXRjaCB0YWxrcyB0byB0aGUgY29yZSBzeXN0ZW0gY2FjaGUgZHJpdmVyIHRvIGFjcXVp cmUgdGhlIHNsaWNlIGhhbmRsZXMsCj4+IGNvbmZpZ3VyZSB0aGUgU0NJRCdzIHRvIHRob3NlIHNs aWNlcyBhbmQgYWN0aXZhdGVzIGFuZCBkZWFjdGl2YXRlcyB0aGUgc2xpY2VzCj4+IHVwb24gR1BV IHBvd2VyIGNvbGxhcHNlIGFuZCByZXN0b3JlLgo+Pgo+PiBTb21lIHN1cHBvcnQgZnJvbSB0aGUg SU9NTVUgZHJpdmVyIGlzIGFsc28gbmVlZGVkIHRvIG1ha2UgdXNlIG9mIHRoZQo+PiBzeXN0ZW0g Y2FjaGUuIElPTU1VX1NZU19DQUNIRSBpcyBhIGJ1ZmZlciBwcm90ZWN0aW9uIGZsYWcgd2hpY2gg ZW5hYmxlcwo+PiBjYWNoaW5nIEdQVSBkYXRhIGJ1ZmZlcnMgaW4gdGhlIHN5c3RlbSBjYWNoZSB3 aXRoIG1lbW9yeSBhdHRyaWJ1dGVzIHN1Y2gKPj4gYXMgb3V0ZXIgY2FjaGVhYmxlLCByZWFkLWFs bG9jYXRlLCB3cml0ZS1hbGxvY2F0ZSBmb3IgYnVmZmVycy4gVGhlIEdQVQo+PiB0aGVuIGhhcyB0 aGUgYWJpbGl0eSB0byBvdmVycmlkZSBhIGZldyBjYWNoZWFiaWxpdHkgcGFyYW1ldGVycyB3aGlj aCBpdAo+PiBkb2VzIHRvIG92ZXJyaWRlIHdyaXRlLWFsbG9jYXRlIHRvIHdyaXRlLW5vLWFsbG9j YXRlIGFzIHRoZSBHUFUgaGFyZHdhcmUKPj4gZG9lcyBub3QgYmVuZWZpdCBtdWNoIGZyb20gaXQu Cj4+Cj4+IFNpbWlsYXJseSBET01BSU5fQVRUUl9VU0VfU1lTX0NBQ0hFIGlzIGFub3RoZXIgZG9t YWluIGxldmVsIGF0dHJpYnV0ZQo+PiB1c2VkIGJ5IHRoZSBJT01NVSBkcml2ZXIgdG8gc2V0IHRo ZSByaWdodCBhdHRyaWJ1dGVzIHRvIGNhY2hlIHRoZSBoYXJkd2FyZQo+PiBwYWdldGFibGVzIGlu dG8gdGhlIHN5c3RlbSBjYWNoZS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogU2hhcmF0IE1hc2V0dHkg PHNtYXNldHR5QGNvZGVhdXJvcmEub3JnPgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNt L2FkcmVuby9hNnh4X2dwdS5jIHwgMTU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dwdS5oIHwgICA5ICsrCj4+ ICAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21faW9tbXUuYyAgICAgICB8ICAxMyArKysKPj4gICBk cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9tbXUuaCAgICAgICAgIHwgICAzICsKPj4gICA0IGZpbGVz IGNoYW5nZWQsIDE4MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dwdS5jIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuYwo+PiBpbmRleCAxNzdkYmZjLi4xNzkwZGRlIDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dwdS5jCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ3B1LmMKPj4gQEAgLTgsNiArOCw3IEBA Cj4+ICAgI2luY2x1ZGUgImE2eHhfZ211LnhtbC5oIgo+PiAgIAo+PiAgICNpbmNsdWRlIDxsaW51 eC9kZXZmcmVxLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvc29jL3Fjb20vbGxjYy1xY29tLmg+Cj4+ ICAgCj4+ICAgc3RhdGljIGlubGluZSBib29sIF9hNnh4X2NoZWNrX2lkbGUoc3RydWN0IG1zbV9n cHUgKmdwdSkKPj4gICB7Cj4+IEBAIC02NzQsNiArNjc1LDE1MSBAQCBzdGF0aWMgaXJxcmV0dXJu X3QgYTZ4eF9pcnEoc3RydWN0IG1zbV9ncHUgKmdwdSkKPj4gICAJfjAKPj4gICB9Owo+PiAgIAo+ PiArI2RlZmluZSBBNlhYX0xMQ19OVU1fR1BVX1NDSURTCQk1Cj4+ICsjZGVmaW5lIEE2WFhfR1BV X0xMQ19TQ0lEX05VTV9CSVRTCTUKPj4gKwo+PiArI2RlZmluZSBBNlhYX0dQVV9MTENfU0NJRF9N QVNLIFwKPj4gKwkoKDEgPDwgKEE2WFhfTExDX05VTV9HUFVfU0NJRFMgKiBBNlhYX0dQVV9MTENf U0NJRF9OVU1fQklUUykpIC0gMSkKPj4gKwo+PiArI2RlZmluZSBBNlhYX0dQVUhUV19MTENfU0NJ RF9TSElGVAkyNQo+PiArI2RlZmluZSBBNlhYX0dQVUhUV19MTENfU0NJRF9NQVNLIFwKPj4gKwko KCgxIDw8IEE2WFhfR1BVX0xMQ19TQ0lEX05VTV9CSVRTKSAtIDEpIDw8IEE2WFhfR1BVSFRXX0xM Q19TQ0lEX1NISUZUKQo+PiArCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgYTZ4eF9ncHVfY3hfcm13 KHN0cnVjdCBhNnh4X2xsYyAqbGxjLAo+PiArCXUzMiByZWcsIHUzMiBtYXNrLCB1MzIgb3IpCj4+ ICt7Cj4+ICsJbXNtX3JtdyhsbGMtPm1taW8gKyAocmVnIDw8IDIpLCBtYXNrLCBvcik7Cj4+ICt9 Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGE2eHhfbGxjX2RlYWN0aXZhdGUoc3RydWN0IG1zbV9ncHUg KmdwdSkKPj4gK3sKPj4gKwlzdHJ1Y3QgYWRyZW5vX2dwdSAqYWRyZW5vX2dwdSA9IHRvX2FkcmVu b19ncHUoZ3B1KTsKPj4gKwlzdHJ1Y3QgYTZ4eF9ncHUgKmE2eHhfZ3B1ID0gdG9fYTZ4eF9ncHUo YWRyZW5vX2dwdSk7Cj4+ICsJc3RydWN0IGE2eHhfbGxjICpsbGMgPSAmYTZ4eF9ncHUtPmxsYzsK Pj4gKwo+PiArCWxsY2Nfc2xpY2VfZGVhY3RpdmF0ZShsbGMtPmdwdV9sbGNfc2xpY2UpOwo+PiAr CWxsY2Nfc2xpY2VfZGVhY3RpdmF0ZShsbGMtPmdwdWh0d19sbGNfc2xpY2UpOwo+PiArfQo+PiAr Cj4+ICtzdGF0aWMgdm9pZCBhNnh4X2xsY19hY3RpdmF0ZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQo+ PiArewo+PiArCXN0cnVjdCBhZHJlbm9fZ3B1ICphZHJlbm9fZ3B1ID0gdG9fYWRyZW5vX2dwdShn cHUpOwo+PiArCXN0cnVjdCBhNnh4X2dwdSAqYTZ4eF9ncHUgPSB0b19hNnh4X2dwdShhZHJlbm9f Z3B1KTsKPj4gKwlzdHJ1Y3QgYTZ4eF9sbGMgKmxsYyA9ICZhNnh4X2dwdS0+bGxjOwo+PiArCj4+ ICsJaWYgKCFsbGMtPm1taW8pCj4+ICsJCXJldHVybjsKPj4gKwo+PiArCS8qCj4+ICsJICogSWYg dGhlIExMQ0NfR1BVIHNsaWNlIGFjdGl2YXRlZCwgcHJvZ3JhbSB0aGUgc3ViLWNhY2hlIElEIGZv ciBhbGwKPj4gKwkgKiBHUFUgYmxvY2tzCj4+ICsJICovCj4+ICsJaWYgKCFsbGNjX3NsaWNlX2Fj dGl2YXRlKGxsYy0+Z3B1X2xsY19zbGljZSkpCj4+ICsJCWE2eHhfZ3B1X2N4X3JtdyhsbGMsCj4+ ICsJCQkJUkVHX0E2WFhfR1BVX0NYX01JU0NfU1lTVEVNX0NBQ0hFX0NOVExfMSwKPj4gKwkJCQlB NlhYX0dQVV9MTENfU0NJRF9NQVNLLAo+PiArCQkJCShsbGMtPmNudGwxX3JlZ3ZhbCAmCj4+ICsJ CQkJIEE2WFhfR1BVX0xMQ19TQ0lEX01BU0spKTsKPj4gKwo+PiArCS8qCj4+ICsJICogSWYgdGhl IExMQ0NfR1BVSFRXIHNsaWNlIGFjdGl2YXRlZCwgcHJvZ3JhbSB0aGUgc3ViLWNhY2hlIElEIGZv ciB0aGUKPj4gKwkgKiBHUFUgcGFnZXRhYmxlcwo+PiArCSAqLwo+PiArCWlmICghbGxjY19zbGlj ZV9hY3RpdmF0ZShsbGMtPmdwdWh0d19sbGNfc2xpY2UpKQo+PiArCQlhNnh4X2dwdV9jeF9ybXco bGxjLAo+PiArCQkJCVJFR19BNlhYX0dQVV9DWF9NSVNDX1NZU1RFTV9DQUNIRV9DTlRMXzEsCj4+ ICsJCQkJQTZYWF9HUFVIVFdfTExDX1NDSURfTUFTSywKPj4gKwkJCQkobGxjLT5jbnRsMV9yZWd2 YWwgJgo+PiArCQkJCSBBNlhYX0dQVUhUV19MTENfU0NJRF9NQVNLKSk7Cj4+ICsKPj4gKwkvKiBQ cm9ncmFtIGNhY2hlYWJpbGl0eSBvdmVycmlkZXMgKi8KPj4gKwlhNnh4X2dwdV9jeF9ybXcobGxj LCBSRUdfQTZYWF9HUFVfQ1hfTUlTQ19TWVNURU1fQ0FDSEVfQ05UTF8wLCAweEYsCj4+ICsJCWxs Yy0+Y250bDBfcmVndmFsKTsKPj4gK30KPj4gKwo+PiArdm9pZCBhNnh4X2xsY19zbGljZXNfZGVz dHJveShzdHJ1Y3QgYTZ4eF9sbGMgKmxsYykKPj4gK3sKPj4gKwlpZiAobGxjLT5tbWlvKSB7Cj4+ ICsJCWlvdW5tYXAobGxjLT5tbWlvKTsKPj4gKwkJbGxjLT5tbWlvID0gTlVMTDsKPj4gKwl9Cj4+ ICsKPj4gKwlsbGNjX3NsaWNlX3B1dGQobGxjLT5ncHVfbGxjX3NsaWNlKTsKPj4gKwlsbGMtPmdw dV9sbGNfc2xpY2UgPSBOVUxMOwo+IAo+IEkgZG9uJ3QgdGhpbmsgdGhlc2UgbmVlZCB0byBiZSBw dXQgYmFjayB0byBOVUxMIC0gd2Ugc2hvdWxkbid0IHRvdWNoIHRoZW0gYWdhaW4KPiBhZnRlciB0 aGlzIHBvaW50Lgo+IAo+PiArCj4+ICsJbGxjY19zbGljZV9wdXRkKGxsYy0+Z3B1aHR3X2xsY19z bGljZSk7Cj4+ICsJbGxjLT5ncHVodHdfbGxjX3NsaWNlID0gTlVMTDsKPj4gK30KPj4gKwo+PiAr c3RhdGljIGludCBhNnh4X2xsY19zbGljZXNfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2LAo+PiArCQlzdHJ1Y3QgYTZ4eF9sbGMgKmxsYykKPj4gK3sKPj4gKwlpbnQgaTsKPj4gKwo+ PiArCS8qIE1hcCByZWdpc3RlcnMgKi8KPj4gKwlsbGMtPm1taW8gPSBtc21faW9yZW1hcChwZGV2 LCAiY3hfbWVtIiwgImdwdV9jeCIpOwo+PiArCWlmIChJU19FUlIobGxjLT5tbWlvKSkgewo+PiAr CQlsbGMtPm1taW8gPSBOVUxMOwo+PiArCQlyZXR1cm4gLTE7Cj4gCj4gUmV0dXJuIGEgdmFsaWQg ZXJyb3IgY29kZSBoZXJlIGV2ZW4gaWYgd2UgZG9uJ3QgY2FyZSB3aGF0IGl0IGlzLiAgLUVOT0RF ViBtYXliZS4KPiBBbmQgaW4gZmFjdCwgaWYgd2UgZG9uJ3QgY2FyZSB3aGF0IGl0IGlzIChMTEND IGlzIHZlcnkgb3B0aW9uYWwpIHRoZW4ganVzdCBkb24ndAo+IHJldHVybiBhbnl0aGluZyBhdCBh bGwuCkhpIEpvcmRhbiwKCldlIGRvIG5lZWQgdGhlIGVycm9yIGNvZGUsIGFzIHdlIGhhdmUgdG8g bGV0IGlvbW11IGxheWVyIGtub3csIHNvIHRoYXQgCml0IGNhbiBzZXQgYWRkaXRpb25hbCBwcm9w ZXJ0aWVzIGZvciB0aGUgYnVmZmVycyBhbmQgdGhlIHBhZ2UgdGFibGVzLgo+IAo+PiArCX0KPj4g Kwo+PiArCS8qIEdldCB0aGUgc3lzdGVtIGNhY2hlIHNsaWNlIGRlc2NyaXB0b3IgZm9yIEdQVSBh bmQgR1BVSFRXcyAqLwo+PiArCWxsYy0+Z3B1X2xsY19zbGljZSA9IGxsY2Nfc2xpY2VfZ2V0ZChM TENDX0dQVSk7Cj4+ICsJbGxjLT5ncHVodHdfbGxjX3NsaWNlID0gbGxjY19zbGljZV9nZXRkKExM Q0NfR1BVSFRXKTsKPj4gKwlpZiAoSVNfRVJSKGxsYy0+Z3B1X2xsY19zbGljZSkgJiYgSVNfRVJS KGxsYy0+Z3B1aHR3X2xsY19zbGljZSkpCj4+ICsJCXJldHVybiAtMTsKPj4gKwo+PiArCS8qCj4+ ICsJICogU2V0dXAgR1BVIHN5c3RlbSBjYWNoZSBDTlRMMCBhbmQgQ05UTDEgcmVnaXN0ZXIgdmFs dWVzLgo+PiArCSAqIFRoZXNlIHZhbHVlcyB3aWxsIGJlIHByb2dyYW1tZWQgZXZlcnl0aW1lIEdQ VSBjb21lcyBvdXQKPj4gKwkgKiBvZiBwb3dlciBjb2xsYXBzZSBhcyB0aGVzZSBhcmUgbm9uLXJl dGVudGlvbiByZWdpc3RlcnMuCj4+ICsJICovCj4+ICsKPj4gKwkvKgo+PiArCSAqIENOVEwwIHBy b3ZpZGVzIG9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhlIHNldHRpbmdzIGZvciB0aGUKPj4gKwkgKiBy ZWFkIGFuZCB3cml0ZSBhbGxvY2F0aW9uIHBvbGljaWVzIGZvciB0aGUgTExDLiBUaGVzZQo+PiAr CSAqIG92ZXJyaWRlcyBhcmUgZ2xvYmFsIGZvciBhbGwgbWVtb3J5IHRyYW5zYWN0aW9ucyBmcm9t Cj4+ICsJICogdGhlIEdQVS4KPj4gKwkgKgo+PiArCSAqIDB4MzogcmVhZC1uby1hbGxvYy1vdmVy cmlkZGVuID0gMAo+PiArCSAqICAgICAgcmVhZC1uby1hbGxvYyA9IDAgLSBBbGxvY2F0ZSBsaW5l cyBvbiByZWFkIG1pc3MKPj4gKwkgKiAgICAgIHdyaXRlLW5vLWFsbG9jLW92ZXJyaWRkZW4gPSAx Cj4+ICsJICogICAgICB3cml0ZS1uby1hbGxvYyA9IDEgLSBEbyBub3QgYWxsb2NhdGVzIGxpbmVz IG9uIHdyaXRlIG1pc3MKPj4gKwkgKi8KPj4gKwlsbGMtPmNudGwwX3JlZ3ZhbCA9IDB4MDM7Cj4+ ICsKPj4gKwkvKgo+PiArCSAqIENOVEwxIGlzIHVzZWQgdG8gc3BlY2lmeSBTQ0lEIGZvciAoQ1As IFRQLCBWRkQsIENDVSBhbmQgVUJXQwo+PiArCSAqIEZMQUcgY2FjaGUpIEdQVSBibG9ja3MuIFRo aXMgdmFsdWUgd2lsbCBiZSBwYXNzZWQgYWxvbmcgd2l0aAo+PiArCSAqIHRoZSBhZGRyZXNzIGZv ciBhbnkgbWVtb3J5IHRyYW5zYWN0aW9uIGZyb20gR1BVIHRvIGlkZW50aWZ5Cj4+ICsJICogdGhl IHN1Yi1jYWNoZSBmb3IgdGhhdCB0cmFuc2FjdGlvbi4KPj4gKwkgKgo+PiArCSAqIEN1cnJlbnRs eSB0aGVyZSBpcyBvbmx5IG9uZSBTQ0lEIGFsbG9jYXRlZCBmb3IgYWxsIEdQVSBibG9ja3MKPj4g KwkgKiBIZW5jZSBzZXQgc2FtZSBTQ0lEIGZvciBhbGwgdGhlIGJsb2Nrcy4KPiAKPiBUaGlzIGxh c3Qgc2VudGVuY2UgaXMgbm90IG5lZWRlZAo+IAo+PiArCSAqLwo+PiArCj4+ICsJaWYgKCFJU19F UlIobGxjLT5ncHVfbGxjX3NsaWNlKSkgewo+PiArCQl1MzIgZ3B1X3NjaWQgPSBsbGNjX2dldF9z bGljZV9pZChsbGMtPmdwdV9sbGNfc2xpY2UpOwo+PiArCj4+ICsJCWZvciAoaSA9IDA7IGkgPCBB NlhYX0xMQ19OVU1fR1BVX1NDSURTOyBpKyspCj4+ICsJCQlsbGMtPmNudGwxX3JlZ3ZhbCB8PQo+ PiArCQkJCWdwdV9zY2lkIDw8IChBNlhYX0dQVV9MTENfU0NJRF9OVU1fQklUUyAqIGkpOwo+PiAr CX0KPj4gKwo+PiArCS8qCj4+ICsJICogU2V0IFNDSUQgZm9yIEdQVSBJT01NVS4gVGhpcyB3aWxs IGJlIHVzZWQgdG8gYWNjZXNzCj4+ICsJICogcGFnZSB0YWJsZXMgdGhhdCBhcmUgY2FjaGVkIGlu IExMQy4KPj4gKwkgKi8KPj4gKwlpZiAoIUlTX0VSUihsbGMtPmdwdWh0d19sbGNfc2xpY2UpKSB7 Cj4+ICsJCXUzMiBncHVodHdfc2NpZCA9IGxsY2NfZ2V0X3NsaWNlX2lkKGxsYy0+Z3B1aHR3X2xs Y19zbGljZSk7Cj4+ICsKPj4gKwkJbGxjLT5jbnRsMV9yZWd2YWwgfD0KPj4gKwkJCWdwdWh0d19z Y2lkIDw8IEE2WFhfR1BVSFRXX0xMQ19TQ0lEX1NISUZUOwo+PiArCX0KPj4gKwo+PiArCXJldHVy biAwOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIGludCBhNnh4X3BtX3Jlc3VtZShzdHJ1Y3QgbXNt X2dwdSAqZ3B1KQo+PiAgIHsKPj4gICAJc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUgPSB0 b19hZHJlbm9fZ3B1KGdwdSk7Cj4+IEBAIC02ODYsNiArODMyLDkgQEAgc3RhdGljIGludCBhNnh4 X3BtX3Jlc3VtZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQo+PiAgIAo+PiAgIAltc21fZ3B1X3Jlc3Vt ZV9kZXZmcmVxKGdwdSk7Cj4+ICAgCj4+ICsJLyogQWN0aXZhdGUgTExDIHNsaWNlcyAqLwo+PiAr CWE2eHhfbGxjX2FjdGl2YXRlKGdwdSk7Cj4+ICsKPj4gICAJcmV0dXJuIHJldDsKPj4gICB9Cj4+ ICAgCj4+IEBAIC02OTQsNiArODQzLDkgQEAgc3RhdGljIGludCBhNnh4X3BtX3N1c3BlbmQoc3Ry dWN0IG1zbV9ncHUgKmdwdSkKPj4gICAJc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUgPSB0 b19hZHJlbm9fZ3B1KGdwdSk7Cj4+ICAgCXN0cnVjdCBhNnh4X2dwdSAqYTZ4eF9ncHUgPSB0b19h Nnh4X2dwdShhZHJlbm9fZ3B1KTsKPj4gICAKPj4gKwkvKiBEZWFjdGl2YXRlIExMQyBzbGljZXMg Ki8KPj4gKwlhNnh4X2xsY19kZWFjdGl2YXRlKGdwdSk7Cj4+ICsKPj4gICAJZGV2ZnJlcV9zdXNw ZW5kX2RldmljZShncHUtPmRldmZyZXEuZGV2ZnJlcSk7Cj4+ICAgCj4+ICAgCS8qCj4+IEBAIC03 NTMsNiArOTA1LDggQEAgc3RhdGljIHZvaWQgYTZ4eF9kZXN0cm95KHN0cnVjdCBtc21fZ3B1ICpn cHUpCj4+ICAgCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChhNnh4X2dwdS0+ c3FlX2JvKTsKPj4gICAJfQo+PiAgIAo+PiArCWE2eHhfbGxjX3NsaWNlc19kZXN0cm95KCZhNnh4 X2dwdS0+bGxjKTsKPj4gKwo+PiAgIAlhNnh4X2dtdV9yZW1vdmUoYTZ4eF9ncHUpOwo+PiAgIAo+ PiAgIAlhZHJlbm9fZ3B1X2NsZWFudXAoYWRyZW5vX2dwdSk7Cj4+IEBAIC04MTksNyArOTczLDEw IEBAIHN0cnVjdCBtc21fZ3B1ICphNnh4X2dwdV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4+ICAgCWFkcmVub19ncHUtPnJlZ2lzdGVycyA9IGE2eHhfcmVnaXN0ZXJzOwo+PiAgIAlhZHJl bm9fZ3B1LT5yZWdfb2Zmc2V0cyA9IGE2eHhfcmVnaXN0ZXJfb2Zmc2V0czsKPj4gICAKPj4gLQly ZXQgPSBhZHJlbm9fZ3B1X2luaXQoZGV2LCBwZGV2LCBhZHJlbm9fZ3B1LCAmZnVuY3MsIDEsIDAp Owo+PiArCXJldCA9IGE2eHhfbGxjX3NsaWNlc19pbml0KHBkZXYsICZhNnh4X2dwdS0+bGxjKTsK PiAKPiBZZXAgLSB0aGVyZSBpcyBubyByZWFzb24gdG8gdGFrZSBhIHJldCBhbmQgbm90IGRlYWwg d2l0aCBpdC4KPiAKPj4gKwo+PiArCXJldCA9IGFkcmVub19ncHVfaW5pdChkZXYsIHBkZXYsIGFk cmVub19ncHUsICZmdW5jcywgMSwKPj4gKwkJCXJldCA/IDAgOiBNTVVfRkVBVFVSRV9VU0VfU1lT VEVNX0NBQ0hFKTsKPj4gICAJaWYgKHJldCkgewo+PiAgIAkJYTZ4eF9kZXN0cm95KCYoYTZ4eF9n cHUtPmJhc2UuYmFzZSkpOwo+PiAgIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ3B1LmggYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2FkcmVuby9hNnh4X2dwdS5oCj4+IGluZGV4IDQxMjdkY2UuLjg2MzUzZTggMTAwNjQ0 Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ3B1LmgKPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuaAo+PiBAQCAtMTIsNiArMTIsMTQg QEAKPj4gICAKPj4gICBleHRlcm4gYm9vbCBoYW5nX2RlYnVnOwo+PiAgIAo+PiArc3RydWN0IGE2 eHhfbGxjIHsKPj4gKwl2b2lkIF9faW9tZW0gKm1taW87Cj4+ICsJdm9pZCAqZ3B1X2xsY19zbGlj ZTsKPj4gKwl2b2lkICpncHVodHdfbGxjX3NsaWNlOwo+PiArCXUzMiBjbnRsMF9yZWd2YWw7Cj4+ ICsJdTMyIGNudGwxX3JlZ3ZhbDsKPj4gK307Cj4+ICsKPj4gICBzdHJ1Y3QgYTZ4eF9ncHUgewo+ PiAgIAlzdHJ1Y3QgYWRyZW5vX2dwdSBiYXNlOwo+PiAgIAo+PiBAQCAtMjEsNiArMjksNyBAQCBz dHJ1Y3QgYTZ4eF9ncHUgewo+PiAgIAlzdHJ1Y3QgbXNtX3JpbmdidWZmZXIgKmN1cl9yaW5nOwo+ PiAgIAo+PiAgIAlzdHJ1Y3QgYTZ4eF9nbXUgZ211Owo+PiArCXN0cnVjdCBhNnh4X2xsYyBsbGM7 Cj4+ICAgfTsKPj4gICAKPj4gICAjZGVmaW5lIHRvX2E2eHhfZ3B1KHgpIGNvbnRhaW5lcl9vZih4 LCBzdHJ1Y3QgYTZ4eF9ncHUsIGJhc2UpCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9pb21tdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21faW9tbXUuYwo+PiBpbmRl eCBlODBjNzliLi42NjYxMmM0IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9pb21tdS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2lvbW11LmMKPj4gQEAg LTM4LDYgKzM4LDE2IEBAIHN0YXRpYyBpbnQgbXNtX2lvbW11X2F0dGFjaChzdHJ1Y3QgbXNtX21t dSAqbW11LCBjb25zdCBjaGFyICogY29uc3QgKm5hbWVzLAo+PiAgIAkJCSAgICBpbnQgY250KQo+ PiAgIHsKPj4gICAJc3RydWN0IG1zbV9pb21tdSAqaW9tbXUgPSB0b19tc21faW9tbXUobW11KTsK Pj4gKwlpbnQgZ3B1X2h0d19sbGMgPSAxOwo+PiArCj4+ICsJLyoKPj4gKwkgKiBUaGlzIGFsbG93 cyBHUFUgdG8gc2V0IHRoZSBidXMgYXR0cmlidXRlcyByZXF1aXJlZAo+PiArCSAqIHRvIHVzZSBz eXN0ZW0gY2FjaGUgb24gYmVoYWxmIG9mIHRoZSBpb21tdSBwYWdlIHRhYmxlCj4+ICsJICogd2Fs a2VyLgo+PiArCSAqLwo+PiArCWlmIChtc21fbW11X2hhc19mZWF0dXJlKG1tdSwgTU1VX0ZFQVRV UkVfVVNFX1NZU1RFTV9DQUNIRSkpCj4+ICsJCWlvbW11X2RvbWFpbl9zZXRfYXR0cihpb21tdS0+ ZG9tYWluLAo+PiArCQkJCURPTUFJTl9BVFRSX1VTRV9TWVNfQ0FDSEUsICZncHVfaHR3X2xsYyk7 Cj4+ICAgCj4+ICAgCXJldHVybiBpb21tdV9hdHRhY2hfZGV2aWNlKGlvbW11LT5kb21haW4sIG1t dS0+ZGV2KTsKPj4gICB9Cj4+IEBAIC01Niw2ICs2Niw5IEBAIHN0YXRpYyBpbnQgbXNtX2lvbW11 X21hcChzdHJ1Y3QgbXNtX21tdSAqbW11LCB1aW50NjRfdCBpb3ZhLAo+PiAgIAlzdHJ1Y3QgbXNt X2lvbW11ICppb21tdSA9IHRvX21zbV9pb21tdShtbXUpOwo+PiAgIAlzaXplX3QgcmV0Owo+PiAg IAo+PiArCWlmIChtc21fbW11X2hhc19mZWF0dXJlKG1tdSwgTU1VX0ZFQVRVUkVfVVNFX1NZU1RF TV9DQUNIRSkpCj4+ICsJCXByb3QgfD0gSU9NTVVfU1lTX0NBQ0hFOwo+PiArCj4+ICAgCXJldCA9 IGlvbW11X21hcF9zZyhpb21tdS0+ZG9tYWluLCBpb3ZhLCBzZ3QtPnNnbCwgc2d0LT5uZW50cywg cHJvdCk7Cj4+ICAgCVdBUk5fT04ocmV0IDwgMCk7Cj4+ICAgCj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9tbXUuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX21tdS5o Cj4+IGluZGV4IDliOWY0M2YuLjUyNDc5MGIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX21tdS5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX21tdS5oCj4+ IEBAIC00OSw2ICs0OSw5IEBAIHN0cnVjdCBtc21fbW11X2Z1bmNzIHsKPj4gICAJYm9vbCAoKmlz X2RvbWFpbl9zZWN1cmUpKHN0cnVjdCBtc21fbW11ICptbXUpOwo+PiAgIH07Cj4+ICAgCj4+ICsv KiBNTVUgZmVhdHVyZXMgKi8KPj4gKyNkZWZpbmUgTU1VX0ZFQVRVUkVfVVNFX1NZU1RFTV9DQUNI RSAoMSA8PCAwKQo+PiArCj4+ICAgc3RydWN0IG1zbV9tbXUgewo+PiAgIAljb25zdCBzdHJ1Y3Qg bXNtX21tdV9mdW5jcyAqZnVuY3M7Cj4+ICAgCXN0cnVjdCBkZXZpY2UgKmRldjsKPj4gLS0gCj4+ IDEuOS4xCj4+Cj4gCgotLSAKVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlz IGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKTGludXggRm91bmRhdGlvbiBDb2xs YWJvcmF0aXZlIFByb2plY3QKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJl ZWRyZW5vCg==