From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 3/4] drm/i915: Sanitize watermarks after hardware state readout (v2) Date: Thu, 19 Nov 2015 20:01:41 -0800 Message-ID: <20151120040141.GA10239@intel.com> References: <87k2pzo0yd.fsf@intel.com> <1446569697-17425-1-git-send-email-matthew.d.roper@intel.com> <871tc5onu6.fsf@intel.com> <20151105004613.GA9715@intel.com> <87a8qsmwqv.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id CA36E6E37D for ; Thu, 19 Nov 2015 20:01:41 -0800 (PST) Content-Disposition: inline In-Reply-To: <87a8qsmwqv.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMDUsIDIwMTUgYXQgMDI6NTU6MjBQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVGh1LCAwNSBOb3YgMjAxNSwgTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGlu dGVsLmNvbT4gd3JvdGU6Cj4gPiBPbiBXZWQsIE5vdiAwNCwgMjAxNSBhdCAwNDoxMjozM1BNICsw MjAwLCBKYW5pIE5pa3VsYSB3cm90ZToKPiA+PiBPbiBUdWUsIDAzIE5vdiAyMDE1LCBNYXR0IFJv cGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPiB3cm90ZToKPiA+PiA+IEFsdGhvdWdoIHdl IGNhbiBkbyBhIGdvb2Qgam9iIG9mIHJlYWRpbmcgb3V0IGhhcmR3YXJlIHN0YXRlLCB0aGUKPiA+ PiA+IGdyYXBoaWNzIGZpcm13YXJlIG1heSBoYXZlIHByb2dyYW1tZWQgdGhlIHdhdGVybWFya3Mg aW4gYSBjcmVhdGl2ZSB3YXkKPiA+PiA+IHRoYXQgZG9lc24ndCBtYXRjaCBob3cgaTkxNSB3b3Vs ZCBoYXZlIGNob3NlbiB0byBwcm9ncmFtIHRoZW0uICBXZQo+ID4+ID4gc2hvdWxkbid0IHRydXN0 IHRoZSBmaXJtd2FyZSdzIHdhdGVybWFyayBwcm9ncmFtbWluZywgYnV0IHNob3VsZCByYXRoZXIK PiA+PiA+IHJlLWNhbGN1bGF0ZSBob3cgd2UgdGhpbmsgV00ncyBzaG91bGQgYmUgcHJvZ3JhbW1l ZCBhbmQgdGhlbiBzaG92ZSB0aG9zZQo+ID4+ID4gdmFsdWVzIGludG8gdGhlIGhhcmR3YXJlLgo+ ID4+ID4KPiA+PiA+IFdlIGNhbiBkbyB0aGlzIHByZXR0eSBlYXNpbHkgYnkgY3JlYXRpbmcgYSBk dW1teSB0b3AtbGV2ZWwgc3RhdGUsCj4gPj4gPiBydW5uaW5nIGl0IHRocm91Z2ggdGhlIGNoZWNr IHByb2Nlc3MgdG8gY2FsY3VsYXRlIGFsbCB0aGUgdmFsdWVzLCBhbmQKPiA+PiA+IHRoZW4ganVz dCBwcm9ncmFtbWluZyB0aGUgd2F0ZXJtYXJrcyBmb3IgZWFjaCBDUlRDLgo+ID4+ID4KPiA+PiA+ IHYyOiAgTW92ZSB3YXRlcm1hcmsgc2FuaXRpemF0aW9uIGFmdGVyIG91ciBCSU9TIGZiIHJlY29u c3RydWN0aW9uOyB0aGUKPiA+PiA+ICAgICAgd2F0ZXJtYXJrIGNhbGN1bGF0aW9ucyB0aGF0IHdl IGRvIGhlcmUgbmVlZCB0byBsb29rIGF0IHBzdGF0ZS0+ZmIsCj4gPj4gPiAgICAgIHdoaWNoIGlz bid0IHNldHVwIHlldCBpbiBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKCksIGV2ZW4KPiA+ PiA+ICAgICAgdGhvdWdoIHdlIGhhdmUgYW4gZW5hYmxlZCAmIHZpc2libGUgcGxhbmUuCj4gPj4g Pgo+ID4+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4gPj4gPiBD YzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4K PiA+PiA+IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5j b20+Cj4gPj4gPiAtLS0KPiA+PiA+IEphbmksIGJhc2VkIG9uIHlvdXIgbG9ncyBpdCBsb29rcyBs aWtlIHRoZSBjdWxwcml0IGlzIHRoYXQgd2UncmUgY2FsY3VsYXRpbmcKPiA+PiA+IHdhdGVybWFy a3MgYXQgc3RhcnR1cCB0aW1lIGFmdGVyIHdlJ3ZlIHJlYWQgb3V0IHByZWxpbWluYXJ5IGhhcmR3 YXJlIHN0YXRlIChzbwo+ID4+ID4gd2Uga25vdyB0aGUgcHJpbWFyeSBwbGFuZSBpcyBlbmFibGVk ICYgdmlzaWJsZSksIGJ1dCBiZWZvcmUgd2UgcmVjb25zdHJ1Y3QgdGhlCj4gPj4gPiBCSU9TIGZi IChzbyBwc3RhdGUtPmZiIGlzIE5VTEwpLiAgSSB0aGluayBtb3ZpbmcgdGhlIHdhdGVybWFyayBz YW5pdGl6YXRpb24KPiA+PiA+IGxhdGVyIGluIHRoZSBwcm9jZXNzIHNvIHRoYXQgd2UnbGwgaGF2 ZSBhIHByb3BlciBmYiBzZXR1cCBzaG91bGQgaG9wZWZ1bGx5Cj4gPj4gPiBzb2x2ZSB0aGUgaXNz dWUuICBDYW4geW91IHRlc3QgdGhpcyB2ZXJzaW9uIHdoZW4geW91IGdldCBhIGNoYW5jZT8gIEkn bGwgYWxzbwo+ID4+ID4gc2VuZCBhIHJlYmFzZWQgcGF0Y2ggIzQgc2luY2UgdGhlIGNvZGUgbW92 ZW1lbnQgaGVyZSBtZWFucyB0aGF0IHRoZSBwcmV2aW91cwo+ID4+ID4gdmVyc2lvbiB3b24ndCBh cHBseSBjbGVhbmx5Lgo+ID4+IAo+ID4+IFNvcnJ5IE1hdHQsIGJsYWNrIHNjcmVlbiB3aXRoIG5l dyB2ZXJzaW9ucyBvZiBwYXRjaGVzIDMtNC4gRG1lc2cgYXQKPiA+PiBodHRwOi8vcGFzdGViaW4u Y29tLzNMWFp3dld1Cj4gPgo+ID4gSG1tLCBva2F5LCBsb29rcyBsaWtlIHdlJ3JlIGdldHRpbmcg Y2xvc2VyIChzdWNjZXNzZnVsbHkgYXZvaWRlZCB0aGUKPiA+IGRpdmlkZSBieSB6ZXJvIHByb2Js ZW0pLCBidXQgSSBuZWdsZWN0ZWQgdG8gZ3JhYiB0aGUgbmVjZXNzYXJ5IGxvY2tzIHNvCj4gPiB0 aGUgc2FuaXRpemF0aW9uIGRvZXNuJ3QgYWN0dWFsbHkgaGFwcGVuLiAgRG9lcyBhcHBseWluZwo+ ID4gaHR0cDovL3Bhc3RlLmRlYmlhbi5uZXQvMzIyOTMyIG9uIHRvcCBvZiB0aGUgc2VyaWVzIHdv cmsgYW55IGJldHRlciBmb3IKPiA+IHlvdT8gIEkgaGF2ZW4ndCBoYWQgdGltZSB0byBwdWxsIGJh Y2sgb3V0IGFuIElMSy1zdHlsZSBzeXN0ZW0sIHNvIHRoYXQncwo+ID4gb25seSBjb21waWxlLXRl c3RlZCBhdCB0aGUgbW9tZW50Lgo+IAo+IFN0aWxsIHdhcm5zIGh0dHA6Ly9wYXN0ZWJpbi5jb20v eUd0ZGU1WDIKPiAKPiBCUiwKPiBKYW5pLgoKT2theSwgdGhhbmtzIHRvIEphbmkgc2V0dGluZyB1 cCBoaXMgbWFjaGluZSBzbyB0aGF0IEkgY2FuIGRlYnVnCnJlbW90ZWx5LCBJIHRoaW5rIEkgdW5k ZXJzdGFuZCB3aGVyZSB3ZSdyZSBnb2luZyB3cm9uZyBub3cuICBUaGUgbWlzc2luZwpwaWVjZSBv ZiB0aGUgcHV6emxlIGlzIHRoYXQgSmFuaSdzIGRpc3BsYXkgaXMgMzg0MHgyMTYwLiAgVGhhdCBt ZWFucyB0aGUKQklPUyBGQiB3ZSBuZWVkIHRvIGluaGVyaXQgaXMgZGVlbWVkIHRvbyBsYXJnZSBi eSBvdXIgaW5pdGlhbCBoYXJkd2FyZQpyZWFkb3V0IGNvZGUgKGkuZS4sIGdyZWF0ZXIgdGhhbiBo YWxmIG9mCmRldl9wcml2LT5ndHQuc3RvbGVuX3VzYWJsZV9zaXplKSwgc28gd2UgZG9uJ3QgZXZl biBib3RoZXIgaW5oZXJpdGluZwp0aGUgRkIgYW5kIHBzdGF0ZS0+ZmIgc3RheXMgTlVMTCwgZXZl biB0aG91Z2ggcHN0YXRlLT52aXNpYmxlID0gdHJ1ZSBhbmQKdGhlIHBsYW5lIGlzIHBhcnQgb2Yg dGhlIENSVEMncyBwbGFuZV9tYXNrLgoKQWRkaW5nIE1hYXJ0ZW4sIFZpbGxlLCBhbmQgQW5kZXIg dG8gQ2Mgc2luY2UgSSB0aGluayB0aGV5IG1heSBoYXZlIHNvbWUKaW5zaWdodHMgb24gaG93IGJl c3QgdG8gaGFuZGxlIHRoaXMuICBTZWVtcyBsaWtlIG91ciBvcHRpb25zIGFyZToKICogSWYgb3Vy IHdhdGVybWFyayBjb2RlIGNvbWVzIHVwIHdpdGggYSBOVUxMIEZCIHdoaWxlIHBzdGF0ZS0+dmlz aWJsZSwKICAganVzdCBwcmV0ZW5kIHdlJ3JlIHdvcmtpbmcgb24gYSAzMi1iaXQgZnJhbWVidWZm ZXIgdGhhdCBtYXRjaGVzIHRoZQogICBDUlRDIG1vZGUgZGltZW5zaW9ucy4gIFdlJ2xsIHRoZW4g Y2FsY3VsYXRlIGFwcHJvcHJpYXRlIHdhdGVybWFyawogICB2YWx1ZXMsIGV2ZW4gdGhvdWdoIHdl IGRvbid0IGhhdmUgYW55IHJlYWwgaW5mb3JtYXRpb24gZm9yIHRoZSBGQgogICB0aGF0IHRoZSBo YXJkd2FyZSBpcyBzY2FubmluZyBvdXQgb2YuCiAqIFNldCBwc3RhdGUtPnZpc2libGUgPSBmYWxz ZSBhbmQgY2xlYXIgdGhlIGJpdCBmcm9tIHBsYW5lX21hc2suICBJCiAgIHRoaW5rIHdlJ2xsIHJ1 biBpbnRvIHN0YXRlIHZlcmlmaWNhdGlvbiB3YXJuaW5ncyB0aGVuICgicGxhbmUgQQogICBzaG91 bGQgYmUgZGlzYWJsZWQgYnV0IGlzIG5vdCIpIHNpbmNlIG91ciBIVyBzdGF0ZSBhbmQgU1cgc3Rh dGUgZG9uJ3QKICAgbWF0Y2guCiAqIEFjdHVhbGx5IHR1cm4gb2ZmIHRoZSBwcmltYXJ5IHBsYW5l IChoYXJkd2FyZS13aXNlKSBpZiB3ZSBmYWlsIHRvCiAgIGluaGVyaXQgdGhlIEJJT1MgRkIuCgpT ZWVtcyBsaWtlIHRoZSBmaXJzdCBvcHRpb24gbWF5IGJlIHRoZSBzaW1wbGVzdC4gICBUaG91Z2h0 cz8gIEFueXRoaW5nCkknbSBvdmVybG9va2luZz8KCgpNYXR0Cgo+IAo+IAo+ID4KPiA+Cj4gPiBN YXR0Cj4gPgo+ID4+IAo+ID4+IEJSLAo+ID4+IEphbmkuCj4gPj4gCj4gPj4gCj4gPj4gCj4gPj4g Pgo+ID4+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAxICsKPiA+ PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA1NSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jICAgICAgfCAxNCArKysrKy0tLS0KPiA+PiA+ICAzIGZpbGVzIGNoYW5nZWQsIDY0 IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4gPj4gPgo+ID4+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gPj4gPiBpbmRleCAyMGNkNmQ4Li4wOTgwN2M4IDEwMDY0NAo+ID4+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4+ID4gQEAgLTYyOSw2ICs2MjksNyBAQCBzdHJ1Y3Qg ZHJtX2k5MTVfZGlzcGxheV9mdW5jcyB7Cj4gPj4gPiAgCQkJICBzdHJ1Y3QgZHBsbCAqYmVzdF9j bG9jayk7Cj4gPj4gPiAgCWludCAoKmNvbXB1dGVfcGlwZV93bSkoc3RydWN0IGludGVsX2NydGMg KmNydGMsCj4gPj4gPiAgCQkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7 Cj4gPj4gPiArCXZvaWQgKCpwcm9ncmFtX3dhdGVybWFya3MpKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjc3RhdGUpOwo+ID4+ID4gIAl2b2lkICgqdXBkYXRlX3dtKShzdHJ1Y3QgZHJtX2NydGMg KmNydGMpOwo+ID4+ID4gIAlpbnQgKCptb2Rlc2V0X2NhbGNfY2RjbGspKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSk7Cj4gPj4gPiAgCXZvaWQgKCptb2Rlc2V0X2NvbW1pdF9jZGNsayko c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiA+PiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiA+PiA+IGluZGV4IDdiM2NmYjYuLmUyODkzMTEgMTAwNjQ0Cj4gPj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+PiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+ID4gQEAgLTE0OTM2LDYg KzE0OTM2LDU0IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gPj4gPiAgCWludGVsX2VuYWJsZV9ndF9wb3dlcnNhdmUoZGV2KTsKPiA+PiA+ICB9 Cj4gPj4gPiAgCj4gPj4gPiArLyoKPiA+PiA+ICsgKiBDYWxjdWxhdGUgd2hhdCB3ZSB0aGluayB0 aGUgd2F0ZXJtYXJrcyBzaG91bGQgYmUgZm9yIHRoZSBzdGF0ZSB3ZSd2ZSByZWFkCj4gPj4gPiAr ICogb3V0IG9mIHRoZSBoYXJkd2FyZSBhbmQgdGhlbiBpbW1lZGlhdGVseSBwcm9ncmFtIHRob3Nl IHdhdGVybWFya3Mgc28gdGhhdAo+ID4+ID4gKyAqIHdlIGVuc3VyZSB0aGUgaGFyZHdhcmUgc2V0 dGluZ3MgbWF0Y2ggb3VyIGludGVybmFsIHN0YXRlLgo+ID4+ID4gKyAqLwo+ID4+ID4gK3N0YXRp YyB2b2lkIHNhbml0aXplX3dhdGVybWFya3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+PiA+ ICt7Cj4gPj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGV2KTsKPiA+PiA+ICsJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+ID4+ID4gKwlz dHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gPj4gPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0 YXRlOwo+ID4+ID4gKwlpbnQgcmV0Owo+ID4+ID4gKwlpbnQgaTsKPiA+PiA+ICsKPiA+PiA+ICsJ LyogT25seSBzdXBwb3J0ZWQgb24gcGxhdGZvcm1zIHRoYXQgdXNlIGF0b21pYyB3YXRlcm1hcmsg ZGVzaWduICovCj4gPj4gPiArCWlmICghZGV2X3ByaXYtPmRpc3BsYXkucHJvZ3JhbV93YXRlcm1h cmtzKQo+ID4+ID4gKwkJcmV0dXJuOwo+ID4+ID4gKwo+ID4+ID4gKwkvKgo+ID4+ID4gKwkgKiBD YWxjdWxhdGUgd2hhdCB3ZSB0aGluayBXTSdzIHNob3VsZCBiZSBieSBjcmVhdGluZyBhIGR1bW15 IHN0YXRlIGFuZAo+ID4+ID4gKwkgKiBydW5uaW5nIGl0IHRocm91Z2ggdGhlIGF0b21pYyBjaGVj ayBjb2RlLgo+ID4+ID4gKwkgKi8KPiA+PiA+ICsJc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9k dXBsaWNhdGVfc3RhdGUoZGV2LAo+ID4+ID4gKwkJCQkJCSAgZGV2LT5tb2RlX2NvbmZpZy5hY3F1 aXJlX2N0eCk7Cj4gPj4gPiArCWlmIChXQVJOX09OKElTX0VSUihzdGF0ZSkpKQo+ID4+ID4gKwkJ cmV0dXJuOwo+ID4+ID4gKwo+ID4+ID4gKwlyZXQgPSBpbnRlbF9hdG9taWNfY2hlY2soZGV2LCBz dGF0ZSk7Cj4gPj4gPiArCWlmIChyZXQpIHsKPiA+PiA+ICsJCS8qCj4gPj4gPiArCQkgKiBKdXN0 IGdpdmUgdXAgYW5kIGxlYXZlIHdhdGVybWFya3MgdW50b3VjaGVkIGlmIHdlIGdldCBhbgo+ID4+ ID4gKwkJICogZXJyb3IgYmFjayBmcm9tICdjaGVjaycKPiA+PiA+ICsJCSAqLwo+ID4+ID4gKwkJ RFJNX0RFQlVHX0tNUygiQ291bGQgbm90IGRldGVybWluZSB2YWxpZCB3YXRlcm1hcmtzIGZvciBp bmhlcml0ZWQgc3RhdGVcbiIpOwo+ID4+ID4gKwkJcmV0dXJuOwo+ID4+ID4gKwl9Cj4gPj4gPiAr Cj4gPj4gPiArCS8qIFdyaXRlIGNhbGN1bGF0ZWQgd2F0ZXJtYXJrIHZhbHVlcyBiYWNrICovCj4g Pj4gPiArCXRvX2k5MTUoZGV2KS0+d20uY29uZmlnID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0 YXRlKS0+d21fY29uZmlnOwo+ID4+ID4gKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBj cnRjLCBjc3RhdGUsIGkpIHsKPiA+PiA+ICsJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcyA9 IHRvX2ludGVsX2NydGNfc3RhdGUoY3N0YXRlKTsKPiA+PiA+ICsKPiA+PiA+ICsJCWRldl9wcml2 LT5kaXNwbGF5LnByb2dyYW1fd2F0ZXJtYXJrcyhjcyk7Cj4gPj4gPiArCX0KPiA+PiA+ICsKPiA+ PiA+ICsJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPiA+PiA+ICt9Cj4gPj4gPiArCj4g Pj4gPiAgdm9pZCBpbnRlbF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ PiA+ICB7Cj4gPj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gPj4gPiBAQCAtMTUwNTksNiArMTUxMDcsMTMgQEAgdm9pZCBpbnRlbF9t b2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+PiA+ICAJCSAqLwo+ID4+ID4g IAkJaW50ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihjcnRjLCAmcGxhbmVfY29uZmlnKTsKPiA+ PiA+ICAJfQo+ID4+ID4gKwo+ID4+ID4gKwkvKgo+ID4+ID4gKwkgKiBNYWtlIHN1cmUgaGFyZHdh cmUgd2F0ZXJtYXJrcyByZWFsbHkgbWF0Y2ggdGhlIHN0YXRlIHdlIHJlYWQgb3V0Lgo+ID4+ID4g KwkgKiBOb3RlIHRoYXQgd2UgbmVlZCB0byBkbyB0aGlzIGFmdGVyIHJlY29uc3RydWN0aW5nIHRo ZSBCSU9TIGZiJ3MKPiA+PiA+ICsJICogc2luY2UgdGhlIHdhdGVybWFyayBjYWxjdWxhdGlvbiBk b25lIGhlcmUgd2lsbCB1c2UgcHN0YXRlLT5mYi4KPiA+PiA+ICsJICovCj4gPj4gPiArCXNhbml0 aXplX3dhdGVybWFya3MoZGV2KTsKPiA+PiA+ICB9Cj4gPj4gPiAgCj4gPj4gPiAgc3RhdGljIHZv aWQgaW50ZWxfZW5hYmxlX3BpcGVfYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jCj4gPj4gPiBpbmRleCAxODAzNDhiLi5mYmNiMDcyIDEwMDY0NAo+ ID4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4+ID4gQEAgLTM2MTEsMTUgKzM2MTEs MTkgQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g Pj4gPiAgCWRldl9wcml2LT53bS5za2xfaHcgPSAqcmVzdWx0czsKPiA+PiA+ICB9Cj4gPj4gPiAg Cj4gPj4gPiAtc3RhdGljIHZvaWQgaWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPj4gPiArc3RhdGljIHZvaWQgaWxrX3Byb2dyYW1fd2F0 ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ID4+ID4gIHsKPiA+PiA+ IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gPj4gPiArCXN0cnVj dCBkcm1fY3J0YyAqY3J0YyA9IGNzdGF0ZS0+YmFzZS5jcnRjOwo+ID4+ID4gKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ID4+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPj4gPiAgCXN0cnVjdCBpbnRlbF9waXBlX3dt IGxwX3dtXzFfMiA9IHt9LCBscF93bV81XzYgPSB7fSwgKmJlc3RfbHBfd207Cj4gPj4gPiAgCXN0 cnVjdCBpbGtfd21fbWF4aW11bXMgbWF4Owo+ID4+ID4gIAlzdHJ1Y3QgaW50ZWxfd21fY29uZmln ICpjb25maWcgPSAmZGV2X3ByaXYtPndtLmNvbmZpZzsKPiA+PiA+ICAJc3RydWN0IGlsa193bV92 YWx1ZXMgcmVzdWx0cyA9IHt9Owo+ID4+ID4gIAllbnVtIGludGVsX2RkYl9wYXJ0aXRpb25pbmcg cGFydGl0aW9uaW5nOwo+ID4+ID4gIAo+ID4+ID4gKwl0b19pbnRlbF9jcnRjKGNydGMpLT53bS5h Y3RpdmUuaWxrID0gY3N0YXRlLT53bS5vcHRpbWFsLmlsazsKPiA+PiA+ICsKPiA+PiA+ICAJaWxr X2NvbXB1dGVfd21fbWF4aW11bXMoZGV2LCAxLCBjb25maWcsIElOVEVMX0REQl9QQVJUXzFfMiwg Jm1heCk7Cj4gPj4gPiAgCWlsa193bV9tZXJnZShkZXYsIGNvbmZpZywgJm1heCwgJmxwX3dtXzFf Mik7Cj4gPj4gPiAgCj4gPj4gPiBAQCAtMzY0NCw3ICszNjQ4LDYgQEAgc3RhdGljIHZvaWQgaWxr X3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g Pj4gPiAgCj4gPj4gPiAgc3RhdGljIHZvaWQgaWxrX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gPj4gPiAgewo+ID4+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmRldik7Cj4gPj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiA+PiA+ICAJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ID4+ID4g IAo+ID4+ID4gQEAgLTM2NjIsOSArMzY2NSw3IEBAIHN0YXRpYyB2b2lkIGlsa191cGRhdGVfd20o c3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4+ID4gIAkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGNy dGMtPmRldiwgaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gPj4gPiAgCX0KPiA+PiA+ICAKPiA+PiA+IC0J aW50ZWxfY3J0Yy0+d20uYWN0aXZlLmlsayA9IGNzdGF0ZS0+d20ub3B0aW1hbC5pbGs7Cj4gPj4g PiAtCj4gPj4gPiAtCWlsa19wcm9ncmFtX3dhdGVybWFya3MoZGV2X3ByaXYpOwo+ID4+ID4gKwlp bGtfcHJvZ3JhbV93YXRlcm1hcmtzKGNzdGF0ZSk7Cj4gPj4gPiAgfQo+ID4+ID4gIAo+ID4+ID4g IHN0YXRpYyB2b2lkIHNrbF9waXBlX3dtX2FjdGl2ZV9zdGF0ZSh1aW50MzJfdCB2YWwsCj4gPj4g PiBAQCAtNjk3Miw2ICs2OTczLDcgQEAgdm9pZCBpbnRlbF9pbml0X3BtKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gPj4gPiAgCQkgICAgIGRldl9wcml2LT53bS5zcHJfbGF0ZW5jeVswXSAmJiBk ZXZfcHJpdi0+d20uY3VyX2xhdGVuY3lbMF0pKSB7Cj4gPj4gPiAgCQkJZGV2X3ByaXYtPmRpc3Bs YXkudXBkYXRlX3dtID0gaWxrX3VwZGF0ZV93bTsKPiA+PiA+ICAJCQlkZXZfcHJpdi0+ZGlzcGxh eS5jb21wdXRlX3BpcGVfd20gPSBpbGtfY29tcHV0ZV9waXBlX3dtOwo+ID4+ID4gKwkJCWRldl9w cml2LT5kaXNwbGF5LnByb2dyYW1fd2F0ZXJtYXJrcyA9IGlsa19wcm9ncmFtX3dhdGVybWFya3M7 Cj4gPj4gPiAgCQl9IGVsc2Ugewo+ID4+ID4gIAkJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBy ZWFkIGRpc3BsYXkgcGxhbmUgbGF0ZW5jeS4gIgo+ID4+ID4gIAkJCQkgICAgICAiRGlzYWJsZSBD eFNSXG4iKTsKPiA+PiAKPiA+PiAtLSAKPiA+PiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3Vy Y2UgVGVjaG5vbG9neSBDZW50ZXIKPiAKPiAtLSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBT b3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKCi0tIApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3YXJl IEVuZ2luZWVyCklvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBDb3Jw b3JhdGlvbgooOTE2KSAzNTYtMjc5NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=