From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: [PATCH 01/28] drm/i915: Add modular FIA Date: Tue, 25 Jun 2019 10:54:10 -0700 Message-ID: <20190625175437.14840-2-lucas.demarchi@intel.com> References: <20190625175437.14840-1-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0D76C6E1BB for ; Tue, 25 Jun 2019 17:54:59 +0000 (UTC) In-Reply-To: <20190625175437.14840-1-lucas.demarchi@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: Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgoKU29tZSBw bGF0Zm9ybXMgbWF5IGhhdmUgTW9kdWxhciBGSUEuIElmIE1vZHVsYXIgRklBIGlzIHVzZWQgaW4g dGhlIFNPQywKdGhlbiBEaXNwbGF5IERyaXZlciB3aWxsIGFjY2VzcyB0aGUgYWRkaXRpb25hbCBp bnN0YW5jZXMgb2YKRklBIGJhc2VkIG9uIHByZS1hc3NpZ25lZCBvZmZzZXQgaW4gR1RUTUFERFIg c3BhY2UuCgpFYWNoIE1vZHVsYXIgRklBIGluc3RhbmNlIGhhcyBpdHMgb3duIElPU0YgU2lkZWJh bmQgUG9ydCBJRAphbmQgaXQgaG91c2VzIG9ubHkgMiBUeXBlLUMgUG9ydC4gSW4gU09DIHRoYXQg aGFzIG1vcmUgdGhhbgp0d28gVHlwZS1DIFBvcnRzLCB0aGVyZSBhcmUgbXVsdGlwbGUgaW5zdGFu Y2VzIG9mIE1vZHVsYXIgRklBLgpHdW5pdCB3aWxsIG5lZWQgdG8gdXNlIGRpZmZlcmVudCBkZXN0 aW5hdGlvbiBJRCB3aGVuIGl0IGFjY2VzcwpkaWZmZXJlbnQgcGFpciBvZiBUeXBlLUMgUG9ydC4K ClRoZSBERkxFWERQU1AgcmVnaXN0ZXIgaGFzIE1vZHVsYXIgRklBIGJpdC4gSWYgTW9kdWxhciBG SUEgaXMKdXNlZCBpbiB0aGUgU09DLCB0aGlzIHJlZ2lzdGVyIGJpdCBleGlzdHMgaW4gYWxsIHRo ZSBpbnN0YW5jZXMgb2YKTW9kdWxhciBGSUEuIElPTSBGVyBpcyByZXF1aXJlZCB0byBwcm9ncmFt IG9ubHkgdGhlIE1GIGJpdCBpbgpmaXJzdCBGSUEgaW5zdGFuY2UgdGhhdCBob3VzZXMgdGhlIFR5 cGUtQyBQb3J0IDAgYW5kIFBvcnQgMSwgZm9yCkRpc3BsYXkgRHJpdmVyIHRvIHJlYWQgZnJvbS4K CkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBB bnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgICAgIHwgIDkgKysrKy0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgfCAyNyArKysrKysrKysrKysr KysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmggfCAg NiArKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jICAgICAgfCAy NSArKysrKysrKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAg ICAgICAgICAgIHwgMTMgKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2 aWNlX2luZm8uaCAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAg ICAgICAgICAgICB8ICAyICsrCiA3IGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDE1 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCmlu ZGV4IDc5MjVhMTc2ZjkwMC4uYjcxNzU2MmZjY2U1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGRpLmMKQEAgLTI5OTcsNiArMjk5Nyw3IEBAIHN0YXRpYyB2b2lkIGljbF9w cm9ncmFtX21nX2RwX21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQpCiAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0OwogCWVudW0g dGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgcG9ydCk7CiAJdTMy IGxuMCwgbG4xLCBsYW5lX2luZm87CisJZW51bSBkaXNwbGF5X2ZpYSBmaWE7CiAKIAlpZiAodGNf cG9ydCA9PSBQT1JUX1RDX05PTkUgfHwgaW50ZWxfZGlnX3BvcnQtPnRjX3R5cGUgPT0gVENfUE9S VF9UQlQpCiAJCXJldHVybjsKQEAgLTMwMDksNyArMzAxMCw4IEBAIHN0YXRpYyB2b2lkIGljbF9w cm9ncmFtX21nX2RwX21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQpCiAJCWxuMCAmPSB+KE1HX0RQX01PREVfQ0ZHX0RQX1gxX01PREUgfCBNR19EUF9NT0RFX0NG R19EUF9YMl9NT0RFKTsKIAkJbG4xICY9IH4oTUdfRFBfTU9ERV9DRkdfRFBfWDFfTU9ERSB8IE1H X0RQX01PREVfQ0ZHX0RQX1gyX01PREUpOwogCi0JCWxhbmVfaW5mbyA9IChJOTE1X1JFQUQoUE9S VF9UWF9ERkxFWERQU1ApICYKKwkJZmlhID0gaW50ZWxfdGNfcG9ydF90b19maWEoZGV2X3ByaXYs IHRjX3BvcnQpOworCQlsYW5lX2luZm8gPSAoSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFNQKGZp YSkpICYKIAkJCSAgICAgRFBfTEFORV9BU1NJR05NRU5UX01BU0sodGNfcG9ydCkpID4+CiAJCQkg ICAgRFBfTEFORV9BU1NJR05NRU5UX1NISUZUKHRjX3BvcnQpOwogCkBAIC0zNTk4LDcgKzM2MDAs OCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfc2V0X2ZpYV9sYW5lX2NvdW50KHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHRjX3Bv cnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIHBvcnQpOwotCXUzMiB2YWwg PSBJOTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQTUxFMSk7CisJZW51bSBkaXNwbGF5X2ZpYSBmaWEg PSBpbnRlbF90Y19wb3J0X3RvX2ZpYShkZXZfcHJpdiwgdGNfcG9ydCk7CisJdTMyIHZhbCA9IEk5 MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBNTEUxKGZpYSkpOwogCWJvb2wgbGFuZV9yZXZlcnNhbCA9 IGRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgJiBERElfQlVGX1BPUlRfUkVWRVJTQUw7CiAKIAl2 YWwgJj0gfkRGTEVYRFBNTEUxX0RQTUxFVENfTUFTSyh0Y19wb3J0KTsKQEAgLTM2MTcsNyArMzYy MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9zZXRfZmlhX2xhbmVfY291bnQoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJZGVmYXVsdDoKIAkJTUlTU0lOR19DQVNFKHBpcGVfY29u ZmlnLT5sYW5lX2NvdW50KTsKIAl9Ci0JSTkxNV9XUklURShQT1JUX1RYX0RGTEVYRFBNTEUxLCB2 YWwpOworCUk5MTVfV1JJVEUoUE9SVF9UWF9ERkxFWERQTUxFMShmaWEpLCB2YWwpOwogfQogCiBz dGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXku YwppbmRleCA4NTkyYTdkNDIyZGUuLjYyMTdiNWJjZWEyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKQEAgLTY1OTAsNiArNjU5MCwzMyBAQCBlbnVt IHRjX3BvcnQgaW50ZWxfcG9ydF90b190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGVudW0gcG9ydCBwb3J0KQogCXJldHVybiBwb3J0IC0gUE9SVF9DOwogfQogCitzdGF0aWMg Ym9vbCBpbnRlbF9oYXNfbW9kdWxhcl9maWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQoreworCWlmICghSU5URUxfSU5GTyhkZXZfcHJpdiktPmRpc3BsYXkuaGFzX21vZHVsYXJf ZmlhKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhE UFNQKEZJQV8xKSkgJiBNT0RVTEFSX0ZJQV9NQVNLOworfQorCitlbnVtIGRpc3BsYXlfZmlhIGlu dGVsX3RjX3BvcnRfdG9fZmlhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJ CQkgICAgICBlbnVtIHRjX3BvcnQgdGNfcG9ydCkKK3sKKwlpZiAoIWludGVsX2hhc19tb2R1bGFy X2ZpYShkZXZfcHJpdikpCisJCXJldHVybiBGSUFfMTsKKworCXN3aXRjaCAodGNfcG9ydCkgewor CWNhc2UgUE9SVF9UQzE6CisJY2FzZSBQT1JUX1RDMjoKKwkJcmV0dXJuIEZJQV8xOworCWNhc2Ug UE9SVF9UQzM6CisJY2FzZSBQT1JUX1RDNDoKKwkJcmV0dXJuIEZJQV8yOworCWRlZmF1bHQ6CisJ CVdBUk5fT04odGNfcG9ydCk7CisJCXJldHVybiBGSUFfMTsKKwl9Cit9CisKIGVudW0gaW50ZWxf ZGlzcGxheV9wb3dlcl9kb21haW4gaW50ZWxfcG9ydF90b19wb3dlcl9kb21haW4oZW51bSBwb3J0 IHBvcnQpCiB7CiAJc3dpdGNoIChwb3J0KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheS5oCmluZGV4IGVlNmI4MTk0YTQ1OS4uMTJkZWQwMWVkNWQzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaApAQCAtMTk2LDYg KzE5NiwxMiBAQCBlbnVtIHRjX3BvcnRfdHlwZSB7CiAJVENfUE9SVF9MRUdBQ1ksCiB9OwogCitl bnVtIGRpc3BsYXlfZmlhIHsKKwlGSUFfMSA9IDAsCisJRklBXzIsCisJRklBXzMsCit9OworCiBl bnVtIGRwaW9fY2hhbm5lbCB7CiAJRFBJT19DSDAsCiAJRFBJT19DSDEKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwppbmRleCA0MzM2ZGY0NmZlNzguLjVlZDZlNDlmZWYzMyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwpAQCAtMjE4LDEzICsyMTgs MTUgQEAgc3RhdGljIGludCBpbnRlbF9kcF9nZXRfZmlhX3N1cHBvcnRlZF9sYW5lX2NvdW50KHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9w b3J0X3RvX3RjKGRldl9wcml2LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKIAlpbnRlbF93YWtlcmVm X3Qgd2FrZXJlZjsKIAl1MzIgbGFuZV9pbmZvOworCWVudW0gZGlzcGxheV9maWEgZmlhOwogCiAJ aWYgKHRjX3BvcnQgPT0gUE9SVF9UQ19OT05FIHx8IGRpZ19wb3J0LT50Y190eXBlICE9IFRDX1BP UlRfVFlQRUMpCiAJCXJldHVybiA0OwogCisJZmlhICA9IGludGVsX3RjX3BvcnRfdG9fZmlhKGRl dl9wcml2LCB0Y19wb3J0KTsKIAlsYW5lX2luZm8gPSAwOwogCXdpdGhfaW50ZWxfZGlzcGxheV9w b3dlcihkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0RJU1BMQVlfQ09SRSwgd2FrZXJlZikKLQkJbGFu ZV9pbmZvID0gKEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBTUCkgJgorCQlsYW5lX2luZm8gPSAo STkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFNQKGZpYSkpICYKIAkJCSAgICAgRFBfTEFORV9BU1NJ R05NRU5UX01BU0sodGNfcG9ydCkpID4+CiAJCQkJRFBfTEFORV9BU1NJR05NRU5UX1NISUZUKHRj X3BvcnQpOwogCkBAIC01MzAwLDEyICs1MzAyLDE0IEBAIHN0YXRpYyBib29sIGljbF90Y19waHlf Y29ubmVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB7CiAJZW51bSB0Y19w b3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBkaWdfcG9ydC0+YmFzZS5w b3J0KTsKIAl1MzIgdmFsOworCWVudW0gZGlzcGxheV9maWEgZmlhOwogCiAJaWYgKGRpZ19wb3J0 LT50Y190eXBlICE9IFRDX1BPUlRfTEVHQUNZICYmCiAJICAgIGRpZ19wb3J0LT50Y190eXBlICE9 IFRDX1BPUlRfVFlQRUMpCiAJCXJldHVybiB0cnVlOwogCi0JdmFsID0gSTkxNV9SRUFEKFBPUlRf VFhfREZMRVhEUFBNUyk7CisJZmlhID0gaW50ZWxfdGNfcG9ydF90b19maWEoZGV2X3ByaXYsIHRj X3BvcnQpOworCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBQTVMoZmlhKSk7CiAJaWYg KCEodmFsICYgRFBfUEhZX01PREVfU1RBVFVTX0NPTVBMRVRFRCh0Y19wb3J0KSkpIHsKIAkJRFJN X0RFQlVHX0tNUygiRFAgUEhZIGZvciBUQyBwb3J0ICVkIG5vdCByZWFkeVxuIiwgdGNfcG9ydCk7 CiAJCVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KTsKQEAgLTUzMTYsMTAgKzUzMjAs MTAgQEAgc3RhdGljIGJvb2wgaWNsX3RjX3BoeV9jb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAkgKiBUaGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgbWFueSB0aW1l cyBpbiBhIHJvdyB3aXRob3V0IGFuIEhQRCBldmVudAogCSAqIGluIGJldHdlZW4sIHNvIHRyeSB0 byBhdm9pZCB0aGUgd3JpdGUgd2hlbiB3ZSBjYW4uCiAJICovCi0JdmFsID0gSTkxNV9SRUFEKFBP UlRfVFhfREZMRVhEUENTU1MpOworCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBDU1NT KGZpYSkpOwogCWlmICghKHZhbCAmIERQX1BIWV9NT0RFX1NUQVRVU19OT1RfU0FGRSh0Y19wb3J0 KSkpIHsKIAkJdmFsIHw9IERQX1BIWV9NT0RFX1NUQVRVU19OT1RfU0FGRSh0Y19wb3J0KTsKLQkJ STkxNV9XUklURShQT1JUX1RYX0RGTEVYRFBDU1NTLCB2YWwpOworCQlJOTE1X1dSSVRFKFBPUlRf VFhfREZMRVhEUENTU1MoZmlhKSwgdmFsKTsKIAl9CiAKIAkvKgpAQCAtNTMyNyw3ICs1MzMxLDcg QEAgc3RhdGljIGJvb2wgaWNsX3RjX3BoeV9jb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAkgKiBiZWNhbWUgZGlzY29ubmVjdGVkLiBOb3QgbmVjZXNzYXJ5IGZvciBs ZWdhY3kgbW9kZS4KIAkgKi8KIAlpZiAoZGlnX3BvcnQtPnRjX3R5cGUgPT0gVENfUE9SVF9UWVBF QyAmJgotCSAgICAhKEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBTUCkgJiBUQ19MSVZFX1NUQVRF X1RDKHRjX3BvcnQpKSkgeworCSAgICAhKEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBTUChmaWEp KSAmIFRDX0xJVkVfU1RBVEVfVEModGNfcG9ydCkpKSB7CiAJCURSTV9ERUJVR19LTVMoIlRDIFBI WSAlZCBzdWRkZW4gZGlzY29ubmVjdC5cbiIsIHRjX3BvcnQpOwogCQlpY2xfdGNfcGh5X2Rpc2Nv bm5lY3QoZGV2X3ByaXYsIGRpZ19wb3J0KTsKIAkJcmV0dXJuIGZhbHNlOwpAQCAtNTM0NCwxMCAr NTM0OCwxMyBAQCB2b2lkIGljbF90Y19waHlfZGlzY29ubmVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCQkgICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9y dCkKIHsKIAllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYs IGRpZ19wb3J0LT5iYXNlLnBvcnQpOworCWVudW0gZGlzcGxheV9maWEgZmlhOwogCiAJaWYgKGRp Z19wb3J0LT50Y190eXBlID09IFRDX1BPUlRfVU5LTk9XTikKIAkJcmV0dXJuOwogCisJZmlhID0g aW50ZWxfdGNfcG9ydF90b19maWEoZGV2X3ByaXYsIHRjX3BvcnQpOworCiAJLyoKIAkgKiBUQlQg ZGlzY29ubmVjdGlvbiBmbG93IGlzIHJlYWQgdGhlIGxpdmUgc3RhdHVzLCB3aGF0IHdhcyBkb25l IGluCiAJICogY2FsbGVyLgpAQCAtNTM1Niw5ICs1MzYzLDkgQEAgdm9pZCBpY2xfdGNfcGh5X2Rp c2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAgICBkaWdfcG9y dC0+dGNfdHlwZSA9PSBUQ19QT1JUX0xFR0FDWSkgewogCQl1MzIgdmFsOwogCi0JCXZhbCA9IEk5 MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBDU1NTKTsKKwkJdmFsID0gSTkxNV9SRUFEKFBPUlRfVFhf REZMRVhEUENTU1MoZmlhKSk7CiAJCXZhbCAmPSB+RFBfUEhZX01PREVfU1RBVFVTX05PVF9TQUZF KHRjX3BvcnQpOwotCQlJOTE1X1dSSVRFKFBPUlRfVFhfREZMRVhEUENTU1MsIHZhbCk7CisJCUk5 MTVfV1JJVEUoUE9SVF9UWF9ERkxFWERQQ1NTUyhmaWEpLCB2YWwpOwogCX0KIAogCURSTV9ERUJV R19LTVMoIlBvcnQgJWMgVEMgdHlwZSAlcyBkaXNjb25uZWN0ZWRcbiIsCkBAIC01MzgzLDYgKzUz OTAsNyBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogewogCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQt PmJhc2UucG9ydDsKIAllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2 X3ByaXYsIHBvcnQpOworCWVudW0gZGlzcGxheV9maWEgZmlhID0gaW50ZWxfdGNfcG9ydF90b19m aWEoZGV2X3ByaXYsIHRjX3BvcnQpOwogCWJvb2wgaXNfbGVnYWN5LCBpc190eXBlYywgaXNfdGJ0 OwogCXUzMiBkcHNwOwogCkBAIC01NDAyLDcgKzU0MTAsOCBAQCBzdGF0aWMgYm9vbCBpY2xfdGNf cG9ydF9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqIFRo ZSBzcGVjIHNheXMgd2Ugc2hvdWxkbid0IGJlIHVzaW5nIHRoZSBJU1IgYml0cyBmb3IgZGV0ZWN0 aW5nCiAJICogYmV0d2VlbiBUQyBhbmQgVEJULiBXZSBzaG91bGQgdXNlIERGTEVYRFBTUC4KIAkg Ki8KLQlkcHNwID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFNQKTsKKworCWRwc3AgPSBJOTE1 X1JFQUQoUE9SVF9UWF9ERkxFWERQU1AoZmlhKSk7CiAJaXNfdHlwZWMgPSBkcHNwICYgVENfTElW RV9TVEFURV9UQyh0Y19wb3J0KTsKIAlpc190YnQgPSBkcHNwICYgVENfTElWRV9TVEFURV9UQlQo dGNfcG9ydCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IDdlNjAwOWNlZmIxOC4uODA0 N2YxYmVkMzE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTIyMDEsOSArMjIwMSwxMyBA QCBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCB7CiAjZGVmaW5lICAgRFc2X09MRE9fRFlOX1BXUl9E T1dOX0VOCSgxIDw8IDI4KQogCiAjZGVmaW5lIEZJQTFfQkFTRQkJCTB4MTYzMDAwCisjZGVmaW5l IEZJQTJfQkFTRQkJCTB4MTZFMDAwCisjZGVmaW5lIEZJQTNfQkFTRQkJCTB4MTZGMDAwCisjZGVm aW5lIF9GSUEoZmlhKQkJCV9QSUNLKChmaWEpLCBGSUExX0JBU0UsIEZJQTJfQkFTRSwgRklBM19C QVNFKQorI2RlZmluZSBfTU1JT19GSUEoZmlhLCBvZmYpCQlfTU1JTyhfRklBKGZpYSkgKyAob2Zm KSkKIAogLyogSUNMIFBIWSBERkxFWCByZWdpc3RlcnMgKi8KLSNkZWZpbmUgUE9SVF9UWF9ERkxF WERQTUxFMQkJX01NSU8oRklBMV9CQVNFICsgMHgwMDhDMCkKKyNkZWZpbmUgUE9SVF9UWF9ERkxF WERQTUxFMShmaWEpCV9NTUlPX0ZJQSgoZmlhKSwgIDB4MDA4QzApCiAjZGVmaW5lICAgREZMRVhE UE1MRTFfRFBNTEVUQ19NQVNLKHRjX3BvcnQpCSgweGYgPDwgKDQgKiAodGNfcG9ydCkpKQogI2Rl ZmluZSAgIERGTEVYRFBNTEUxX0RQTUxFVENfTUwwKHRjX3BvcnQpCSgxIDw8ICg0ICogKHRjX3Bv cnQpKSkKICNkZWZpbmUgICBERkxFWERQTUxFMV9EUE1MRVRDX01MMV8wKHRjX3BvcnQpCSgzIDw8 ICg0ICogKHRjX3BvcnQpKSkKQEAgLTExNDYxLDE3ICsxMTQ2NSwxOCBAQCBlbnVtIHNrbF9wb3dl cl9nYXRlIHsKIAkJCQkJCV9JQ0xfRFNDMV9SQ19CVUZfVEhSRVNIXzFfVURXX1BCLCBcCiAJCQkJ CQlfSUNMX0RTQzFfUkNfQlVGX1RIUkVTSF8xX1VEV19QQykKIAotI2RlZmluZSBQT1JUX1RYX0RG TEVYRFBTUAkJCV9NTUlPKEZJQTFfQkFTRSArIDB4MDA4QTApCisjZGVmaW5lIFBPUlRfVFhfREZM RVhEUFNQKGZpYSkJCQlfTU1JT19GSUEoKGZpYSksIDB4MDA4QTApCisjZGVmaW5lICAgTU9EVUxB Ul9GSUFfTUFTSwkJCSgxIDw8IDQpCiAjZGVmaW5lICAgVENfTElWRV9TVEFURV9UQlQodGNfcG9y dCkJCSgxIDw8ICgodGNfcG9ydCkgKiA4ICsgNikpCiAjZGVmaW5lICAgVENfTElWRV9TVEFURV9U Qyh0Y19wb3J0KQkJKDEgPDwgKCh0Y19wb3J0KSAqIDggKyA1KSkKICNkZWZpbmUgICBEUF9MQU5F X0FTU0lHTk1FTlRfU0hJRlQodGNfcG9ydCkJKCh0Y19wb3J0KSAqIDgpCiAjZGVmaW5lICAgRFBf TEFORV9BU1NJR05NRU5UX01BU0sodGNfcG9ydCkJKDB4ZiA8PCAoKHRjX3BvcnQpICogOCkpCiAj ZGVmaW5lICAgRFBfTEFORV9BU1NJR05NRU5UKHRjX3BvcnQsIHgpCSgoeCkgPDwgKCh0Y19wb3J0 KSAqIDgpKQogCi0jZGVmaW5lIFBPUlRfVFhfREZMRVhEUFBNUwkJCQlfTU1JTyhGSUExX0JBU0Ug KyAweDAwODkwKQorI2RlZmluZSBQT1JUX1RYX0RGTEVYRFBQTVMoZmlhKQkJCV9NTUlPX0ZJQSgo ZmlhKSwgMHgwMDg5MCkKICNkZWZpbmUgICBEUF9QSFlfTU9ERV9TVEFUVVNfQ09NUExFVEVEKHRj X3BvcnQpCQkoMSA8PCAodGNfcG9ydCkpCiAKLSNkZWZpbmUgUE9SVF9UWF9ERkxFWERQQ1NTUwkJ CV9NTUlPKEZJQTFfQkFTRSArIDB4MDA4OTQpCisjZGVmaW5lIFBPUlRfVFhfREZMRVhEUENTU1Mo ZmlhKQkJX01NSU9fRklBKChmaWEpLCAweDAwODk0KQogI2RlZmluZSAgIERQX1BIWV9NT0RFX1NU QVRVU19OT1RfU0FGRSh0Y19wb3J0KQkJKDEgPDwgKHRjX3BvcnQpKQogCiAjZW5kaWYgLyogX0k5 MTVfUkVHX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZp Y2VfaW5mby5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAppbmRl eCBkZGFmYzgxOWJmMzAuLmU5ZGM4NmVkNTE3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZXZpY2VfaW5mby5oCkBAIC0xMzYsNiArMTM2LDcgQEAgZW51bSBpbnRlbF9wcGd0dF90eXBl IHsKIAlmdW5jKGhhc19nbWNoKTsgXAogCWZ1bmMoaGFzX2hvdHBsdWcpOyBcCiAJZnVuYyhoYXNf aXBjKTsgXAorCWZ1bmMoaGFzX21vZHVsYXJfZmlhKTsgXAogCWZ1bmMoaGFzX292ZXJsYXkpOyBc CiAJZnVuYyhoYXNfcHNyKTsgXAogCWZ1bmMob3ZlcmxheV9uZWVkc19waHlzaWNhbCk7IFwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggMWQ1OGY3ZWM1ZDg0Li5lMzBjYjRiZTQ5OTcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xNDc3LDYgKzE0NzcsOCBAQCBib29sIGludGVs X3BvcnRfaXNfY29tYm9waHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVt IHBvcnQgcG9ydCk7CiBib29sIGludGVsX3BvcnRfaXNfdGMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCk7CiBlbnVtIHRjX3BvcnQgaW50ZWxfcG9ydF90 b190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgICBlbnVtIHBv cnQgcG9ydCk7CitlbnVtIGRpc3BsYXlfZmlhIGludGVsX3RjX3BvcnRfdG9fZmlhKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICAgICBlbnVtIHRjX3BvcnQgdGNfcG9y dCk7CiBpbnQgaW50ZWxfZ2V0X3BpcGVfZnJvbV9jcnRjX2lkX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpOwogZW51bSB0cmFuc2NvZGVyIGludGVsX3BpcGVfdG9fY3B1X3RyYW5zY29kZXIoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=