From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oscar Mateo Subject: [PATCH 5/5] drm/i915: Classify GT & Display WAs correctly Date: Tue, 13 Feb 2018 11:13:32 -0800 Message-ID: <1518549212-34904-5-git-send-email-oscar.mateo@intel.com> References: <1518549212-34904-1-git-send-email-oscar.mateo@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id C39BD6E28C for ; Tue, 13 Feb 2018 19:15:32 +0000 (UTC) In-Reply-To: <1518549212-34904-1-git-send-email-oscar.mateo@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org TW92ZSBHVCBXQXMgYXBwcm9waWF0ZWx5IGZyb20gdGhlIGN1cnJlbnQgeHh4X2Rpc3Bfd29ya2Fy b3VuZHNfYXBwbHkKZnVuY3Rpb24gdG8gdGhlIGNvcnJlc3BvbmRpbmcgeHh4X2d0X3dvcmthcm91 bmRzX2FwcGx5IG9uZS4KCkZJWE1FOiBJdCBsb29rcyBsaWtlIENocmlzIGhhcyBmb3VuZCBzb21l IFdBcyB0aGF0IGFjdHVhbGx5IGxpdmUgaW4KdGhlIGNvbnRleHQgaW1hZ2UuIFdlIG5lZWQgdG8g bW92ZSB0aGVzZSB0byB0aGVpciByaWdodGZ1bAp4eHhfd29ya2Fyb3VuZHNfaW5pdCBmdW5jdGlv bi4KCnYyOiBSZWJhc2VkCgpTaWduZWQtb2ZmLWJ5OiBPc2NhciBNYXRlbyA8b3NjYXIubWF0ZW9A aW50ZWwuY29tPgpDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5j b20+CkNjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+CkNjOiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfd29ya2Fyb3VuZHMuYyB8IDIwMyArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDEwMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfd29ya2Fyb3VuZHMuYwppbmRleCA4YTI3YzEzLi5hYzFmOGJj IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMKQEAgLTQ2OCwxMiAr NDY4LDk1IEBAIGludCBpbnRlbF9jdHhfd29ya2Fyb3VuZHNfZW1pdChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgZ2VuOF9zZXRf bDNzcWNfY3JlZGl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJICAg aW50IGdlbmVyYWxfcHJpb19jcmVkaXRzLAorCQkJCSAgIGludCBoaWdoX3ByaW9fY3JlZGl0cykK K3sKKwl1MzIgbWlzY2NwY3RsOworCXUzMiB2YWw7CisKKwkvKiBXYVRlbXBEaXNhYmxlRE9QQ2xr R2F0aW5nOmJkdyAqLworCW1pc2NjcGN0bCA9IEk5MTVfUkVBRChHRU43X01JU0NDUENUTCk7CisJ STkxNV9XUklURShHRU43X01JU0NDUENUTCwgbWlzY2NwY3RsICYgfkdFTjdfRE9QX0NMT0NLX0dB VEVfRU5BQkxFKTsKKworCXZhbCA9IEk5MTVfUkVBRChHRU44X0wzU1FDUkVHMSk7CisJdmFsICY9 IH5MM19QUklPX0NSRURJVFNfTUFTSzsKKwl2YWwgfD0gTDNfR0VORVJBTF9QUklPX0NSRURJVFMo Z2VuZXJhbF9wcmlvX2NyZWRpdHMpOworCXZhbCB8PSBMM19ISUdIX1BSSU9fQ1JFRElUUyhoaWdo X3ByaW9fY3JlZGl0cyk7CisJSTkxNV9XUklURShHRU44X0wzU1FDUkVHMSwgdmFsKTsKKworCS8q CisJICogV2FpdCBhdCBsZWFzdCAxMDAgY2xvY2tzIGJlZm9yZSByZS1lbmFibGluZyBjbG9jayBn YXRpbmcuCisJICogU2VlIHRoZSBkZWZpbml0aW9uIG9mIEwzU1FDUkVHMSBpbiBCU3BlYy4KKwkg Ki8KKwlQT1NUSU5HX1JFQUQoR0VOOF9MM1NRQ1JFRzEpOworCXVkZWxheSgxKTsKKwlJOTE1X1dS SVRFKEdFTjdfTUlTQ0NQQ1RMLCBtaXNjY3BjdGwpOworfQorCiBzdGF0aWMgdm9pZCBiZHdfZ3Rf d29ya2Fyb3VuZHNfYXBwbHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewor CS8qIFRoZSBHVFQgY2FjaGUgbXVzdCBiZSBkaXNhYmxlZCBpZiB0aGUgc3lzdGVtIGlzIHVzaW5n IDJNIHBhZ2VzLiAqLworCWJvb2wgY2FuX3VzZV9ndHRfY2FjaGUgPSAhSEFTX1BBR0VfU0laRVMo ZGV2X3ByaXYsCisJCQkJCQkgSTkxNV9HVFRfUEFHRV9TSVpFXzJNKTsKKwkvKiBXYVN3aXRjaFNv bFZmRkFyYml0cmF0aW9uUHJpb3JpdHk6YmR3ICovCisJSTkxNV9XUklURShHQU1fRUNPQ0hLLCBJ OTE1X1JFQUQoR0FNX0VDT0NISykgfCBIU1dfRUNPQ0hLX0FSQl9QUklPX1NPTCk7CisKKwkvKiBX YVZTUmVmQ291bnRGdWxsZm9yY2VNaXNzRGlzYWJsZTpiZHcgKi8KKwkvKiBXYURTUmVmQ291bnRG dWxsZm9yY2VNaXNzRGlzYWJsZTpiZHcgKi8KKwlJOTE1X1dSSVRFKEdFTjdfRkZfVEhSRUFEX01P REUsCisJCSAgIEk5MTVfUkVBRChHRU43X0ZGX1RIUkVBRF9NT0RFKSAmCisJCSAgIH4oR0VOOF9G Rl9EU19SRUZfQ05UX0ZGTUUgfCBHRU43X0ZGX1ZTX1JFRl9DTlRfRkZNRSkpOworCisKKwlJOTE1 X1dSSVRFKEdFTjZfUkNfU0xFRVBfUFNNSV9DT05UUk9MLAorCQkgICBfTUFTS0VEX0JJVF9FTkFC TEUoR0VOOF9SQ19TRU1BX0lETEVfTVNHX0RJU0FCTEUpKTsKKworCisJLyogV2FEaXNhYmxlU0RF VW5pdENsb2NrR2F0aW5nOmJkdyAqLworCUk5MTVfV1JJVEUoR0VOOF9VQ0dDVEw2LCBJOTE1X1JF QUQoR0VOOF9VQ0dDVEw2KSB8CisJCSAgIEdFTjhfU0RFVU5JVF9DTE9DS19HQVRFX0RJU0FCTEUp OworCisKKwkvKiBXYVByb2dyYW1MM1NxY1JlZzFEZWZhdWx0OmJkdyAqLworCWdlbjhfc2V0X2wz c3FjX2NyZWRpdHMoZGV2X3ByaXYsIDMwLCAyKTsKKworCS8qIFdhR3R0Q2FjaGluZ09mZkJ5RGVm YXVsdDpiZHcgKi8KKwlJOTE1X1dSSVRFKEhTV19HVFRfQ0FDSEVfRU4sIGNhbl91c2VfZ3R0X2Nh Y2hlID8gR1RUX0NBQ0hFX0VOX0FMTCA6IDApOwogfQogCiBzdGF0aWMgdm9pZCBjaHZfZ3Rfd29y a2Fyb3VuZHNfYXBwbHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogeworCS8q IFdhVlNSZWZDb3VudEZ1bGxmb3JjZU1pc3NEaXNhYmxlOmNodiAqLworCS8qIFdhRFNSZWZDb3Vu dEZ1bGxmb3JjZU1pc3NEaXNhYmxlOmNodiAqLworCUk5MTVfV1JJVEUoR0VON19GRl9USFJFQURf TU9ERSwKKwkJICAgSTkxNV9SRUFEKEdFTjdfRkZfVEhSRUFEX01PREUpICYKKwkJICAgfihHRU44 X0ZGX0RTX1JFRl9DTlRfRkZNRSB8IEdFTjdfRkZfVlNfUkVGX0NOVF9GRk1FKSk7CisKKwkvKiBX YURpc2FibGVTZW1hcGhvcmVBbmRTeW5jRmxpcFdhaXQ6Y2h2ICovCisJSTkxNV9XUklURShHRU42 X1JDX1NMRUVQX1BTTUlfQ09OVFJPTCwKKwkJICAgX01BU0tFRF9CSVRfRU5BQkxFKEdFTjhfUkNf U0VNQV9JRExFX01TR19ESVNBQkxFKSk7CisKKwkvKiBXYURpc2FibGVDU1VuaXRDbG9ja0dhdGlu ZzpjaHYgKi8KKwlJOTE1X1dSSVRFKEdFTjZfVUNHQ1RMMSwgSTkxNV9SRUFEKEdFTjZfVUNHQ1RM MSkgfAorCQkgICBHRU42X0NTVU5JVF9DTE9DS19HQVRFX0RJU0FCTEUpOworCisJLyogV2FEaXNh YmxlU0RFVW5pdENsb2NrR2F0aW5nOmNodiAqLworCUk5MTVfV1JJVEUoR0VOOF9VQ0dDVEw2LCBJ OTE1X1JFQUQoR0VOOF9VQ0dDVEw2KSB8CisJCSAgIEdFTjhfU0RFVU5JVF9DTE9DS19HQVRFX0RJ U0FCTEUpOworCisJLyoKKwkgKiBXYVByb2dyYW1MM1NxY1JlZzFEZWZhdWx0OmNodgorCSAqIFNl ZSBnZnhzcGVjcy9SZWxhdGVkIERvY3VtZW50cy9QZXJmb3JtYW5jZSBHdWlkZS8KKwkgKiBMU1FD IFNldHRpbmcgUmVjb21tZW5kYXRpb25zLgorCSAqLworCWdlbjhfc2V0X2wzc3FjX2NyZWRpdHMo ZGV2X3ByaXYsIDM4LCAyKTsKKworCS8qCisJICogR1RUIGNhY2hlIG1heSBub3Qgd29yayB3aXRo IGJpZyBwYWdlcywgc28gaWYgdGhvc2UKKwkgKiBhcmUgZXZlciBlbmFibGVkIEdUVCBjYWNoZSBt YXkgbmVlZCB0byBiZSBkaXNhYmxlZC4KKwkgKi8KKwlJOTE1X1dSSVRFKEhTV19HVFRfQ0FDSEVf RU4sIEdUVF9DQUNIRV9FTl9BTEwpOwogfQogCiBzdGF0aWMgdm9pZCBnZW45X2d0X3dvcmthcm91 bmRzX2FwcGx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTU1Niw2ICs2 MzksMTAgQEAgc3RhdGljIHZvaWQgYnh0X2d0X3dvcmthcm91bmRzX2FwcGx5KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlJOTE1X1dSSVRFKEdFTjlfR0FNVF9FQ09fUkVHX1JX X0lBLAogCQkgICAoSTkxNV9SRUFEKEdFTjlfR0FNVF9FQ09fUkVHX1JXX0lBKSB8CiAJCSAgICBH QU1UX0VDT19FTkFCTEVfSU5fUExBQ0VfREVDT01QUkVTUykpOworCisJLyogV2FEaXNhYmxlU0RF VW5pdENsb2NrR2F0aW5nOmJ4dCAqLworCUk5MTVfV1JJVEUoR0VOOF9VQ0dDVEw2LCAoSTkxNV9S RUFEKEdFTjhfVUNHQ1RMNikgfAorCQkJCSAgR0VOOF9TREVVTklUX0NMT0NLX0dBVEVfRElTQUJM RSkpOwogfQogCiBzdGF0aWMgdm9pZCBrYmxfZ3Rfd29ya2Fyb3VuZHNfYXBwbHkoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtNTgwLDYgKzY2NywxNiBAQCBzdGF0aWMgdm9p ZCBrYmxfZ3Rfd29ya2Fyb3VuZHNfYXBwbHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogCUk5MTVfV1JJVEUoR0VOOV9HQU1UX0VDT19SRUdfUldfSUEsCiAJCSAgIChJOTE1X1JF QUQoR0VOOV9HQU1UX0VDT19SRUdfUldfSUEpIHwKIAkJICAgIEdBTVRfRUNPX0VOQUJMRV9JTl9Q TEFDRV9ERUNPTVBSRVNTKSk7CisKKwkvKiBXYURpc2FibGVTREVVbml0Q2xvY2tHYXRpbmc6a2Js ICovCisJaWYgKElTX0tCTF9SRVZJRChkZXZfcHJpdiwgMCwgS0JMX1JFVklEX0IwKSkKKwkJSTkx NV9XUklURShHRU44X1VDR0NUTDYsIEk5MTVfUkVBRChHRU44X1VDR0NUTDYpIHwKKwkJCSAgIEdF TjhfU0RFVU5JVF9DTE9DS19HQVRFX0RJU0FCTEUpOworCisJLyogV2FEaXNhYmxlR2FtQ2xvY2tH YXRpbmc6a2JsICovCisJaWYgKElTX0tCTF9SRVZJRChkZXZfcHJpdiwgMCwgS0JMX1JFVklEX0Iw KSkKKwkJSTkxNV9XUklURShHRU42X1VDR0NUTDEsIEk5MTVfUkVBRChHRU42X1VDR0NUTDEpIHwK KwkJCSAgIEdFTjZfR0FNVU5JVF9DTE9DS19HQVRFX0RJU0FCTEUpOwogfQogCiBzdGF0aWMgdm9p ZCBnbGtfZ3Rfd29ya2Fyb3VuZHNfYXBwbHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQpAQCAtNjIxLDYgKzcxOCwxMCBAQCBzdGF0aWMgdm9pZCBjbmxfZ3Rfd29ya2Fyb3VuZHNf YXBwbHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCS8qIFdhRW5hYmxlUHJl ZW1wdGlvbkdyYW51bGFyaXR5Q29udHJvbEJ5VU1EOmNubCAqLwogCUk5MTVfV1JJVEUoR0VON19G Rl9TTElDRV9DU19DSElDS0VOMSwKIAkJICAgX01BU0tFRF9CSVRfRU5BQkxFKEdFTjlfRkZTQ19Q RVJDVFhfUFJFRU1QVF9DVFJMKSk7CisKKwkvKiBUaGlzIGlzIG5vdCBhbiBXYS4gRW5hYmxlIGZv ciBiZXR0ZXIgaW1hZ2UgcXVhbGl0eSAqLworCUk5MTVfV1JJVEUoXzNEX0NISUNLRU4zLAorCQkg ICBfTUFTS0VEX0JJVF9FTkFCTEUoXzNEX0NISUNLRU4zX0FBX0xJTkVfUVVBTElUWV9GSVhfRU5B QkxFKSk7CiB9CiAKIHZvaWQgaW50ZWxfZ3Rfd29ya2Fyb3VuZHNfYXBwbHkoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtNjQ3LDQyICs3NDgsMTAgQEAgdm9pZCBpbnRlbF9n dF93b3JrYXJvdW5kc19hcHBseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJ CU1JU1NJTkdfQ0FTRShJTlRFTF9HRU4oZGV2X3ByaXYpKTsKIH0KIAotc3RhdGljIHZvaWQgZ2Vu OF9zZXRfbDNzcWNfY3JlZGl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0J CQkJICAgaW50IGdlbmVyYWxfcHJpb19jcmVkaXRzLAotCQkJCSAgIGludCBoaWdoX3ByaW9fY3Jl ZGl0cykKLXsKLQl1MzIgbWlzY2NwY3RsOwotCXUzMiB2YWw7Ci0KLQkvKiBXYVRlbXBEaXNhYmxl RE9QQ2xrR2F0aW5nOmJkdyAqLwotCW1pc2NjcGN0bCA9IEk5MTVfUkVBRChHRU43X01JU0NDUENU TCk7Ci0JSTkxNV9XUklURShHRU43X01JU0NDUENUTCwgbWlzY2NwY3RsICYgfkdFTjdfRE9QX0NM T0NLX0dBVEVfRU5BQkxFKTsKLQotCXZhbCA9IEk5MTVfUkVBRChHRU44X0wzU1FDUkVHMSk7Ci0J dmFsICY9IH5MM19QUklPX0NSRURJVFNfTUFTSzsKLQl2YWwgfD0gTDNfR0VORVJBTF9QUklPX0NS RURJVFMoZ2VuZXJhbF9wcmlvX2NyZWRpdHMpOwotCXZhbCB8PSBMM19ISUdIX1BSSU9fQ1JFRElU UyhoaWdoX3ByaW9fY3JlZGl0cyk7Ci0JSTkxNV9XUklURShHRU44X0wzU1FDUkVHMSwgdmFsKTsK LQotCS8qCi0JICogV2FpdCBhdCBsZWFzdCAxMDAgY2xvY2tzIGJlZm9yZSByZS1lbmFibGluZyBj bG9jayBnYXRpbmcuCi0JICogU2VlIHRoZSBkZWZpbml0aW9uIG9mIEwzU1FDUkVHMSBpbiBCU3Bl Yy4KLQkgKi8KLQlQT1NUSU5HX1JFQUQoR0VOOF9MM1NRQ1JFRzEpOwotCXVkZWxheSgxKTsKLQlJ OTE1X1dSSVRFKEdFTjdfTUlTQ0NQQ1RMLCBtaXNjY3BjdGwpOwotfQotCiBzdGF0aWMgdm9pZCBi ZHdfZGlzcF93b3JrYXJvdW5kc19hcHBseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiB7Ci0JLyogVGhlIEdUVCBjYWNoZSBtdXN0IGJlIGRpc2FibGVkIGlmIHRoZSBzeXN0ZW0g aXMgdXNpbmcgMk0gcGFnZXMuICovCi0JYm9vbCBjYW5fdXNlX2d0dF9jYWNoZSA9ICFIQVNfUEFH RV9TSVpFUyhkZXZfcHJpdiwKLQkJCQkJCSBJOTE1X0dUVF9QQUdFX1NJWkVfMk0pOwogCWVudW0g cGlwZSBwaXBlOwogCi0JLyogV2FTd2l0Y2hTb2xWZkZBcmJpdHJhdGlvblByaW9yaXR5OmJkdyAq LwotCUk5MTVfV1JJVEUoR0FNX0VDT0NISywgSTkxNV9SRUFEKEdBTV9FQ09DSEspIHwgSFNXX0VD T0NIS19BUkJfUFJJT19TT0wpOwotCiAJLyogV2FQc3JEUEFNYXNrVkJsYW5rSW5TUkQ6YmR3ICov CiAJSTkxNV9XUklURShDSElDS0VOX1BBUjFfMSwKIAkJICAgSTkxNV9SRUFEKENISUNLRU5fUEFS MV8xKSB8IERQQV9NQVNLX1ZCTEFOS19TUkQpOwpAQCAtNjk0LDI1ICs3NjMsNiBAQCBzdGF0aWMg dm9pZCBiZHdfZGlzcF93b3JrYXJvdW5kc19hcHBseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJCQkgICBCRFdfRFBSU19NQVNLX1ZCTEFOS19TUkQpOwogCX0KIAotCS8qIFdh VlNSZWZDb3VudEZ1bGxmb3JjZU1pc3NEaXNhYmxlOmJkdyAqLwotCS8qIFdhRFNSZWZDb3VudEZ1 bGxmb3JjZU1pc3NEaXNhYmxlOmJkdyAqLwotCUk5MTVfV1JJVEUoR0VON19GRl9USFJFQURfTU9E RSwKLQkJICAgSTkxNV9SRUFEKEdFTjdfRkZfVEhSRUFEX01PREUpICYKLQkJICAgfihHRU44X0ZG X0RTX1JFRl9DTlRfRkZNRSB8IEdFTjdfRkZfVlNfUkVGX0NOVF9GRk1FKSk7Ci0KLQlJOTE1X1dS SVRFKEdFTjZfUkNfU0xFRVBfUFNNSV9DT05UUk9MLAotCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUo R0VOOF9SQ19TRU1BX0lETEVfTVNHX0RJU0FCTEUpKTsKLQotCS8qIFdhRGlzYWJsZVNERVVuaXRD bG9ja0dhdGluZzpiZHcgKi8KLQlJOTE1X1dSSVRFKEdFTjhfVUNHQ1RMNiwgSTkxNV9SRUFEKEdF TjhfVUNHQ1RMNikgfAotCQkgICBHRU44X1NERVVOSVRfQ0xPQ0tfR0FURV9ESVNBQkxFKTsKLQot CS8qIFdhUHJvZ3JhbUwzU3FjUmVnMURlZmF1bHQ6YmR3ICovCi0JZ2VuOF9zZXRfbDNzcWNfY3Jl ZGl0cyhkZXZfcHJpdiwgMzAsIDIpOwotCi0JLyogV2FHdHRDYWNoaW5nT2ZmQnlEZWZhdWx0OmJk dyAqLwotCUk5MTVfV1JJVEUoSFNXX0dUVF9DQUNIRV9FTiwgY2FuX3VzZV9ndHRfY2FjaGUgPyBH VFRfQ0FDSEVfRU5fQUxMIDogMCk7Ci0KIAkvKiBXYUtWTU5vdGlmaWNhdGlvbk9uQ29uZmlnQ2hh bmdlOmJkdyAqLwogCUk5MTVfV1JJVEUoQ0hJQ0tFTl9QQVIyXzEsIEk5MTVfUkVBRChDSElDS0VO X1BBUjJfMSkKIAkJICAgfCBLVk1fQ09ORklHX0NIQU5HRV9OT1RJRklDQVRJT05fU0VMRUNUKTsK QEAgLTcyOCwzNiArNzc4LDYgQEAgc3RhdGljIHZvaWQgYmR3X2Rpc3Bfd29ya2Fyb3VuZHNfYXBw bHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0aWMgdm9pZCBjaHZf ZGlzcF93b3JrYXJvdW5kc19hcHBseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7Ci0JLyogV2FWU1JlZkNvdW50RnVsbGZvcmNlTWlzc0Rpc2FibGU6Y2h2ICovCi0JLyogV2FE U1JlZkNvdW50RnVsbGZvcmNlTWlzc0Rpc2FibGU6Y2h2ICovCi0JSTkxNV9XUklURShHRU43X0ZG X1RIUkVBRF9NT0RFLAotCQkgICBJOTE1X1JFQUQoR0VON19GRl9USFJFQURfTU9ERSkgJgotCQkg ICB+KEdFTjhfRkZfRFNfUkVGX0NOVF9GRk1FIHwgR0VON19GRl9WU19SRUZfQ05UX0ZGTUUpKTsK LQotCS8qIFdhRGlzYWJsZVNlbWFwaG9yZUFuZFN5bmNGbGlwV2FpdDpjaHYgKi8KLQlJOTE1X1dS SVRFKEdFTjZfUkNfU0xFRVBfUFNNSV9DT05UUk9MLAotCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUo R0VOOF9SQ19TRU1BX0lETEVfTVNHX0RJU0FCTEUpKTsKLQotCS8qIFdhRGlzYWJsZUNTVW5pdENs b2NrR2F0aW5nOmNodiAqLwotCUk5MTVfV1JJVEUoR0VONl9VQ0dDVEwxLCBJOTE1X1JFQUQoR0VO Nl9VQ0dDVEwxKSB8Ci0JCSAgIEdFTjZfQ1NVTklUX0NMT0NLX0dBVEVfRElTQUJMRSk7Ci0KLQkv KiBXYURpc2FibGVTREVVbml0Q2xvY2tHYXRpbmc6Y2h2ICovCi0JSTkxNV9XUklURShHRU44X1VD R0NUTDYsIEk5MTVfUkVBRChHRU44X1VDR0NUTDYpIHwKLQkJICAgR0VOOF9TREVVTklUX0NMT0NL X0dBVEVfRElTQUJMRSk7Ci0KLQkvKgotCSAqIFdhUHJvZ3JhbUwzU3FjUmVnMURlZmF1bHQ6Y2h2 Ci0JICogU2VlIGdmeHNwZWNzL1JlbGF0ZWQgRG9jdW1lbnRzL1BlcmZvcm1hbmNlIEd1aWRlLwot CSAqIExTUUMgU2V0dGluZyBSZWNvbW1lbmRhdGlvbnMuCi0JICovCi0JZ2VuOF9zZXRfbDNzcWNf Y3JlZGl0cyhkZXZfcHJpdiwgMzgsIDIpOwotCi0JLyoKLQkgKiBHVFQgY2FjaGUgbWF5IG5vdCB3 b3JrIHdpdGggYmlnIHBhZ2VzLCBzbyBpZiB0aG9zZQotCSAqIGFyZSBldmVyIGVuYWJsZWQgR1RU IGNhY2hlIG1heSBuZWVkIHRvIGJlIGRpc2FibGVkLgotCSAqLwotCUk5MTVfV1JJVEUoSFNXX0dU VF9DQUNIRV9FTiwgR1RUX0NBQ0hFX0VOX0FMTCk7CiB9CiAKIHN0YXRpYyB2b2lkIGdlbjlfZGlz cF93b3JrYXJvdW5kc19hcHBseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBA IC04MTcsMTAgKzgzNyw2IEBAIHN0YXRpYyB2b2lkIGJ4dF9kaXNwX3dvcmthcm91bmRzX2FwcGx5 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlnZW45X2Rpc3Bfd29ya2Fy b3VuZHNfYXBwbHkoZGV2X3ByaXYpOwogCi0JLyogV2FEaXNhYmxlU0RFVW5pdENsb2NrR2F0aW5n OmJ4dCAqLwotCUk5MTVfV1JJVEUoR0VOOF9VQ0dDVEw2LCBJOTE1X1JFQUQoR0VOOF9VQ0dDVEw2 KSB8Ci0JCSAgIEdFTjhfU0RFVU5JVF9DTE9DS19HQVRFX0RJU0FCTEUpOwotCiAJLyoKIAkgKiBG SVhNRToKIAkgKiBHRU44X0hEQ1VOSVRfQ0xPQ0tfR0FURV9ESVNBQkxFX0hEQ1JFUSBhcHBsaWVz IG9uIDN4NiBHVCBTS1VzIG9ubHkuCkBAIC04NDAsMTYgKzg1Niw2IEBAIHN0YXRpYyB2b2lkIGti bF9kaXNwX3dvcmthcm91bmRzX2FwcGx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIHsKIAlnZW45X2Rpc3Bfd29ya2Fyb3VuZHNfYXBwbHkoZGV2X3ByaXYpOwogCi0JLyogV2FE aXNhYmxlU0RFVW5pdENsb2NrR2F0aW5nOmtibCAqLwotCWlmIChJU19LQkxfUkVWSUQoZGV2X3By aXYsIDAsIEtCTF9SRVZJRF9CMCkpCi0JCUk5MTVfV1JJVEUoR0VOOF9VQ0dDVEw2LCBJOTE1X1JF QUQoR0VOOF9VQ0dDVEw2KSB8Ci0JCQkgICBHRU44X1NERVVOSVRfQ0xPQ0tfR0FURV9ESVNBQkxF KTsKLQotCS8qIFdhRGlzYWJsZUdhbUNsb2NrR2F0aW5nOmtibCAqLwotCWlmIChJU19LQkxfUkVW SUQoZGV2X3ByaXYsIDAsIEtCTF9SRVZJRF9CMCkpCi0JCUk5MTVfV1JJVEUoR0VONl9VQ0dDVEwx LCBJOTE1X1JFQUQoR0VONl9VQ0dDVEwxKSB8Ci0JCQkgICBHRU42X0dBTVVOSVRfQ0xPQ0tfR0FU RV9ESVNBQkxFKTsKLQogCS8qIFdhRmJjTnVrZU9uSG9zdE1vZGlmeTprYmwgKi8KIAlJOTE1X1dS SVRFKElMS19EUEZDX0NISUNLRU4sIEk5MTVfUkVBRChJTEtfRFBGQ19DSElDS0VOKSB8CiAJCSAg IElMS19EUEZDX05VS0VfT05fQU5ZX01PRElGSUNBVElPTik7CkBAIC05MDIsOSArOTA4LDYgQEAg c3RhdGljIHZvaWQgY25sX2Rpc3Bfd29ya2Fyb3VuZHNfYXBwbHkoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCXUzMiB2YWw7CiAJY25wX2Rpc3Bfd29ya2Fyb3VuZHNfYXBwbHko ZGV2X3ByaXYpOwogCi0JLyogVGhpcyBpcyBub3QgYW4gV2EuIEVuYWJsZSBmb3IgYmV0dGVyIGlt YWdlIHF1YWxpdHkgKi8KLQlJOTE1X1dSSVRFKF8zRF9DSElDS0VOMywKLQkJICAgX01BU0tFRF9C SVRfRU5BQkxFKF8zRF9DSElDS0VOM19BQV9MSU5FX1FVQUxJVFlfRklYX0VOQUJMRSkpOwogCiAJ LyogV2FFbmFibGVDaGlja2VuRENQUjpjbmwgKi8KIAlJOTE1X1dSSVRFKEdFTjhfQ0hJQ0tFTl9E Q1BSXzEsCkBAIC05MjgsMTAgKzkzMSw2IEBAIHN0YXRpYyB2b2lkIGNubF9kaXNwX3dvcmthcm91 bmRzX2FwcGx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlJOTE1X1dSSVRF KFVOU0xJQ0VfVU5JVF9MRVZFTF9DTEtHQVRFLCB2YWwpOwogfQogCi0vKgotICogRklYTUU6IFNv bWUgb2YgdGhlIFdBcyBhcHBsaWVkIGhlcmUgYXJlIGluY29ycmVjdGx5IGNsYXNzaWZpZWQgYXMg RGlzcGxheQotICogV0FzLiBXZSBzdGlsbCBuZWVkIHRvIGdvIHRocm91Z2ggdGhlbSBhbmQgYXBw bHkgdGhlbSBpbiB0aGUgcmlnaHQgcGxhY2UuCi0gKi8KIHZvaWQgaW50ZWxfZGlzcF93b3JrYXJv dW5kc19hcHBseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPCA4KQotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=