From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Wajdeczko Subject: [P v4 09/11] drm/i915/uc: Unify firmware loading Date: Tue, 10 Oct 2017 14:51:33 +0000 Message-ID: <20171010145135.3488-10-michal.wajdeczko@intel.com> References: <20171010145135.3488-1-michal.wajdeczko@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id B9E6C6E51B for ; Tue, 10 Oct 2017 14:52:07 +0000 (UTC) In-Reply-To: <20171010145135.3488-1-michal.wajdeczko@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: Sujaritha Sundaresan List-Id: intel-gfx@lists.freedesktop.org RmlybXdhcmUgbG9hZGluZyBmb3IgR3VDIGFuZCBIdWMgYXJlIHNpbWlsYXIuIE1vdmUgY29tbW9u IGNvZGUKaW50byBnZW5lcmljIGZ1bmN0aW9uIGZvciBtYXhpbXVtIHJldXNlLgoKU2lnbmVkLW9m Zi1ieTogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+CkNjOiBK b29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+CkNjOiBTYWdh ciBBcnVuIEthbWJsZSA8c2FnYXIuYS5rYW1ibGVAaW50ZWwuY29tPgpDYzogQW51c2hhIFNyaXZh dHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgpDYzogU3VqYXJpdGhhIFN1bmRhcmVzYW4g PHN1amFyaXRoYS5zdW5kYXJlc2FuQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWNfZncuYyB8IDUyICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMgICAgfCA1MyArKystLS0tLS0tLS0tLS0tLS0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjX2Z3LmMgIHwgODEgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWNfZncu aCAgfCAgNCArKwogNCBmaWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCA5NSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZncuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19mdy5jCmluZGV4IDUxYmUzMTguLjQ2Mjlm ZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19mdy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19mdy5jCkBAIC0xOTMsMjQgKzE5MywxMyBA QCBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAvKgogICogTG9hZCB0aGUgR3VDIGZpcm13YXJlIGJsb2IgaW50byB0aGUgTWlu dXRlSUEuCiAgKi8KLXN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQorc3RhdGljIGludCBndWNfdWNvZGVfeGZlcihzdHJ1Y3QgaW50ZWxf dWNfZncgKmd1Y19mdywgc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7Ci0Jc3RydWN0IGludGVsX3Vj X2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5mdzsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsK KwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSBjb250YWluZXJfb2YoZ3VjX2Z3LCBzdHJ1Y3QgaW50 ZWxfZ3VjLCBmdyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3Rv X2k5MTUoZ3VjKTsKIAlpbnQgcmV0OwogCi0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19n dHRfZG9tYWluKGd1Y19mdy0+b2JqLCBmYWxzZSk7Ci0JaWYgKHJldCkgewotCQlEUk1fREVCVUdf RFJJVkVSKCJzZXQtZG9tYWluIGZhaWxlZCAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9 Ci0KLQl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4oZ3VjX2Z3LT5vYmosIE5VTEwsIDAs IDAsCi0JCQkJICAgICAgIFBJTl9PRkZTRVRfQklBUyB8IEdVQ19XT1BDTV9UT1ApOwotCWlmIChJ U19FUlIodm1hKSkgewotCQlEUk1fREVCVUdfRFJJVkVSKCJwaW4gZmFpbGVkICVkXG4iLCAoaW50 KVBUUl9FUlIodm1hKSk7Ci0JCXJldHVybiBQVFJfRVJSKHZtYSk7Ci0JfQorCUdFTV9CVUdfT04o Z3VjX2Z3LT50eXBlICE9IElOVEVMX1VDX0ZXX1RZUEVfR1VDKTsKIAogCWludGVsX3VuY29yZV9m b3JjZXdha2VfZ2V0KGRldl9wcml2LCBGT1JDRVdBS0VfQUxMKTsKIApAQCAtMjQ1LDEyICsyMzQs NiBAQCBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIAogCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGRldl9wcml2LCBGT1JDRVdB S0VfQUxMKTsKIAotCS8qCi0JICogV2Uga2VlcCB0aGUgb2JqZWN0IHBhZ2VzIGZvciByZXVzZSBk dXJpbmcgcmVzdW1lLiBCdXQgd2UgY2FuIHVucGluIGl0Ci0JICogbm93IHRoYXQgRE1BIGhhcyBj b21wbGV0ZWQsIHNvIGl0IGRvZXNuJ3QgY29udGludWUgdG8gdGFrZSB1cCBzcGFjZS4KLQkgKi8K LQlpOTE1X3ZtYV91bnBpbih2bWEpOwotCiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMjY5LDMwICsy NTIsNSBAQCBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKICAqLwogaW50IGludGVsX2d1Y19md191cGxvYWQoc3RydWN0IGludGVsX2d1 YyAqZ3VjKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19p OTE1KGd1Yyk7Ci0JY29uc3QgY2hhciAqZndfcGF0aCA9IGd1Yy0+ZncucGF0aDsKLQlpbnQgcmV0 OwotCi0JRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IHN0YXR1czogcGF0aCAlcywgZmV0Y2ggJXMs IGxvYWQgJXNcbiIsCi0JCWZ3X3BhdGgsCi0JCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Yy0+ ZncuZmV0Y2hfc3RhdHVzKSwKLQkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjLT5mdy5sb2Fk X3N0YXR1cykpOwotCi0JaWYgKGd1Yy0+ZncuZmV0Y2hfc3RhdHVzICE9IElOVEVMX1VDX0ZJUk1X QVJFX1NVQ0NFU1MpCi0JCXJldHVybiAtRUlPOwotCi0JZ3VjLT5mdy5sb2FkX3N0YXR1cyA9IElO VEVMX1VDX0ZJUk1XQVJFX1BFTkRJTkc7Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgc3Rh dHVzOiBmZXRjaCAlcywgbG9hZCAlc1xuIiwKLQkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3Vj LT5mdy5mZXRjaF9zdGF0dXMpLAotCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihndWMtPmZ3Lmxv YWRfc3RhdHVzKSk7Ci0KLQlyZXQgPSBndWNfdWNvZGVfeGZlcihkZXZfcHJpdik7Ci0KLQlpZiAo cmV0KQotCQlyZXR1cm4gLUVBR0FJTjsKLQotCWd1Yy0+ZncubG9hZF9zdGF0dXMgPSBJTlRFTF9V Q19GSVJNV0FSRV9TVUNDRVNTOwotCi0JcmV0dXJuIDA7CisJcmV0dXJuIGludGVsX3VjX2Z3X3Vw bG9hZCgmZ3VjLT5mdywgZ3VjX3Vjb2RlX3hmZXIpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWMu YwppbmRleCA0YjRjZjU2Li44YmUzYmZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9odWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWMuYwpAQCAt ODUsMjYgKzg1LDE1IEBAIE1PRFVMRV9GSVJNV0FSRShJOTE1X0tCTF9IVUNfVUNPREUpOwogICoK ICAqIFJldHVybjogMCBvbiBzdWNjZXNzLCBub24temVybyBvbiBmYWlsdXJlCiAgKi8KLXN0YXRp YyBpbnQgaHVjX3Vjb2RlX3hmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQor c3RhdGljIGludCBodWNfdWNvZGVfeGZlcihzdHJ1Y3QgaW50ZWxfdWNfZncgKmh1Y19mdywgc3Ry dWN0IGk5MTVfdm1hICp2bWEpCiB7Ci0Jc3RydWN0IGludGVsX3VjX2Z3ICpodWNfZncgPSAmZGV2 X3ByaXYtPmh1Yy5mdzsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwlzdHJ1Y3QgaW50ZWxfaHVj ICpodWMgPSBjb250YWluZXJfb2YoaHVjX2Z3LCBzdHJ1Y3QgaW50ZWxfaHVjLCBmdyk7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gaHVjX3RvX2k5MTUoaHVjKTsKIAl1bnNp Z25lZCBsb25nIG9mZnNldCA9IDA7CiAJdTMyIHNpemU7CiAJaW50IHJldDsKIAotCXJldCA9IGk5 MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihodWNfZnctPm9iaiwgZmFsc2UpOwotCWlm IChyZXQpIHsKLQkJRFJNX0RFQlVHX0RSSVZFUigic2V0LWRvbWFpbiBmYWlsZWQgJWRcbiIsIHJl dCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0Jdm1hID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGlu KGh1Y19mdy0+b2JqLCBOVUxMLCAwLCAwLAotCQkJCVBJTl9PRkZTRVRfQklBUyB8IEdVQ19XT1BD TV9UT1ApOwotCWlmIChJU19FUlIodm1hKSkgewotCQlEUk1fREVCVUdfRFJJVkVSKCJwaW4gZmFp bGVkICVkXG4iLCAoaW50KVBUUl9FUlIodm1hKSk7Ci0JCXJldHVybiBQVFJfRVJSKHZtYSk7Ci0J fQorCUdFTV9CVUdfT04oaHVjX2Z3LT50eXBlICE9IElOVEVMX1VDX0ZXX1RZUEVfSFVDKTsKIAog CWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KGRldl9wcml2LCBGT1JDRVdBS0VfQUxMKTsKIApA QCAtMTM1LDEyICsxMjQsNiBAQCBzdGF0aWMgaW50IGh1Y191Y29kZV94ZmVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGRl dl9wcml2LCBGT1JDRVdBS0VfQUxMKTsKIAotCS8qCi0JICogV2Uga2VlcCB0aGUgb2JqZWN0IHBh Z2VzIGZvciByZXVzZSBkdXJpbmcgcmVzdW1lLiBCdXQgd2UgY2FuIHVucGluIGl0Ci0JICogbm93 IHRoYXQgRE1BIGhhcyBjb21wbGV0ZWQsIHNvIGl0IGRvZXNuJ3QgY29udGludWUgdG8gdGFrZSB1 cCBzcGFjZS4KLQkgKi8KLQlpOTE1X3ZtYV91bnBpbih2bWEpOwotCiAJcmV0dXJuIHJldDsKIH0K IApAQCAtMTk0LDMzICsxNzcsNyBAQCB2b2lkIGludGVsX2h1Y19zZWxlY3RfZncoc3RydWN0IGlu dGVsX2h1YyAqaHVjKQogICovCiB2b2lkIGludGVsX2h1Y19pbml0X2h3KHN0cnVjdCBpbnRlbF9o dWMgKmh1YykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBodWNfdG9f aTkxNShodWMpOwotCWludCBlcnI7Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyBzdGF0dXM6 IGZldGNoICVzLCBsb2FkICVzXG4iLAotCQlodWMtPmZ3LnBhdGgsCi0JCWludGVsX3VjX2Z3X3N0 YXR1c19yZXByKGh1Yy0+ZncuZmV0Y2hfc3RhdHVzKSwKLQkJaW50ZWxfdWNfZndfc3RhdHVzX3Jl cHIoaHVjLT5mdy5sb2FkX3N0YXR1cykpOwotCi0JaWYgKGh1Yy0+ZncuZmV0Y2hfc3RhdHVzICE9 IElOVEVMX1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCi0JCXJldHVybjsKLQotCWh1Yy0+ZncubG9hZF9z dGF0dXMgPSBJTlRFTF9VQ19GSVJNV0FSRV9QRU5ESU5HOwotCi0JZXJyID0gaHVjX3Vjb2RlX3hm ZXIoZGV2X3ByaXYpOwotCi0JaHVjLT5mdy5sb2FkX3N0YXR1cyA9IGVyciA/Ci0JCUlOVEVMX1VD X0ZJUk1XQVJFX0ZBSUwgOiBJTlRFTF9VQ19GSVJNV0FSRV9TVUNDRVNTOwotCi0JRFJNX0RFQlVH X0RSSVZFUigiJXMgZncgc3RhdHVzOiBmZXRjaCAlcywgbG9hZCAlc1xuIiwKLQkJaHVjLT5mdy5w YXRoLAotCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihodWMtPmZ3LmZldGNoX3N0YXR1cyksCi0J CWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGh1Yy0+ZncubG9hZF9zdGF0dXMpKTsKLQotCWlmICho dWMtPmZ3LmxvYWRfc3RhdHVzICE9IElOVEVMX1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCi0JCURSTV9F UlJPUigiRmFpbGVkIHRvIGNvbXBsZXRlIEh1QyB1Q29kZSBsb2FkIHdpdGggcmV0ICVkXG4iLCBl cnIpOwotCi0JcmV0dXJuOworCWludGVsX3VjX2Z3X3VwbG9hZCgmaHVjLT5mdywgaHVjX3Vjb2Rl X3hmZXIpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3VjX2Z3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Y19mdy5jCmluZGV4IGI1MmQ2 YjYuLjE2ZGM5NzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjX2Z3 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWNfZncuYwpAQCAtMTgyLDYgKzE4 Miw4NyBAQCB2b2lkIGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIH0KIAogLyoqCisgKiBpbnRlbF91Y19md191cGxvYWQgLSBsb2FkIHVDIGZpcm13 YXJlIHVzaW5nIGN1c3RvbSBsb2FkZXIKKyAqCisgKiBAdWNfZnc6IHVDIGZpcm13YXJlCisgKiBA bG9hZGVyOiBjdXN0b20gdUMgZmlybXdhcmUgbG9hZGVyIGZ1bmN0aW9uCisgKgorICogTG9hZHMg dUMgZmlybXdhcmUgdXNpbmcgY3VzdG9tIGxvYWRlciBhbmQgdXBkYXRlcyBpbnRlcm5hbCBmbGFn cy4KKyAqLworaW50IGludGVsX3VjX2Z3X3VwbG9hZChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3 LAorCQkgICAgICAgaW50ICgqbG9hZGVyKShzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LAorCQkJ CSAgICAgc3RydWN0IGk5MTVfdm1hICp2bWEpKQoreworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwor CWludCBlcnI7CisKKwlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyBsb2FkICVzXG4iLAorCQkJIGlu dGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksIHVjX2Z3LT5wYXRoKTsKKworCWlmICh1 Y19mdy0+ZmV0Y2hfc3RhdHVzICE9IElOVEVMX1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCisJCXJldHVy biAtRUlPOworCisJdWNfZnctPmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfUEVORElO RzsKKwlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyBsb2FkICVzXG4iLAorCQkJIGludGVsX3VjX2Z3 X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksCisJCQkgaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIodWNf ZnctPmxvYWRfc3RhdHVzKSk7CisKKwkvKiBQaW4gb2JqZWN0IHdpdGggZmlybXdhcmUgKi8KKwll cnIgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4odWNfZnctPm9iaiwgZmFsc2Up OworCWlmIChlcnIpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigiJXMgZncgc2V0LWRvbWFpbiBmYWls ZWQgJWRcbiIsCisJCQkJIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksIGVycik7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4odWNf ZnctPm9iaiwgTlVMTCwgMCwgMCwKKwkJCQkgICAgICAgUElOX09GRlNFVF9CSUFTIHwgR1VDX1dP UENNX1RPUCk7CisJaWYgKElTX0VSUih2bWEpKSB7CisJCWVyciA9IFBUUl9FUlIodm1hKTsKKwkJ RFJNX0RFQlVHX0RSSVZFUigiJXMgZncgcGluIGZhaWxlZCAlZFxuIiwKKwkJCQkgaW50ZWxfdWNf ZndfdHlwZV9yZXByKHVjX2Z3LT50eXBlKSwKKwkJCQkgZXJyKTsKKwkJZ290byBmYWlsOworCX0K KworCS8qIENhbGwgY3VzdG9tIGxvYWRlciAqLworCWVyciA9IGxvYWRlcih1Y19mdywgdm1hKTsK Kwl1Y19mdy0+bG9hZF9zdGF0dXMgPSBlcnIgPworCQkJICAgICBJTlRFTF9VQ19GSVJNV0FSRV9G QUlMIDoKKwkJCSAgICAgSU5URUxfVUNfRklSTVdBUkVfU1VDQ0VTUzsKKwlEUk1fREVCVUdfRFJJ VkVSKCIlcyBmdyBsb2FkICVzXG4iLAorCQkJIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+ dHlwZSksCisJCQkgaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIodWNfZnctPmxvYWRfc3RhdHVzKSk7 CisKKwkvKgorCSAqIFdlIGtlZXAgdGhlIG9iamVjdCBwYWdlcyBmb3IgcmV1c2UgZHVyaW5nIHJl c3VtZS4gQnV0IHdlIGNhbiB1bnBpbiBpdAorCSAqIG5vdyB0aGF0IERNQSBoYXMgY29tcGxldGVk LCBzbyBpdCBkb2Vzbid0IGNvbnRpbnVlIHRvIHRha2UgdXAgc3BhY2UuCisJICovCisJaTkxNV92 bWFfdW5waW4odm1hKTsKKworCWlmIChlcnIpCisJCWdvdG8gZmFpbDsKKworCURSTV9JTkZPKCIl czogTG9hZGVkIGZpcm13YXJlICVzICh2ZXJzaW9uICV1LiV1KVxuIiwKKwkJIGludGVsX3VjX2Z3 X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksCisJCSB1Y19mdy0+cGF0aCwKKwkJIHVjX2Z3LT5tYWpv cl92ZXJfZm91bmQsIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQpOworCisJcmV0dXJuIDA7CisKK2Zh aWw6CisJdWNfZnctPmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfRkFJTDsKKwlEUk1f REVCVUdfRFJJVkVSKCIlcyBmdyBsb2FkICVzXG4iLAorCQkJIGludGVsX3VjX2Z3X3R5cGVfcmVw cih1Y19mdy0+dHlwZSksCisJCQkgaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIodWNfZnctPmxvYWRf c3RhdHVzKSk7CisKKwlEUk1fRVJST1IoIiVzOiBGYWlsZWQgdG8gbG9hZCBmaXJtd2FyZSAlcyAo ZXJyb3IgJWQpXG4iLAorCQkgIGludGVsX3VjX2Z3X3R5cGVfcmVwcih1Y19mdy0+dHlwZSksIHVj X2Z3LT5wYXRoLCBlcnIpOworCisJcmV0dXJuIGVycjsKK30KKworLyoqCiAgKiBpbnRlbF91Y19m d19maW5pIC0gY2xlYW51cCB1QyBmaXJtd2FyZQogICoKICAqIEB1Y19mdzogdUMgZmlybXdhcmUK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjX2Z3LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF91Y19mdy5oCmluZGV4IDVjMDE4NDkuLmMzZjFhZjkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjX2Z3LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdWNfZncuaApAQCAtMjYsNiArMjYsNyBAQAogI2RlZmluZSBfSU5U RUxfVUNfRldfSF8KIAogc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CitzdHJ1Y3QgaTkxNV92bWE7 CiAKIGVudW0gaW50ZWxfdWNfZndfc3RhdHVzIHsKIAlJTlRFTF9VQ19GSVJNV0FSRV9GQUlMID0g LTEsCkBAIC0xMDcsNiArMTA4LDkgQEAgdm9pZCBpbnRlbF91Y19md19pbml0KHN0cnVjdCBpbnRl bF91Y19mdyAqdWNfZncsIGVudW0gaW50ZWxfdWNfZndfdHlwZSB0eXBlKQogCiB2b2lkIGludGVs X3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJICAgICAg IHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpOworaW50IGludGVsX3VjX2Z3X3VwbG9hZChzdHJ1 Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LAorCQkgICAgICAgaW50ICgqbG9hZGVyKShzdHJ1Y3QgaW50 ZWxfdWNfZncgKnVjX2Z3LAorCQkJCSAgICAgc3RydWN0IGk5MTVfdm1hICp2bWEpKTsKIHZvaWQg aW50ZWxfdWNfZndfZmluaShzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KTsKIAogI2VuZGlmCi0t IAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==