From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Antoine Subject: [PATCH v2 1/6] drm/i915/guc: Make the GuC fw loading helper functions general Date: Fri, 1 Jul 2016 14:15:40 +0100 Message-ID: <1467378945-14274-2-git-send-email-peter.antoine@intel.com> References: <1467378945-14274-1-git-send-email-peter.antoine@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 ESMTP id C5DBD6EA6B for ; Fri, 1 Jul 2016 13:15:55 +0000 (UTC) In-Reply-To: <1467378945-14274-1-git-send-email-peter.antoine@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@intel.com List-Id: intel-gfx@lists.freedesktop.org UmVuYW1lIHNvbWUgb2YgdGhlIEd1QyBmdyBsb2FkaW5nIGNvZGUgdG8gbWFrZSB0aGVtIG1vcmUg Z2VuZXJhbC4gV2UKd2lsbCB1dGlsaXNlIHRoZW0gZm9yIEh1QyBsb2FkaW5nIGFzIHdlbGwuCiAg ICAgcy9pbnRlbF9ndWNfZncvaW50ZWxfdWNfZncvZwogICAgIHMvR1VDX0ZJUk1XQVJFL1VDX0ZJ Uk1XQVJFL2cKClN0cnVjdCBpbnRlbF9ndWNfZncgaXMgcmVuYW1lZCB0byBpbnRlbF91Y19mdy4g UHJlZml4IG9mIHR0cyBtZW1iZXJzLApzdWNoIGFzICdndWMnIG9yICdndWNfZncnIGVpdGhlciBp cyByZW5hbWVkIHRvICd1Yycgb3IgcmVtb3ZlZCBmb3IKc2FtZSBwdXJwb3NlLgoKdjI6IHJlYmFz ZWQgb24gdG9wIG9mIG5pZ2h0bHkuCiAgICByZWFwcGxpZWQgdGhlIHNlYXJjaC9yZXBsYWNlIGFz IHVwc3RyZWFtIGNvZGUgYXMgY2hhbmdlZC4KClNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5k YWlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBBbnRvaW5lIDxwZXRlci5hbnRvaW5l QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAg ICAgfCAgMTIgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMg fCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oICAgICAgICAgICB8ICAz OSArKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jICAgIHwg MTQyICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDk5IGlu c2VydGlvbnMoKyksIDk4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKaW5kZXggZjY2NDg4NC4uMzg4M2RmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKQEAgLTI0ODMsNyArMjQ4Myw3IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNfbG9hZF9zdGF0dXNf aW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGRybV9pbmZv X25vZGUgKm5vZGUgPSBtLT5wcml2YXRlOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IG5vZGUtPm1pbm9yLT5kZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9ndWNf ZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncg Kmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKIAl1MzIgdG1wLCBpOwogCiAJaWYgKCFI QVNfR1VDX1VDT0RFKGRldl9wcml2KSkKQEAgLTI0OTEsMTUgKzI0OTEsMTUgQEAgc3RhdGljIGlu dCBpOTE1X2d1Y19sb2FkX3N0YXR1c19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0 YSkKIAogCXNlcV9wcmludGYobSwgIkd1QyBmaXJtd2FyZSBzdGF0dXM6XG4iKTsKIAlzZXFfcHJp bnRmKG0sICJcdHBhdGg6ICVzXG4iLAotCQlndWNfZnctPmd1Y19md19wYXRoKTsKKwkJZ3VjX2Z3 LT51Y19md19wYXRoKTsKIAlzZXFfcHJpbnRmKG0sICJcdGZldGNoOiAlc1xuIiwKLQkJaW50ZWxf Z3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cykpOworCQlpbnRl bF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmZldGNoX3N0YXR1cykpOwogCXNlcV9wcmludGYo bSwgIlx0bG9hZDogJXNcbiIsCi0JCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1 Y19md19sb2FkX3N0YXR1cykpOworCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmxv YWRfc3RhdHVzKSk7CiAJc2VxX3ByaW50ZihtLCAiXHR2ZXJzaW9uIHdhbnRlZDogJWQuJWRcbiIs Ci0JCWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2Fu dGVkKTsKKwkJZ3VjX2Z3LT5tYWpvcl92ZXJfd2FudGVkLCBndWNfZnctPm1pbm9yX3Zlcl93YW50 ZWQpOwogCXNlcV9wcmludGYobSwgIlx0dmVyc2lvbiBmb3VuZDogJWQuJWRcbiIsCi0JCWd1Y19m dy0+Z3VjX2Z3X21ham9yX2ZvdW5kLCBndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCk7CisJCWd1 Y19mdy0+bWFqb3JfdmVyX2ZvdW5kLCBndWNfZnctPm1pbm9yX3Zlcl9mb3VuZCk7CiAJc2VxX3By aW50ZihtLCAiXHRoZWFkZXI6IG9mZnNldCBpcyAlZDsgc2l6ZSA9ICVkXG4iLAogCQlndWNfZnct PmhlYWRlcl9vZmZzZXQsIGd1Y19mdy0+aGVhZGVyX3NpemUpOwogCXNlcV9wcmludGYobSwgIlx0 dUNvZGU6IG9mZnNldCBpcyAlZDsgc2l6ZSA9ICVkXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ndWNfc3VibWlzc2lvbi5jCmluZGV4IDM1NWI2NDcuLjJiZmE4NmUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTEwMzgsNyArMTAzOCw3IEBA IGludCBpbnRlbF9ndWNfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBp OTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJdTMyIGRhdGFbM107CiAKLQlpZiAoZ3VjLT5ndWNfZncu Z3VjX2Z3X2xvYWRfc3RhdHVzICE9IEdVQ19GSVJNV0FSRV9TVUNDRVNTKQorCWlmIChndWMtPmd1 Y19mdy5sb2FkX3N0YXR1cyAhPSBVQ19GSVJNV0FSRV9TVUNDRVNTKQogCQlyZXR1cm4gMDsKIAog CWN0eCA9IGRldl9wcml2LT5rZXJuZWxfY29udGV4dDsKQEAgLTEwNjQsNyArMTA2NCw3IEBAIGlu dCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eDsKIAl1MzIgZGF0YVszXTsKIAotCWlmIChndWMtPmd1Y19mdy5ndWNf ZndfbG9hZF9zdGF0dXMgIT0gR1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCisJaWYgKGd1Yy0+Z3VjX2Z3 LmxvYWRfc3RhdHVzICE9IFVDX0ZJUk1XQVJFX1NVQ0NFU1MpCiAJCXJldHVybiAwOwogCiAJY3R4 ID0gZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAppbmRl eCAzZTNlNzQzLi4wMmFkY2ZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaApAQCAtOTAsMjkg KzkwLDI5IEBAIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgewogCXVpbnQ2NF90IHN1Ym1pc3Npb25z W0k5MTVfTlVNX0VOR0lORVNdOwogfTsKIAotZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzIHsKLQlH VUNfRklSTVdBUkVfRkFJTCA9IC0xLAotCUdVQ19GSVJNV0FSRV9OT05FID0gMCwKLQlHVUNfRklS TVdBUkVfUEVORElORywKLQlHVUNfRklSTVdBUkVfU1VDQ0VTUworZW51bSBpbnRlbF91Y19md19z dGF0dXMgeworCVVDX0ZJUk1XQVJFX0ZBSUwgPSAtMSwKKwlVQ19GSVJNV0FSRV9OT05FID0gMCwK KwlVQ19GSVJNV0FSRV9QRU5ESU5HLAorCVVDX0ZJUk1XQVJFX1NVQ0NFU1MKIH07CiAKIC8qCiAg KiBUaGlzIHN0cnVjdHVyZSBlbmNhcHN1bGF0ZXMgYWxsIHRoZSBkYXRhIG5lZWRlZCBkdXJpbmcg dGhlIHByb2Nlc3MKICAqIG9mIGZldGNoaW5nLCBjYWNoaW5nLCBhbmQgbG9hZGluZyB0aGUgZmly bXdhcmUgaW1hZ2UgaW50byB0aGUgR3VDLgogICovCi1zdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsKLQlz dHJ1Y3QgZHJtX2RldmljZSAqCQlndWNfZGV2OwotCWNvbnN0IGNoYXIgKgkJCWd1Y19md19wYXRo OwotCXNpemVfdAkJCQlndWNfZndfc2l6ZTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq CWd1Y19md19vYmo7Ci0JZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19mZXRjaF9zdGF0 dXM7Ci0JZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19sb2FkX3N0YXR1czsKLQotCXVp bnQxNl90CQkJZ3VjX2Z3X21ham9yX3dhbnRlZDsKLQl1aW50MTZfdAkJCWd1Y19md19taW5vcl93 YW50ZWQ7Ci0JdWludDE2X3QJCQlndWNfZndfbWFqb3JfZm91bmQ7Ci0JdWludDE2X3QJCQlndWNf ZndfbWlub3JfZm91bmQ7CitzdHJ1Y3QgaW50ZWxfdWNfZncgeworCXN0cnVjdCBkcm1fZGV2aWNl ICp1Y19kZXY7CisJY29uc3QgY2hhciAqdWNfZndfcGF0aDsKKwlzaXplX3QgdWNfZndfc2l6ZTsK KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqdWNfZndfb2JqOworCWVudW0gaW50ZWxfdWNf Zndfc3RhdHVzIGZldGNoX3N0YXR1czsKKwllbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBsb2FkX3N0 YXR1czsKKworCXVpbnQxNl90IG1ham9yX3Zlcl93YW50ZWQ7CisJdWludDE2X3QgbWlub3JfdmVy X3dhbnRlZDsKKwl1aW50MTZfdCBtYWpvcl92ZXJfZm91bmQ7CisJdWludDE2X3QgbWlub3JfdmVy X2ZvdW5kOwogCiAJdWludDMyX3QgaGVhZGVyX3NpemU7CiAJdWludDMyX3QgaGVhZGVyX29mZnNl dDsKQEAgLTEyMyw3ICsxMjMsNyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsKIH07CiAKIHN0cnVj dCBpbnRlbF9ndWMgewotCXN0cnVjdCBpbnRlbF9ndWNfZncgZ3VjX2Z3OworCXN0cnVjdCBpbnRl bF91Y19mdyBndWNfZnc7CiAJdWludDMyX3QgbG9nX2ZsYWdzOwogCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpsb2dfb2JqOwogCkBAIC0xNTIsOSArMTUyLDEwIEBAIHN0cnVjdCBpbnRlbF9n dWMgewogZXh0ZXJuIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 CiBleHRlcm4gaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4 dGVybiB2b2lkIGludGVsX2d1Y19maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJu IGNvbnN0IGNoYXIgKmludGVsX2d1Y19md19zdGF0dXNfcmVwcihlbnVtIGludGVsX2d1Y19md19z dGF0dXMgc3RhdHVzKTsKK2V4dGVybiBjb25zdCBjaGFyICppbnRlbF91Y19md19zdGF0dXNfcmVw cihlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXMpOwogZXh0ZXJuIGludCBpbnRlbF9ndWNf c3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4dGVybiBpbnQgaW50ZWxfZ3VjX3Jl c3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK3ZvaWQgaW50ZWxfdWNfZndfZmV0Y2goc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdyk7CiAKIC8qIGk5 MTVfZ3VjX3N1Ym1pc3Npb24uYyAqLwogaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjX2xvYWRlci5jCmluZGV4IDRmNjMxMWEuLjE0MjRjNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTY2LDE2ICs2NiwxNiBAQCBNT0RVTEVfRklSTVdBUkUo STkxNV9TS0xfR1VDX1VDT0RFKTsKIE1PRFVMRV9GSVJNV0FSRShJOTE1X0JYVF9HVUNfVUNPREUp OwogCiAvKiBVc2VyLWZyaWVuZGx5IHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudW0gKi8KLWNvbnN0 IGNoYXIgKmludGVsX2d1Y19md19zdGF0dXNfcmVwcihlbnVtIGludGVsX2d1Y19md19zdGF0dXMg c3RhdHVzKQorY29uc3QgY2hhciAqaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF91 Y19md19zdGF0dXMgc3RhdHVzKQogewogCXN3aXRjaCAoc3RhdHVzKSB7Ci0JY2FzZSBHVUNfRklS TVdBUkVfRkFJTDoKKwljYXNlIFVDX0ZJUk1XQVJFX0ZBSUw6CiAJCXJldHVybiAiRkFJTCI7Ci0J Y2FzZSBHVUNfRklSTVdBUkVfTk9ORToKKwljYXNlIFVDX0ZJUk1XQVJFX05PTkU6CiAJCXJldHVy biAiTk9ORSI7Ci0JY2FzZSBHVUNfRklSTVdBUkVfUEVORElORzoKKwljYXNlIFVDX0ZJUk1XQVJF X1BFTkRJTkc6CiAJCXJldHVybiAiUEVORElORyI7Ci0JY2FzZSBHVUNfRklSTVdBUkVfU1VDQ0VT UzoKKwljYXNlIFVDX0ZJUk1XQVJFX1NVQ0NFU1M6CiAJCXJldHVybiAiU1VDQ0VTUyI7CiAJZGVm YXVsdDoKIAkJcmV0dXJuICJVTktOT1dOISI7CkBAIC0yMzcsOCArMjM3LDggQEAgc3RhdGljIGlu bGluZSBib29sIGd1Y191Y29kZV9yZXNwb25zZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAgKi8KIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXJfZG1hKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAm ZGV2X3ByaXYtPmd1Yy5ndWNfZnc7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmZ3X29i aiA9IGd1Y19mdy0+Z3VjX2Z3X29iajsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZk ZXZfcHJpdi0+Z3VjLmd1Y19mdzsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZndfb2Jq ID0gZ3VjX2Z3LT51Y19md19vYmo7CiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7CiAJc3RydWN0IHNn X3RhYmxlICpzZyA9IGZ3X29iai0+cGFnZXM7CiAJdTMyIHN0YXR1cywgcnNhW1VPU19SU0FfU0NS QVRDSF9NQVhfQ09VTlRdOwpAQCAtMzEwLDE3ICszMTAsMTcgQEAgc3RhdGljIHUzMiBndWNfd29w Y21fc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAgKi8KIHN0YXRpYyBp bnQgZ3VjX3Vjb2RlX3hmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewot CXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKKwlz dHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKIAlpbnQgcmV0OwogCi0JcmV0ID0g aTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKGd1Y19mdy0+Z3VjX2Z3X29iaiwgZmFs c2UpOworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihndWNfZnctPnVj X2Z3X29iaiwgZmFsc2UpOwogCWlmIChyZXQpIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigic2V0LWRv bWFpbiBmYWlsZWQgJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7CiAJfQogCi0JcmV0ID0gaTkx NV9nZW1fb2JqX2dndHRfcGluKGd1Y19mdy0+Z3VjX2Z3X29iaiwgMCwgMCk7CisJcmV0ID0gaTkx NV9nZW1fb2JqX2dndHRfcGluKGd1Y19mdy0+dWNfZndfb2JqLCAwLCAwKTsKIAlpZiAocmV0KSB7 CiAJCURSTV9ERUJVR19EUklWRVIoInBpbiBmYWlsZWQgJWRcbiIsIHJldCk7CiAJCXJldHVybiBy ZXQ7CkBAIC0zNzIsNyArMzcyLDcgQEAgc3RhdGljIGludCBndWNfdWNvZGVfeGZlcihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogV2Uga2VlcCB0aGUgb2JqZWN0IHBhZ2Vz IGZvciByZXVzZSBkdXJpbmcgcmVzdW1lLiBCdXQgd2UgY2FuIHVucGluIGl0CiAJICogbm93IHRo YXQgRE1BIGhhcyBjb21wbGV0ZWQsIHNvIGl0IGRvZXNuJ3QgY29udGludWUgdG8gdGFrZSB1cCBz cGFjZS4KIAkgKi8KLQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihndWNfZnctPmd1Y19md19v YmopOworCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGd1Y19mdy0+dWNfZndfb2JqKTsKIAog CXJldHVybiByZXQ7CiB9CkBAIC00MTEsMTQgKzQxMSwxNCBAQCBzdGF0aWMgaW50IGk5MTVfcmVz ZXRfZ3VjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIGludCBpbnRlbF9ndWNf c2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1 Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKLQljb25zdCBjaGFyICpmd19wYXRoID0gZ3Vj X2Z3LT5ndWNfZndfcGF0aDsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJp di0+Z3VjLmd1Y19mdzsKKwljb25zdCBjaGFyICpmd19wYXRoID0gZ3VjX2Z3LT51Y19md19wYXRo OwogCWludCByZXRyaWVzLCByZXQsIGVycjsKIAogCURSTV9ERUJVR19EUklWRVIoIkd1QyBmdyBz dGF0dXM6IHBhdGggJXMsIGZldGNoICVzLCBsb2FkICVzXG4iLAogCQlmd19wYXRoLAotCQlpbnRl bF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSwKLQkJaW50 ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7CisJCWlu dGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKKwkJaW50ZWxfdWNf Zndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwogCiAJLyogTG9hZGluZyBmb3Ji aWRkZW4sIG9yIG5vIGZpcm13YXJlIHRvIGxvYWQ/ICovCiAJaWYgKCFpOTE1LmVuYWJsZV9ndWNf bG9hZGluZykgewpAQCAtNDM2LDIxICs0MzYsMjEgQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCX0KIAogCS8qIEZldGNoIGZhaWxlZCwgb3IgYWxyZWFkeSBm ZXRjaGVkIGJ1dCBmYWlsZWQgdG8gbG9hZD8gKi8KLQlpZiAoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hf c3RhdHVzICE9IEdVQ19GSVJNV0FSRV9TVUNDRVNTKSB7CisJaWYgKGd1Y19mdy0+ZmV0Y2hfc3Rh dHVzICE9IFVDX0ZJUk1XQVJFX1NVQ0NFU1MpIHsKIAkJZXJyID0gLUVJTzsKIAkJZ290byBmYWls OwotCX0gZWxzZSBpZiAoZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPT0gR1VDX0ZJUk1XQVJF X0ZBSUwpIHsKKwl9IGVsc2UgaWYgKGd1Y19mdy0+bG9hZF9zdGF0dXMgPT0gVUNfRklSTVdBUkVf RkFJTCkgewogCQllcnIgPSAtRU5PRVhFQzsKIAkJZ290byBmYWlsOwogCX0KIAogCWRpcmVjdF9p bnRlcnJ1cHRzX3RvX2hvc3QoZGV2X3ByaXYpOwogCi0JZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0 dXMgPSBHVUNfRklSTVdBUkVfUEVORElORzsKKwlndWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklS TVdBUkVfUEVORElORzsKIAogCURSTV9ERUJVR19EUklWRVIoIkd1QyBmdyBzdGF0dXM6IGZldGNo ICVzLCBsb2FkICVzXG4iLAotCQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNf ZndfZmV0Y2hfc3RhdHVzKSwKLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3Vj X2Z3X2xvYWRfc3RhdHVzKSk7CisJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0 Y2hfc3RhdHVzKSwKKwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1 cykpOwogCiAJZXJyID0gaTkxNV9ndWNfc3VibWlzc2lvbl9pbml0KGRldl9wcml2KTsKIAlpZiAo ZXJyKQpAQCAtNDg0LDExICs0ODQsMTEgQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCQkJICJyZXRyeSAlZCBtb3JlIHRpbWUocylcbiIsIGVyciwgcmV0cmll cyk7CiAJfQogCi0JZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfU1VD Q0VTUzsKKwlndWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklSTVdBUkVfU1VDQ0VTUzsKIAogCURS TV9ERUJVR19EUklWRVIoIkd1QyBmdyBzdGF0dXM6IGZldGNoICVzLCBsb2FkICVzXG4iLAotCQlp bnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSwKLQkJ aW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7CisJ CWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKKwkJaW50ZWxf dWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwogCiAJaWYgKGk5MTUuZW5h YmxlX2d1Y19zdWJtaXNzaW9uKSB7CiAJCWVyciA9IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxl KGRldl9wcml2KTsKQEAgLTUwMCw4ICs1MDAsOCBAQCBpbnQgaW50ZWxfZ3VjX3NldHVwKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0dXJuIDA7CiAKIGZhaWw6Ci0JaWYgKGd1Y19mdy0+Z3Vj X2Z3X2xvYWRfc3RhdHVzID09IEdVQ19GSVJNV0FSRV9QRU5ESU5HKQotCQlndWNfZnctPmd1Y19m d19sb2FkX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9GQUlMOworCWlmIChndWNfZnctPmxvYWRfc3Rh dHVzID09IFVDX0ZJUk1XQVJFX1BFTkRJTkcpCisJCWd1Y19mdy0+bG9hZF9zdGF0dXMgPSBVQ19G SVJNV0FSRV9GQUlMOwogCiAJZGlyZWN0X2ludGVycnVwdHNfdG9faG9zdChkZXZfcHJpdik7CiAJ aTkxNV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKGRldl9wcml2KTsKQEAgLTU0Niw3ICs1NDYsNyBA QCBmYWlsOgogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIGd1Y19md19mZXRjaChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncpCit2b2lkIGlu dGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF91Y19m dyAqdWNfZncpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAljb25zdCBz dHJ1Y3QgZmlybXdhcmUgKmZ3OwpAQCAtNTU1LDE2ICs1NTUsMTYgQEAgc3RhdGljIHZvaWQgZ3Vj X2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1 Y19mdykKIAlpbnQgZXJyOwogCiAJRFJNX0RFQlVHX0RSSVZFUigiYmVmb3JlIHJlcXVlc3Rpbmcg ZmlybXdhcmU6IEd1QyBmdyBmZXRjaCBzdGF0dXMgJXNcbiIsCi0JCWludGVsX2d1Y19md19zdGF0 dXNfcmVwcihndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMpKTsKKwkJaW50ZWxfdWNfZndfc3Rh dHVzX3JlcHIodWNfZnctPmZldGNoX3N0YXR1cykpOwogCi0JZXJyID0gcmVxdWVzdF9maXJtd2Fy ZSgmZncsIGd1Y19mdy0+Z3VjX2Z3X3BhdGgsICZkZXYtPnBkZXYtPmRldik7CisJZXJyID0gcmVx dWVzdF9maXJtd2FyZSgmZncsIHVjX2Z3LT51Y19md19wYXRoLCAmZGV2LT5wZGV2LT5kZXYpOwog CWlmIChlcnIpCiAJCWdvdG8gZmFpbDsKIAlpZiAoIWZ3KQogCQlnb3RvIGZhaWw7CiAKIAlEUk1f REVCVUdfRFJJVkVSKCJmZXRjaCBHdUMgZncgZnJvbSAlcyBzdWNjZWVkZWQsIGZ3ICVwXG4iLAot CQlndWNfZnctPmd1Y19md19wYXRoLCBmdyk7CisJCXVjX2Z3LT51Y19md19wYXRoLCBmdyk7CiAK IAkvKiBDaGVjayB0aGUgc2l6ZSBvZiB0aGUgYmxvYiBiZWZvcmUgZXhhbWluaW5nIGJ1ZmZlciBj b250ZW50cyAqLwogCWlmIChmdy0+c2l6ZSA8IHNpemVvZihzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIp KSB7CkBAIC01NzUsMzYgKzU3NSwzNiBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogCWNzcyA9IChz dHJ1Y3QgZ3VjX2Nzc19oZWFkZXIgKilmdy0+ZGF0YTsKIAogCS8qIEZpcm13YXJlIGJpdHMgYWx3 YXlzIHN0YXJ0IGZyb20gaGVhZGVyICovCi0JZ3VjX2Z3LT5oZWFkZXJfb2Zmc2V0ID0gMDsKLQln dWNfZnctPmhlYWRlcl9zaXplID0gKGNzcy0+aGVhZGVyX3NpemVfZHcgLSBjc3MtPm1vZHVsdXNf c2l6ZV9kdyAtCisJdWNfZnctPmhlYWRlcl9vZmZzZXQgPSAwOworCXVjX2Z3LT5oZWFkZXJfc2l6 ZSA9IChjc3MtPmhlYWRlcl9zaXplX2R3IC0gY3NzLT5tb2R1bHVzX3NpemVfZHcgLQogCQljc3Mt PmtleV9zaXplX2R3IC0gY3NzLT5leHBvbmVudF9zaXplX2R3KSAqIHNpemVvZih1MzIpOwogCi0J aWYgKGd1Y19mdy0+aGVhZGVyX3NpemUgIT0gc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikp IHsKKwlpZiAodWNfZnctPmhlYWRlcl9zaXplICE9IHNpemVvZihzdHJ1Y3QgZ3VjX2Nzc19oZWFk ZXIpKSB7CiAJCURSTV9FUlJPUigiQ1NTIGhlYWRlciBkZWZpbml0aW9uIG1pc21hdGNoXG4iKTsK IAkJZ290byBmYWlsOwogCX0KIAogCS8qIHRoZW4sIHVDb2RlICovCi0JZ3VjX2Z3LT51Y29kZV9v ZmZzZXQgPSBndWNfZnctPmhlYWRlcl9vZmZzZXQgKyBndWNfZnctPmhlYWRlcl9zaXplOwotCWd1 Y19mdy0+dWNvZGVfc2l6ZSA9IChjc3MtPnNpemVfZHcgLSBjc3MtPmhlYWRlcl9zaXplX2R3KSAq IHNpemVvZih1MzIpOworCXVjX2Z3LT51Y29kZV9vZmZzZXQgPSB1Y19mdy0+aGVhZGVyX29mZnNl dCArIHVjX2Z3LT5oZWFkZXJfc2l6ZTsKKwl1Y19mdy0+dWNvZGVfc2l6ZSA9IChjc3MtPnNpemVf ZHcgLSBjc3MtPmhlYWRlcl9zaXplX2R3KSAqIHNpemVvZih1MzIpOwogCiAJLyogbm93IFJTQSAq LwogCWlmIChjc3MtPmtleV9zaXplX2R3ICE9IFVPU19SU0FfU0NSQVRDSF9NQVhfQ09VTlQpIHsK IAkJRFJNX0VSUk9SKCJSU0Ega2V5IHNpemUgaXMgYmFkXG4iKTsKIAkJZ290byBmYWlsOwogCX0K LQlndWNfZnctPnJzYV9vZmZzZXQgPSBndWNfZnctPnVjb2RlX29mZnNldCArIGd1Y19mdy0+dWNv ZGVfc2l6ZTsKLQlndWNfZnctPnJzYV9zaXplID0gY3NzLT5rZXlfc2l6ZV9kdyAqIHNpemVvZih1 MzIpOworCXVjX2Z3LT5yc2Ffb2Zmc2V0ID0gdWNfZnctPnVjb2RlX29mZnNldCArIHVjX2Z3LT51 Y29kZV9zaXplOworCXVjX2Z3LT5yc2Ffc2l6ZSA9IGNzcy0+a2V5X3NpemVfZHcgKiBzaXplb2Yo dTMyKTsKIAogCS8qIEF0IGxlYXN0LCBpdCBzaG91bGQgaGF2ZSBoZWFkZXIsIHVDb2RlIGFuZCBS U0EuIFNpemUgb2YgYWxsIHRocmVlLiAqLwotCXNpemUgPSBndWNfZnctPmhlYWRlcl9zaXplICsg Z3VjX2Z3LT51Y29kZV9zaXplICsgZ3VjX2Z3LT5yc2Ffc2l6ZTsKKwlzaXplID0gdWNfZnctPmhl YWRlcl9zaXplICsgdWNfZnctPnVjb2RlX3NpemUgKyB1Y19mdy0+cnNhX3NpemU7CiAJaWYgKGZ3 LT5zaXplIDwgc2l6ZSkgewogCQlEUk1fRVJST1IoIk1pc3NpbmcgZmlybXdhcmUgY29tcG9uZW50 c1xuIik7CiAJCWdvdG8gZmFpbDsKIAl9CiAKIAkvKiBIZWFkZXIgYW5kIHVDb2RlIHdpbGwgYmUg bG9hZGVkIHRvIFdPUENNLiBTaXplIG9mIHRoZSB0d28uICovCi0Jc2l6ZSA9IGd1Y19mdy0+aGVh ZGVyX3NpemUgKyBndWNfZnctPnVjb2RlX3NpemU7CisJc2l6ZSA9IHVjX2Z3LT5oZWFkZXJfc2l6 ZSArIHVjX2Z3LT51Y29kZV9zaXplOwogCWlmIChzaXplID4gZ3VjX3dvcGNtX3NpemUoZGV2LT5k ZXZfcHJpdmF0ZSkpIHsKIAkJRFJNX0VSUk9SKCJGaXJtd2FyZSBpcyB0b28gbGFyZ2UgdG8gZml0 IGluIFdPUENNXG4iKTsKIAkJZ290byBmYWlsOwpAQCAtNjE2LDIxICs2MTYsMjEgQEAgc3RhdGlj IHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9n dWNfZncgKmd1Y19mdykKIAkgKiBUV08gYnl0ZXMgZWFjaCAoaS5lLiB1MTYpLCBhbHRob3VnaCBh bGwgcG9pbnRlcnMgYW5kIG9mZnNldHMgYXJlIGRlZmluZWQKIAkgKiBpbiB0ZXJtcyBvZiBieXRl cyAodTgpLgogCSAqLwotCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kID0gY3NzLT5ndWNfc3df dmVyc2lvbiA+PiAxNjsKLQlndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCA9IGNzcy0+Z3VjX3N3 X3ZlcnNpb24gJiAweEZGRkY7CisJdWNfZnctPm1ham9yX3Zlcl9mb3VuZCA9IGNzcy0+Z3VjX3N3 X3ZlcnNpb24gPj4gMTY7CisJdWNfZnctPm1pbm9yX3Zlcl9mb3VuZCA9IGNzcy0+Z3VjX3N3X3Zl cnNpb24gJiAweEZGRkY7CiAKLQlpZiAoZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQgIT0gZ3Vj X2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkIHx8Ci0JICAgIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2Zv dW5kIDwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkKSB7CisJaWYgKHVjX2Z3LT5tYWpvcl92 ZXJfZm91bmQgIT0gdWNfZnctPm1ham9yX3Zlcl93YW50ZWQgfHwKKwkgICAgdWNfZnctPm1pbm9y X3Zlcl9mb3VuZCA8IHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkKSB7CiAJCURSTV9FUlJPUigiR3VD IGZpcm13YXJlIHZlcnNpb24gJWQuJWQsIHJlcXVpcmVkICVkLiVkXG4iLAotCQkJZ3VjX2Z3LT5n dWNfZndfbWFqb3JfZm91bmQsIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kLAotCQkJZ3VjX2Z3 LT5ndWNfZndfbWFqb3Jfd2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpOworCQkJ dWNfZnctPm1ham9yX3Zlcl9mb3VuZCwgdWNfZnctPm1pbm9yX3Zlcl9mb3VuZCwKKwkJCXVjX2Z3 LT5tYWpvcl92ZXJfd2FudGVkLCB1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCk7CiAJCWVyciA9IC1F Tk9FWEVDOwogCQlnb3RvIGZhaWw7CiAJfQogCiAJRFJNX0RFQlVHX0RSSVZFUigiZmlybXdhcmUg dmVyc2lvbiAlZC4lZCBPSyAobWluaW11bSAlZC4lZClcbiIsCi0JCQlndWNfZnctPmd1Y19md19t YWpvcl9mb3VuZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3JfZm91bmQsCi0JCQlndWNfZnctPmd1Y19m d19tYWpvcl93YW50ZWQsIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX3dhbnRlZCk7CisJCQl1Y19mdy0+ bWFqb3JfdmVyX2ZvdW5kLCB1Y19mdy0+bWlub3JfdmVyX2ZvdW5kLAorCQkJdWNfZnctPm1ham9y X3Zlcl93YW50ZWQsIHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkKTsKIAogCW11dGV4X2xvY2soJmRl di0+c3RydWN0X211dGV4KTsKIAlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2Zyb21fZGF0 YShkZXYsIGZ3LT5kYXRhLCBmdy0+c2l6ZSk7CkBAIC02NDAsMzEgKzY0MCwzMSBAQCBzdGF0aWMg dm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1 Y19mdyAqZ3VjX2Z3KQogCQlnb3RvIGZhaWw7CiAJfQogCi0JZ3VjX2Z3LT5ndWNfZndfb2JqID0g b2JqOwotCWd1Y19mdy0+Z3VjX2Z3X3NpemUgPSBmdy0+c2l6ZTsKKwl1Y19mdy0+dWNfZndfb2Jq ID0gb2JqOworCXVjX2Z3LT51Y19md19zaXplID0gZnctPnNpemU7CiAKIAlEUk1fREVCVUdfRFJJ VkVSKCJHdUMgZncgZmV0Y2ggc3RhdHVzIFNVQ0NFU1MsIG9iaiAlcFxuIiwKLQkJCWd1Y19mdy0+ Z3VjX2Z3X29iaik7CisJCQl1Y19mdy0+dWNfZndfb2JqKTsKIAogCXJlbGVhc2VfZmlybXdhcmUo ZncpOwotCWd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9TVUNDRVNT OworCXVjX2Z3LT5mZXRjaF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9TVUNDRVNTOwogCXJldHVybjsK IAogZmFpbDoKIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgZmV0Y2ggc3RhdHVzIEZBSUw7IGVy ciAlZCwgZncgJXAsIG9iaiAlcFxuIiwKLQkJZXJyLCBmdywgZ3VjX2Z3LT5ndWNfZndfb2JqKTsK KwkJZXJyLCBmdywgdWNfZnctPnVjX2Z3X29iaik7CiAJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZmV0 Y2ggR3VDIGZpcm13YXJlIGZyb20gJXMgKGVycm9yICVkKVxuIiwKLQkJICBndWNfZnctPmd1Y19m d19wYXRoLCBlcnIpOworCQkgIHVjX2Z3LT51Y19md19wYXRoLCBlcnIpOwogCiAJbXV0ZXhfbG9j aygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCW9iaiA9IGd1Y19mdy0+Z3VjX2Z3X29iajsKKwlvYmog PSB1Y19mdy0+dWNfZndfb2JqOwogCWlmIChvYmopCiAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJl bmNlKCZvYmotPmJhc2UpOwotCWd1Y19mdy0+Z3VjX2Z3X29iaiA9IE5VTEw7CisJdWNfZnctPnVj X2Z3X29iaiA9IE5VTEw7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKIAly ZWxlYXNlX2Zpcm13YXJlKGZ3KTsJCS8qIE9LIGV2ZW4gaWYgZncgaXMgTlVMTCAqLwotCWd1Y19m dy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9GQUlMOworCXVjX2Z3LT5mZXRj aF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9GQUlMOwogfQogCiAvKioKQEAgLTY3OSw3ICs2NzksNyBA QCBmYWlsOgogdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0J c3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OworCXN0 cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OwogCWNvbnN0 IGNoYXIgKmZ3X3BhdGg7CiAKIAkvKiBBIG5lZ2F0aXZlIHZhbHVlIG1lYW5zICJ1c2UgcGxhdGZv cm0gZGVmYXVsdCIgKi8KQEAgLTY5MiwyMCArNjkyLDIwIEBAIHZvaWQgaW50ZWxfZ3VjX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJZndfcGF0aCA9IE5VTEw7CiAJfSBlbHNlIGlmIChJ U19TS1lMQUtFKGRldikpIHsKIAkJZndfcGF0aCA9IEk5MTVfU0tMX0dVQ19VQ09ERTsKLQkJZ3Vj X2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkID0gNjsKLQkJZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2Fu dGVkID0gMTsKKwkJZ3VjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gNjsKKwkJZ3VjX2Z3LT5taW5v cl92ZXJfd2FudGVkID0gMTsKIAl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgewogCQlmd19w YXRoID0gSTkxNV9CWFRfR1VDX1VDT0RFOwotCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQg PSA4OwotCQlndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQgPSA3OworCQlndWNfZnctPm1ham9y X3Zlcl93YW50ZWQgPSA4OworCQlndWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPSA3OwogCX0gZWxz ZSB7CiAJCWZ3X3BhdGggPSAiIjsJLyogdW5rbm93biBkZXZpY2UgKi8KIAl9CiAKLQlndWNfZnct Pmd1Y19kZXYgPSBkZXY7Ci0JZ3VjX2Z3LT5ndWNfZndfcGF0aCA9IGZ3X3BhdGg7Ci0JZ3VjX2Z3 LT5ndWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX05PTkU7Ci0JZ3VjX2Z3LT5ndWNf ZndfbG9hZF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfTk9ORTsKKwlndWNfZnctPnVjX2RldiA9IGRl djsKKwlndWNfZnctPnVjX2Z3X3BhdGggPSBmd19wYXRoOworCWd1Y19mdy0+ZmV0Y2hfc3RhdHVz ID0gVUNfRklSTVdBUkVfTk9ORTsKKwlndWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklSTVdBUkVf Tk9ORTsKIAogCS8qIEVhcmx5IChhbmQgc2lsZW50KSByZXR1cm4gaWYgR3VDIGxvYWRpbmcgaXMg ZGlzYWJsZWQgKi8KIAlpZiAoIWk5MTUuZW5hYmxlX2d1Y19sb2FkaW5nKQpAQCAtNzE1LDkgKzcx NSw5IEBAIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAo KmZ3X3BhdGggPT0gJ1wwJykKIAkJcmV0dXJuOwogCi0JZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3Rh dHVzID0gR1VDX0ZJUk1XQVJFX1BFTkRJTkc7CisJZ3VjX2Z3LT5mZXRjaF9zdGF0dXMgPSBVQ19G SVJNV0FSRV9QRU5ESU5HOwogCURSTV9ERUJVR19EUklWRVIoIkd1QyBmaXJtd2FyZSBwZW5kaW5n LCBwYXRoICVzXG4iLCBmd19wYXRoKTsKLQlndWNfZndfZmV0Y2goZGV2LCBndWNfZncpOworCWlu dGVsX3VjX2Z3X2ZldGNoKGRldiwgZ3VjX2Z3KTsKIAkvKiBzdGF0dXMgbXVzdCBub3cgYmUgRkFJ TCBvciBTVUNDRVNTICovCiB9CiAKQEAgLTcyOCwxNyArNzI4LDE3IEBAIHZvaWQgaW50ZWxfZ3Vj X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHZvaWQgaW50ZWxfZ3VjX2Zpbmkoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZf cHJpdi0+Z3VjLmd1Y19mdzsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJp di0+Z3VjLmd1Y19mdzsKIAogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlkaXJl Y3RfaW50ZXJydXB0c190b19ob3N0KGRldl9wcml2KTsKIAlpOTE1X2d1Y19zdWJtaXNzaW9uX2Rp c2FibGUoZGV2X3ByaXYpOwogCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShkZXZfcHJpdik7CiAK LQlpZiAoZ3VjX2Z3LT5ndWNfZndfb2JqKQotCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgm Z3VjX2Z3LT5ndWNfZndfb2JqLT5iYXNlKTsKLQlndWNfZnctPmd1Y19md19vYmogPSBOVUxMOwor CWlmIChndWNfZnctPnVjX2Z3X29iaikKKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmd1 Y19mdy0+dWNfZndfb2JqLT5iYXNlKTsKKwlndWNfZnctPnVjX2Z3X29iaiA9IE5VTEw7CiAJbXV0 ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKLQlndWNfZnctPmd1Y19md19mZXRjaF9z dGF0dXMgPSBHVUNfRklSTVdBUkVfTk9ORTsKKwlndWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJ Uk1XQVJFX05PTkU7CiB9Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==