From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anusha Srivatsa Subject: [PATCH 1/7] drm/i915/guc: Make the GuC fw loading helper functions general Date: Fri, 28 Oct 2016 17:05:40 -0700 Message-ID: <1477699546-6624-2-git-send-email-anusha.srivatsa@intel.com> References: <1477699546-6624-1-git-send-email-anusha.srivatsa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 56D0A892FB for ; Sat, 29 Oct 2016 00:06:16 +0000 (UTC) In-Reply-To: <1477699546-6624-1-git-send-email-anusha.srivatsa@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: Alex Dai , Peter Antoine List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUGV0ZXIgQW50b2luZSA8cGV0ZXIuYW50b2luZUBpbnRlbC5jb20+CgpSZW5hbWUgc29t ZSBvZiB0aGUgR3VDIGZ3IGxvYWRpbmcgY29kZSB0byBtYWtlIHRoZW0gbW9yZSBnZW5lcmFsLiBX ZQp3aWxsIHV0aWxpc2UgdGhlbSBmb3IgSHVDIGxvYWRpbmcgYXMgd2VsbC4KICAgICBzL2ludGVs X2d1Y19mdy9pbnRlbF91Y19mdy9nCiAgICAgcy9HVUNfRklSTVdBUkUvVUNfRklSTVdBUkUvZwoK U3RydWN0IGludGVsX2d1Y19mdyBpcyByZW5hbWVkIHRvIGludGVsX3VjX2Z3LiBQcmVmaXggb2Yg dHRzIG1lbWJlcnMsCnN1Y2ggYXMgJ2d1Yycgb3IgJ2d1Y19mdycgZWl0aGVyIGlzIHJlbmFtZWQg dG8gJ3VjJyBvciByZW1vdmVkIGZvcgpzYW1lIHB1cnBvc2UuCgp2MjogcmViYXNlZCBvbiB0b3Ag b2YgbmlnaHRseS4KICAgIHJlYXBwbGllZCB0aGUgc2VhcmNoL3JlcGxhY2UgYXMgdXBzdHJlYW0g Y29kZSBhcyBjaGFuZ2VkLgp2MzogcmViYXNlZCBhZ2FpbiBvbiBkcm0tbmlnaHRseS4KdjQ6IHJl bW92ZWQgRyBmcm9tIG1lc3NhZ2VzIGluIHNoYXJlZCBmdyBmZXRjaCBmdW5jdGlvbi4KdjU6IHJl YmFzZWQuCnY3OiByZWJhc2VkLgp2ODogcmViYXNlZC4Kdjk6IHJlYmFzZWQuCgpTaWduZWQtb2Zm LWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ClNpZ25lZC1v ZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBB bnRvaW5lIDxwZXRlci5hbnRvaW5lQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IERhdmUgR29yZG9u IDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBKZWZmIE1jR2VlIDxqZWZm Lm1jZ2VlQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IENhcmxvcyBTYW50YSA8Y2FybG9zLnNhbnRh QGludGVsLmNvbT4KVGVzdGVkLWJ5OiBDYXJsb3MgU2FudGEgPGNhcmxvcy5zYW50YUBpbnRlbC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgIHwgIDEy ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgICA0ICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgMzkgKysrKy0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyAgICB8IDE1NiArKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9u cygrKSwgMTA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5k ZXggYmU5MmVmZS4uM2U2OGQzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAg LTIzNzYsNyArMjM3Niw3IEBAIHN0YXRpYyBpbnQgaTkxNV9sbGMoc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICpkYXRhKQogc3RhdGljIGludCBpOTE1X2d1Y19sb2FkX3N0YXR1c19pbmZvKHN0cnVj dCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7Ci0Jc3RydWN0IGludGVsX2d1Y19m dyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OworCXN0cnVjdCBpbnRlbF91Y19mdyAq Z3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OwogCXUzMiB0bXAsIGk7CiAKIAlpZiAoIUhB U19HVUNfVUNPREUoZGV2X3ByaXYpKQpAQCAtMjM4NCwxNSArMjM4NCwxNSBAQCBzdGF0aWMgaW50 IGk5MTVfZ3VjX2xvYWRfc3RhdHVzX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRh KQogCiAJc2VxX3ByaW50ZihtLCAiR3VDIGZpcm13YXJlIHN0YXR1czpcbiIpOwogCXNlcV9wcmlu dGYobSwgIlx0cGF0aDogJXNcbiIsCi0JCWd1Y19mdy0+Z3VjX2Z3X3BhdGgpOworCQlndWNfZnct PnVjX2Z3X3BhdGgpOwogCXNlcV9wcmludGYobSwgIlx0ZmV0Y2g6ICVzXG4iLAotCQlpbnRlbF9n dWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSk7CisJCWludGVs X3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSk7CiAJc2VxX3ByaW50Ziht LCAiXHRsb2FkOiAlc1xuIiwKLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3Vj X2Z3X2xvYWRfc3RhdHVzKSk7CisJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+bG9h ZF9zdGF0dXMpKTsKIAlzZXFfcHJpbnRmKG0sICJcdHZlcnNpb24gd2FudGVkOiAlZC4lZFxuIiwK LQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93YW50 ZWQpOworCQlndWNfZnctPm1ham9yX3Zlcl93YW50ZWQsIGd1Y19mdy0+bWlub3JfdmVyX3dhbnRl ZCk7CiAJc2VxX3ByaW50ZihtLCAiXHR2ZXJzaW9uIGZvdW5kOiAlZC4lZFxuIiwKLQkJZ3VjX2Z3 LT5ndWNfZndfbWFqb3JfZm91bmQsIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kKTsKKwkJZ3Vj X2Z3LT5tYWpvcl92ZXJfZm91bmQsIGd1Y19mdy0+bWlub3JfdmVyX2ZvdW5kKTsKIAlzZXFfcHJp bnRmKG0sICJcdGhlYWRlcjogb2Zmc2V0IGlzICVkOyBzaXplID0gJWRcbiIsCiAJCWd1Y19mdy0+ aGVhZGVyX29mZnNldCwgZ3VjX2Z3LT5oZWFkZXJfc2l6ZSk7CiAJc2VxX3ByaW50ZihtLCAiXHR1 Q29kZTogb2Zmc2V0IGlzICVkOyBzaXplID0gJWRcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2d1Y19zdWJtaXNzaW9uLmMKaW5kZXggNzQyMzVlYS4uOTlkYzVkOSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwpAQCAtMTU2OSw3ICsxNTY5LDcgQEAg aW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eDsKIAl1MzIgZGF0YVszXTsKIAotCWlmIChndWMtPmd1Y19mdy5n dWNfZndfbG9hZF9zdGF0dXMgIT0gR1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCisJaWYgKGd1Yy0+Z3Vj X2Z3LmxvYWRfc3RhdHVzICE9IFVDX0ZJUk1XQVJFX1NVQ0NFU1MpCiAJCXJldHVybiAwOwogCiAJ Z2VuOV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzKGRldl9wcml2KTsKQEAgLTE1OTcsNyArMTU5Nyw3 IEBAIGludCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKIAl1MzIgZGF0YVszXTsKIAotCWlmIChndWMtPmd1Y19m dy5ndWNfZndfbG9hZF9zdGF0dXMgIT0gR1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCisJaWYgKGd1Yy0+ Z3VjX2Z3LmxvYWRfc3RhdHVzICE9IFVDX0ZJUk1XQVJFX1NVQ0NFU1MpCiAJCXJldHVybiAwOwog CiAJaWYgKGk5MTUuZ3VjX2xvZ19sZXZlbCA+PSAwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaApp bmRleCA0OWNlZDBiLi4xODZlZmE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaApAQCAtOTEs MjkgKzkxLDI5IEBAIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgewogCXVpbnQ2NF90IHN1Ym1pc3Np b25zW0k5MTVfTlVNX0VOR0lORVNdOwogfTsKIAotZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzIHsK LQlHVUNfRklSTVdBUkVfRkFJTCA9IC0xLAotCUdVQ19GSVJNV0FSRV9OT05FID0gMCwKLQlHVUNf RklSTVdBUkVfUEVORElORywKLQlHVUNfRklSTVdBUkVfU1VDQ0VTUworZW51bSBpbnRlbF91Y19m d19zdGF0dXMgeworCVVDX0ZJUk1XQVJFX0ZBSUwgPSAtMSwKKwlVQ19GSVJNV0FSRV9OT05FID0g MCwKKwlVQ19GSVJNV0FSRV9QRU5ESU5HLAorCVVDX0ZJUk1XQVJFX1NVQ0NFU1MKIH07CiAKIC8q CiAgKiBUaGlzIHN0cnVjdHVyZSBlbmNhcHN1bGF0ZXMgYWxsIHRoZSBkYXRhIG5lZWRlZCBkdXJp bmcgdGhlIHByb2Nlc3MKICAqIG9mIGZldGNoaW5nLCBjYWNoaW5nLCBhbmQgbG9hZGluZyB0aGUg ZmlybXdhcmUgaW1hZ2UgaW50byB0aGUgR3VDLgogICovCi1zdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsK LQlzdHJ1Y3QgZHJtX2RldmljZSAqCQlndWNfZGV2OwotCWNvbnN0IGNoYXIgKgkJCWd1Y19md19w YXRoOwotCXNpemVfdAkJCQlndWNfZndfc2l6ZTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqCWd1Y19md19vYmo7Ci0JZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19mZXRjaF9z dGF0dXM7Ci0JZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19sb2FkX3N0YXR1czsKLQot CXVpbnQxNl90CQkJZ3VjX2Z3X21ham9yX3dhbnRlZDsKLQl1aW50MTZfdAkJCWd1Y19md19taW5v cl93YW50ZWQ7Ci0JdWludDE2X3QJCQlndWNfZndfbWFqb3JfZm91bmQ7Ci0JdWludDE2X3QJCQln dWNfZndfbWlub3JfZm91bmQ7CitzdHJ1Y3QgaW50ZWxfdWNfZncgeworCXN0cnVjdCBkcm1fZGV2 aWNlICp1Y19kZXY7CisJY29uc3QgY2hhciAqdWNfZndfcGF0aDsKKwlzaXplX3QgdWNfZndfc2l6 ZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqdWNfZndfb2JqOworCWVudW0gaW50ZWxf dWNfZndfc3RhdHVzIGZldGNoX3N0YXR1czsKKwllbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBsb2Fk X3N0YXR1czsKKworCXVpbnQxNl90IG1ham9yX3Zlcl93YW50ZWQ7CisJdWludDE2X3QgbWlub3Jf dmVyX3dhbnRlZDsKKwl1aW50MTZfdCBtYWpvcl92ZXJfZm91bmQ7CisJdWludDE2X3QgbWlub3Jf dmVyX2ZvdW5kOwogCiAJdWludDMyX3QgaGVhZGVyX3NpemU7CiAJdWludDMyX3QgaGVhZGVyX29m ZnNldDsKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyB7CiB9OwogCiBz dHJ1Y3QgaW50ZWxfZ3VjIHsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IGd1Y19mdzsKKwlzdHJ1Y3Qg aW50ZWxfdWNfZncgZ3VjX2Z3OwogCXN0cnVjdCBpbnRlbF9ndWNfbG9nIGxvZzsKIAogCS8qIEd1 QzJIb3N0IGludGVycnVwdCByZWxhdGVkIHN0YXRlICovCkBAIC0xNzMsOSArMTczLDEwIEBAIHN0 cnVjdCBpbnRlbF9ndWMgewogZXh0ZXJuIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7CiBleHRlcm4gaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKIGV4dGVybiB2b2lkIGludGVsX2d1Y19maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpOwotZXh0ZXJuIGNvbnN0IGNoYXIgKmludGVsX2d1Y19md19zdGF0dXNfcmVwcihlbnVtIGlu dGVsX2d1Y19md19zdGF0dXMgc3RhdHVzKTsKK2V4dGVybiBjb25zdCBjaGFyICppbnRlbF91Y19m d19zdGF0dXNfcmVwcihlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXMpOwogZXh0ZXJuIGlu dCBpbnRlbF9ndWNfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4dGVybiBpbnQg aW50ZWxfZ3VjX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK3ZvaWQgaW50ZWxfdWNf ZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX3VjX2Z3ICp1Y19m dyk7CiAKIC8qIGk5MTVfZ3VjX3N1Ym1pc3Npb24uYyAqLwogaW50IGk5MTVfZ3VjX3N1Ym1pc3Np b25faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCmluZGV4IDFhYTg1MjMuLjY2ODNhODggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTgxLDE2ICs4MSwxNiBAQCBNT0RV TEVfRklSTVdBUkUoSTkxNV9CWFRfR1VDX1VDT0RFKTsKIE1PRFVMRV9GSVJNV0FSRShJOTE1X0tC TF9HVUNfVUNPREUpOwogCiAvKiBVc2VyLWZyaWVuZGx5IHJlcHJlc2VudGF0aW9uIG9mIGFuIGVu dW0gKi8KLWNvbnN0IGNoYXIgKmludGVsX2d1Y19md19zdGF0dXNfcmVwcihlbnVtIGludGVsX2d1 Y19md19zdGF0dXMgc3RhdHVzKQorY29uc3QgY2hhciAqaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIo ZW51bSBpbnRlbF91Y19md19zdGF0dXMgc3RhdHVzKQogewogCXN3aXRjaCAoc3RhdHVzKSB7Ci0J Y2FzZSBHVUNfRklSTVdBUkVfRkFJTDoKKwljYXNlIFVDX0ZJUk1XQVJFX0ZBSUw6CiAJCXJldHVy biAiRkFJTCI7Ci0JY2FzZSBHVUNfRklSTVdBUkVfTk9ORToKKwljYXNlIFVDX0ZJUk1XQVJFX05P TkU6CiAJCXJldHVybiAiTk9ORSI7Ci0JY2FzZSBHVUNfRklSTVdBUkVfUEVORElORzoKKwljYXNl IFVDX0ZJUk1XQVJFX1BFTkRJTkc6CiAJCXJldHVybiAiUEVORElORyI7Ci0JY2FzZSBHVUNfRklS TVdBUkVfU1VDQ0VTUzoKKwljYXNlIFVDX0ZJUk1XQVJFX1NVQ0NFU1M6CiAJCXJldHVybiAiU1VD Q0VTUyI7CiAJZGVmYXVsdDoKIAkJcmV0dXJuICJVTktOT1dOISI7CkBAIC0yNzgsNyArMjc4LDcg QEAgc3RhdGljIGlubGluZSBib29sIGd1Y191Y29kZV9yZXNwb25zZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyX2RtYShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgICBzdHJ1Y3QgaTkxNV92bWEgKnZt YSkKIHsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNf Znc7CisJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7 CiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7CiAJc3RydWN0IHNnX3RhYmxlICpzZyA9IHZtYS0+cGFn ZXM7CiAJdTMyIHN0YXR1cywgcnNhW1VPU19SU0FfU0NSQVRDSF9NQVhfQ09VTlRdOwpAQCAtMzUw LDE3ICszNTAsMTcgQEAgc3RhdGljIHUzMiBndWNfd29wY21fc2l6ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAgKi8KIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXIoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1 Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19m dyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAlpbnQg cmV0OwogCi0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKGd1Y19mdy0+ Z3VjX2Z3X29iaiwgZmFsc2UpOworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2Rv bWFpbihndWNfZnctPnVjX2Z3X29iaiwgZmFsc2UpOwogCWlmIChyZXQpIHsKIAkJRFJNX0RFQlVH X0RSSVZFUigic2V0LWRvbWFpbiBmYWlsZWQgJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7CiAJ fQogCi0Jdm1hID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKGd1Y19mdy0+Z3VjX2Z3X29iaiwg TlVMTCwgMCwgMCwgMCk7CisJdm1hID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKGd1Y19mdy0+ dWNfZndfb2JqLCBOVUxMLCAwLCAwLCAwKTsKIAlpZiAoSVNfRVJSKHZtYSkpIHsKIAkJRFJNX0RF QlVHX0RSSVZFUigicGluIGZhaWxlZCAlZFxuIiwgKGludClQVFJfRVJSKHZtYSkpOwogCQlyZXR1 cm4gUFRSX0VSUih2bWEpOwpAQCAtNDUxLDE0ICs0NTEsMTQgQEAgc3RhdGljIGludCBndWNfaHdf cmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogaW50IGludGVsX2d1Y19z ZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncg PSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7Ci0JY29uc3QgY2hhciAqZndfcGF0aCA9IGd1Y19mdy0+ Z3VjX2Z3X3BhdGg7CisJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1 Yy5ndWNfZnc7CisJY29uc3QgY2hhciAqZndfcGF0aCA9IGd1Y19mdy0+dWNfZndfcGF0aDsKIAlp bnQgcmV0cmllcywgcmV0LCBlcnI7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgc3RhdHVz OiBwYXRoICVzLCBmZXRjaCAlcywgbG9hZCAlc1xuIiwKIAkJZndfcGF0aCwKLQkJaW50ZWxfZ3Vj X2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyksCi0JCWludGVsX2d1 Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cykpOworCQlpbnRlbF91 Y19md19zdGF0dXNfcmVwcihndWNfZnctPmZldGNoX3N0YXR1cyksCisJCWludGVsX3VjX2Z3X3N0 YXR1c19yZXByKGd1Y19mdy0+bG9hZF9zdGF0dXMpKTsKIAogCS8qIExvYWRpbmcgZm9yYmlkZGVu LCBvciBubyBmaXJtd2FyZSB0byBsb2FkPyAqLwogCWlmICghaTkxNS5lbmFibGVfZ3VjX2xvYWRp bmcpIHsKQEAgLTQ3NiwxMCArNDc2LDEwIEBAIGludCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAl9CiAKIAkvKiBGZXRjaCBmYWlsZWQsIG9yIGFscmVhZHkgZmV0Y2hl ZCBidXQgZmFpbGVkIHRvIGxvYWQ/ICovCi0JaWYgKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1 cyAhPSBHVUNfRklSTVdBUkVfU1VDQ0VTUykgeworCWlmIChndWNfZnctPmZldGNoX3N0YXR1cyAh PSBVQ19GSVJNV0FSRV9TVUNDRVNTKSB7CiAJCWVyciA9IC1FSU87CiAJCWdvdG8gZmFpbDsKLQl9 IGVsc2UgaWYgKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID09IEdVQ19GSVJNV0FSRV9GQUlM KSB7CisJfSBlbHNlIGlmIChndWNfZnctPmxvYWRfc3RhdHVzID09IFVDX0ZJUk1XQVJFX0ZBSUwp IHsKIAkJZXJyID0gLUVOT0VYRUM7CiAJCWdvdG8gZmFpbDsKIAl9CkBAIC00ODcsMTEgKzQ4Nywx MSBAQCBpbnQgaW50ZWxfZ3VjX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZ3VjX2lu dGVycnVwdHNfcmVsZWFzZShkZXZfcHJpdik7CiAJZ2VuOV9yZXNldF9ndWNfaW50ZXJydXB0cyhk ZXZfcHJpdik7CiAKLQlndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9Q RU5ESU5HOworCWd1Y19mdy0+bG9hZF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9QRU5ESU5HOwogCiAJ RFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IHN0YXR1czogZmV0Y2ggJXMsIGxvYWQgJXNcbiIsCi0J CWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMpLAot CQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMpKTsK KwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5mZXRjaF9zdGF0dXMpLAorCQlpbnRl bF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmxvYWRfc3RhdHVzKSk7CiAKIAllcnIgPSBpOTE1 X2d1Y19zdWJtaXNzaW9uX2luaXQoZGV2X3ByaXYpOwogCWlmIChlcnIpCkBAIC01MjMsMTEgKzUy MywxMSBAQCBpbnQgaW50ZWxfZ3VjX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQkg InJldHJ5ICVkIG1vcmUgdGltZShzKVxuIiwgZXJyLCByZXRyaWVzKTsKIAl9CiAKLQlndWNfZnct Pmd1Y19md19sb2FkX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9TVUNDRVNTOworCWd1Y19mdy0+bG9h ZF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9TVUNDRVNTOwogCiAJRFJNX0RFQlVHX0RSSVZFUigiR3VD IGZ3IHN0YXR1czogZmV0Y2ggJXMsIGxvYWQgJXNcbiIsCi0JCWludGVsX2d1Y19md19zdGF0dXNf cmVwcihndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMpLAotCQlpbnRlbF9ndWNfZndfc3RhdHVz X3JlcHIoZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMpKTsKKwkJaW50ZWxfdWNfZndfc3RhdHVz X3JlcHIoZ3VjX2Z3LT5mZXRjaF9zdGF0dXMpLAorCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihn dWNfZnctPmxvYWRfc3RhdHVzKSk7CiAKIAlpZiAoaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24p IHsKIAkJaWYgKGk5MTUuZ3VjX2xvZ19sZXZlbCA+PSAwKQpAQCAtNTQyLDggKzU0Miw4IEBAIGlu dCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlyZXR1cm4gMDsKIAog ZmFpbDoKLQlpZiAoZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPT0gR1VDX0ZJUk1XQVJFX1BF TkRJTkcpCi0JCWd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX0ZBSUw7 CisJaWYgKGd1Y19mdy0+bG9hZF9zdGF0dXMgPT0gVUNfRklSTVdBUkVfUEVORElORykKKwkJZ3Vj X2Z3LT5sb2FkX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX0ZBSUw7CiAKIAlndWNfaW50ZXJydXB0c19y ZWxlYXNlKGRldl9wcml2KTsKIAlpOTE1X2d1Y19zdWJtaXNzaW9uX2Rpc2FibGUoZGV2X3ByaXYp OwpAQCAtNTg4LDcgKzU4OCw3IEBAIGludCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQordm9pZCBp bnRlbF91Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfdWNf ZncgKnVjX2Z3KQogewogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2LT5wZGV2OwogCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CkBAIC01OTcsMTcgKzU5NywxNyBAQCBzdGF0aWMg dm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1 Y19mdyAqZ3VjX2Z3KQogCXNpemVfdCBzaXplOwogCWludCBlcnI7CiAKLQlEUk1fREVCVUdfRFJJ VkVSKCJiZWZvcmUgcmVxdWVzdGluZyBmaXJtd2FyZTogR3VDIGZ3IGZldGNoIHN0YXR1cyAlc1xu IiwKLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1 cykpOworCURSTV9ERUJVR19EUklWRVIoImJlZm9yZSByZXF1ZXN0aW5nIGZpcm13YXJlOiB1QyBm dyBmZXRjaCBzdGF0dXMgJXNcbiIsCisJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKHVjX2Z3LT5m ZXRjaF9zdGF0dXMpKTsKIAotCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCBndWNfZnctPmd1 Y19md19wYXRoLCAmcGRldi0+ZGV2KTsKKwllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgdWNf ZnctPnVjX2Z3X3BhdGgsICZwZGV2LT5kZXYpOwogCWlmIChlcnIpCiAJCWdvdG8gZmFpbDsKIAlp ZiAoIWZ3KQogCQlnb3RvIGZhaWw7CiAKLQlEUk1fREVCVUdfRFJJVkVSKCJmZXRjaCBHdUMgZncg ZnJvbSAlcyBzdWNjZWVkZWQsIGZ3ICVwXG4iLAotCQlndWNfZnctPmd1Y19md19wYXRoLCBmdyk7 CisJRFJNX0RFQlVHX0RSSVZFUigiZmV0Y2ggdUMgZncgZnJvbSAlcyBzdWNjZWVkZWQsIGZ3ICVw XG4iLAorCQl1Y19mdy0+dWNfZndfcGF0aCwgZncpOwogCiAJLyogQ2hlY2sgdGhlIHNpemUgb2Yg dGhlIGJsb2IgYmVmb3JlIGV4YW1pbmluZyBidWZmZXIgY29udGVudHMgKi8KIAlpZiAoZnctPnNp emUgPCBzaXplb2Yoc3RydWN0IGd1Y19jc3NfaGVhZGVyKSkgewpAQCAtNjE4LDM2ICs2MTgsMzYg QEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBpbnRlbF9ndWNfZncgKmd1Y19mdykKIAljc3MgPSAoc3RydWN0IGd1Y19jc3NfaGVhZGVyICop ZnctPmRhdGE7CiAKIAkvKiBGaXJtd2FyZSBiaXRzIGFsd2F5cyBzdGFydCBmcm9tIGhlYWRlciAq LwotCWd1Y19mdy0+aGVhZGVyX29mZnNldCA9IDA7Ci0JZ3VjX2Z3LT5oZWFkZXJfc2l6ZSA9IChj c3MtPmhlYWRlcl9zaXplX2R3IC0gY3NzLT5tb2R1bHVzX3NpemVfZHcgLQorCXVjX2Z3LT5oZWFk ZXJfb2Zmc2V0ID0gMDsKKwl1Y19mdy0+aGVhZGVyX3NpemUgPSAoY3NzLT5oZWFkZXJfc2l6ZV9k dyAtIGNzcy0+bW9kdWx1c19zaXplX2R3IC0KIAkJY3NzLT5rZXlfc2l6ZV9kdyAtIGNzcy0+ZXhw b25lbnRfc2l6ZV9kdykgKiBzaXplb2YodTMyKTsKIAotCWlmIChndWNfZnctPmhlYWRlcl9zaXpl ICE9IHNpemVvZihzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIpKSB7CisJaWYgKHVjX2Z3LT5oZWFkZXJf c2l6ZSAhPSBzaXplb2Yoc3RydWN0IGd1Y19jc3NfaGVhZGVyKSkgewogCQlEUk1fTk9URSgiQ1NT IGhlYWRlciBkZWZpbml0aW9uIG1pc21hdGNoXG4iKTsKIAkJZ290byBmYWlsOwogCX0KIAogCS8q IHRoZW4sIHVDb2RlICovCi0JZ3VjX2Z3LT51Y29kZV9vZmZzZXQgPSBndWNfZnctPmhlYWRlcl9v ZmZzZXQgKyBndWNfZnctPmhlYWRlcl9zaXplOwotCWd1Y19mdy0+dWNvZGVfc2l6ZSA9IChjc3Mt PnNpemVfZHcgLSBjc3MtPmhlYWRlcl9zaXplX2R3KSAqIHNpemVvZih1MzIpOworCXVjX2Z3LT51 Y29kZV9vZmZzZXQgPSB1Y19mdy0+aGVhZGVyX29mZnNldCArIHVjX2Z3LT5oZWFkZXJfc2l6ZTsK Kwl1Y19mdy0+dWNvZGVfc2l6ZSA9IChjc3MtPnNpemVfZHcgLSBjc3MtPmhlYWRlcl9zaXplX2R3 KSAqIHNpemVvZih1MzIpOwogCiAJLyogbm93IFJTQSAqLwogCWlmIChjc3MtPmtleV9zaXplX2R3 ICE9IFVPU19SU0FfU0NSQVRDSF9NQVhfQ09VTlQpIHsKIAkJRFJNX05PVEUoIlJTQSBrZXkgc2l6 ZSBpcyBiYWRcbiIpOwogCQlnb3RvIGZhaWw7CiAJfQotCWd1Y19mdy0+cnNhX29mZnNldCA9IGd1 Y19mdy0+dWNvZGVfb2Zmc2V0ICsgZ3VjX2Z3LT51Y29kZV9zaXplOwotCWd1Y19mdy0+cnNhX3Np emUgPSBjc3MtPmtleV9zaXplX2R3ICogc2l6ZW9mKHUzMik7CisJdWNfZnctPnJzYV9vZmZzZXQg PSB1Y19mdy0+dWNvZGVfb2Zmc2V0ICsgdWNfZnctPnVjb2RlX3NpemU7CisJdWNfZnctPnJzYV9z aXplID0gY3NzLT5rZXlfc2l6ZV9kdyAqIHNpemVvZih1MzIpOwogCiAJLyogQXQgbGVhc3QsIGl0 IHNob3VsZCBoYXZlIGhlYWRlciwgdUNvZGUgYW5kIFJTQS4gU2l6ZSBvZiBhbGwgdGhyZWUuICov Ci0Jc2l6ZSA9IGd1Y19mdy0+aGVhZGVyX3NpemUgKyBndWNfZnctPnVjb2RlX3NpemUgKyBndWNf ZnctPnJzYV9zaXplOworCXNpemUgPSB1Y19mdy0+aGVhZGVyX3NpemUgKyB1Y19mdy0+dWNvZGVf c2l6ZSArIHVjX2Z3LT5yc2Ffc2l6ZTsKIAlpZiAoZnctPnNpemUgPCBzaXplKSB7CiAJCURSTV9O T1RFKCJNaXNzaW5nIGZpcm13YXJlIGNvbXBvbmVudHNcbiIpOwogCQlnb3RvIGZhaWw7CiAJfQog CiAJLyogSGVhZGVyIGFuZCB1Q29kZSB3aWxsIGJlIGxvYWRlZCB0byBXT1BDTS4gU2l6ZSBvZiB0 aGUgdHdvLiAqLwotCXNpemUgPSBndWNfZnctPmhlYWRlcl9zaXplICsgZ3VjX2Z3LT51Y29kZV9z aXplOworCXNpemUgPSB1Y19mdy0+aGVhZGVyX3NpemUgKyB1Y19mdy0+dWNvZGVfc2l6ZTsKIAlp ZiAoc2l6ZSA+IGd1Y193b3BjbV9zaXplKHRvX2k5MTUoZGV2KSkpIHsKIAkJRFJNX05PVEUoIkZp cm13YXJlIGlzIHRvbyBsYXJnZSB0byBmaXQgaW4gV09QQ01cbiIpOwogCQlnb3RvIGZhaWw7CkBA IC02NTksMjEgKzY1OSwyMSBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogCSAqIFRXTyBieXRlcyBl YWNoIChpLmUuIHUxNiksIGFsdGhvdWdoIGFsbCBwb2ludGVycyBhbmQgb2Zmc2V0cyBhcmUgZGVm aW5lZAogCSAqIGluIHRlcm1zIG9mIGJ5dGVzICh1OCkuCiAJICovCi0JZ3VjX2Z3LT5ndWNfZndf bWFqb3JfZm91bmQgPSBjc3MtPmd1Y19zd192ZXJzaW9uID4+IDE2OwotCWd1Y19mdy0+Z3VjX2Z3 X21pbm9yX2ZvdW5kID0gY3NzLT5ndWNfc3dfdmVyc2lvbiAmIDB4RkZGRjsKLQotCWlmIChndWNf ZnctPmd1Y19md19tYWpvcl9mb3VuZCAhPSBndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQgfHwK LQkgICAgZ3VjX2Z3LT5ndWNfZndfbWlub3JfZm91bmQgPCBndWNfZnctPmd1Y19md19taW5vcl93 YW50ZWQpIHsKLQkJRFJNX05PVEUoIkd1QyBmaXJtd2FyZSB2ZXJzaW9uICVkLiVkLCByZXF1aXJl ZCAlZC4lZFxuIiwKLQkJCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kLCBndWNfZnctPmd1Y19m d19taW5vcl9mb3VuZCwKLQkJCWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCwgZ3VjX2Z3LT5n dWNfZndfbWlub3Jfd2FudGVkKTsKKwl1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kID0gY3NzLT5ndWNf c3dfdmVyc2lvbiA+PiAxNjsKKwl1Y19mdy0+bWlub3JfdmVyX2ZvdW5kID0gY3NzLT5ndWNfc3df dmVyc2lvbiAmIDB4RkZGRjsKKworCWlmICh1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kICE9IHVjX2Z3 LT5tYWpvcl92ZXJfd2FudGVkIHx8CisJICAgIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQgPCB1Y19m dy0+bWlub3JfdmVyX3dhbnRlZCkgeworCQlEUk1fTk9URSgidUMgZmlybXdhcmUgdmVyc2lvbiAl ZC4lZCwgcmVxdWlyZWQgJWQuJWRcbiIsCisJCQl1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kLCB1Y19m dy0+bWlub3JfdmVyX2ZvdW5kLAorCQkJdWNfZnctPm1ham9yX3Zlcl93YW50ZWQsIHVjX2Z3LT5t aW5vcl92ZXJfd2FudGVkKTsKIAkJZXJyID0gLUVOT0VYRUM7CiAJCWdvdG8gZmFpbDsKIAl9CiAK IAlEUk1fREVCVUdfRFJJVkVSKCJmaXJtd2FyZSB2ZXJzaW9uICVkLiVkIE9LIChtaW5pbXVtICVk LiVkKVxuIiwKLQkJCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kLCBndWNfZnctPmd1Y19md19t aW5vcl9mb3VuZCwKLQkJCWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCwgZ3VjX2Z3LT5ndWNf ZndfbWlub3Jfd2FudGVkKTsKKwkJCXVjX2Z3LT5tYWpvcl92ZXJfZm91bmQsIHVjX2Z3LT5taW5v cl92ZXJfZm91bmQsCisJCQl1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCwgdWNfZnctPm1pbm9yX3Zl cl93YW50ZWQpOwogCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCW9iaiA9IGk5 MTVfZ2VtX29iamVjdF9jcmVhdGVfZnJvbV9kYXRhKGRldiwgZnctPmRhdGEsIGZ3LT5zaXplKTsK QEAgLTY4MywzMSArNjgzLDMxIEBAIHN0YXRpYyB2b2lkIGd1Y19md19mZXRjaChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncpCiAJCWdvdG8gZmFpbDsK IAl9CiAKLQlndWNfZnctPmd1Y19md19vYmogPSBvYmo7Ci0JZ3VjX2Z3LT5ndWNfZndfc2l6ZSA9 IGZ3LT5zaXplOworCXVjX2Z3LT51Y19md19vYmogPSBvYmo7CisJdWNfZnctPnVjX2Z3X3NpemUg PSBmdy0+c2l6ZTsKIAotCURSTV9ERUJVR19EUklWRVIoIkd1QyBmdyBmZXRjaCBzdGF0dXMgU1VD Q0VTUywgb2JqICVwXG4iLAotCQkJZ3VjX2Z3LT5ndWNfZndfb2JqKTsKKwlEUk1fREVCVUdfRFJJ VkVSKCJ1QyBmdyBmZXRjaCBzdGF0dXMgU1VDQ0VTUywgb2JqICVwXG4iLAorCQkJdWNfZnctPnVj X2Z3X29iaik7CiAKIAlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKLQlndWNfZnctPmd1Y19md19mZXRj aF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfU1VDQ0VTUzsKKwl1Y19mdy0+ZmV0Y2hfc3RhdHVzID0g VUNfRklSTVdBUkVfU1VDQ0VTUzsKIAlyZXR1cm47CiAKIGZhaWw6Ci0JRFJNX1dBUk4oIkZhaWxl ZCB0byBmZXRjaCB2YWxpZCBHdUMgZmlybXdhcmUgZnJvbSAlcyAoZXJyb3IgJWQpXG4iLAotCQkg Z3VjX2Z3LT5ndWNfZndfcGF0aCwgZXJyKTsKLQlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgZmV0 Y2ggc3RhdHVzIEZBSUw7IGVyciAlZCwgZncgJXAsIG9iaiAlcFxuIiwKLQkJZXJyLCBmdywgZ3Vj X2Z3LT5ndWNfZndfb2JqKTsKKwlEUk1fV0FSTigiRmFpbGVkIHRvIGZldGNoIHZhbGlkIHVDIGZp cm13YXJlIGZyb20gJXMgKGVycm9yICVkKVxuIiwKKwkJIHVjX2Z3LT51Y19md19wYXRoLCBlcnIp OworCURSTV9ERUJVR19EUklWRVIoInVDIGZ3IGZldGNoIHN0YXR1cyBGQUlMOyBlcnIgJWQsIGZ3 ICVwLCBvYmogJXBcbiIsCisJCWVyciwgZncsIHVjX2Z3LT51Y19md19vYmopOwogCiAJbXV0ZXhf bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCW9iaiA9IGd1Y19mdy0+Z3VjX2Z3X29iajsKKwlv YmogPSB1Y19mdy0+dWNfZndfb2JqOwogCWlmIChvYmopCiAJCWk5MTVfZ2VtX29iamVjdF9wdXQo b2JqKTsKLQlndWNfZnctPmd1Y19md19vYmogPSBOVUxMOworCXVjX2Z3LT51Y19md19vYmogPSBO VUxMOwogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCiAJcmVsZWFzZV9maXJt d2FyZShmdyk7CQkvKiBPSyBldmVuIGlmIGZ3IGlzIE5VTEwgKi8KLQlndWNfZnctPmd1Y19md19m ZXRjaF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfRkFJTDsKKwl1Y19mdy0+ZmV0Y2hfc3RhdHVzID0g VUNfRklSTVdBUkVfRkFJTDsKIH0KIAogLyoqCkBAIC03MjIsNyArNzIyLDcgQEAgc3RhdGljIHZv aWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNf ZncgKmd1Y19mdykKIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0J c3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OworCXN0 cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OwogCWNvbnN0 IGNoYXIgKmZ3X3BhdGg7CiAKIAlpZiAoIUhBU19HVUMoZGV2KSkgewpAQCAtNzQwLDI0ICs3NDAs MjQgQEAgdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlmd19w YXRoID0gTlVMTDsKIAl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpKSB7CiAJCWZ3X3Bh dGggPSBJOTE1X1NLTF9HVUNfVUNPREU7Ci0JCWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCA9 IFNLTF9GV19NQUpPUjsKLQkJZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkID0gU0tMX0ZXX01J Tk9SOworCQlndWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSBTS0xfRldfTUFKT1I7CisJCWd1Y19m dy0+bWlub3JfdmVyX3dhbnRlZCA9IFNLTF9GV19NSU5PUjsKIAl9IGVsc2UgaWYgKElTX0JST1hU T04oZGV2X3ByaXYpKSB7CiAJCWZ3X3BhdGggPSBJOTE1X0JYVF9HVUNfVUNPREU7Ci0JCWd1Y19m dy0+Z3VjX2Z3X21ham9yX3dhbnRlZCA9IEJYVF9GV19NQUpPUjsKLQkJZ3VjX2Z3LT5ndWNfZndf bWlub3Jfd2FudGVkID0gQlhUX0ZXX01JTk9SOworCQlndWNfZnctPm1ham9yX3Zlcl93YW50ZWQg PSBCWFRfRldfTUFKT1I7CisJCWd1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCA9IEJYVF9GV19NSU5P UjsKIAl9IGVsc2UgaWYgKElTX0tBQllMQUtFKGRldl9wcml2KSkgewogCQlmd19wYXRoID0gSTkx NV9LQkxfR1VDX1VDT0RFOwotCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQgPSBLQkxfRldf TUFKT1I7Ci0JCWd1Y19mdy0+Z3VjX2Z3X21pbm9yX3dhbnRlZCA9IEtCTF9GV19NSU5PUjsKKwkJ Z3VjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gS0JMX0ZXX01BSk9SOworCQlndWNfZnctPm1pbm9y X3Zlcl93YW50ZWQgPSBLQkxfRldfTUlOT1I7CiAJfSBlbHNlIHsKIAkJZndfcGF0aCA9ICIiOwkv KiB1bmtub3duIGRldmljZSAqLwogCX0KIAotCWd1Y19mdy0+Z3VjX2RldiA9IGRldjsKLQlndWNf ZnctPmd1Y19md19wYXRoID0gZndfcGF0aDsKLQlndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMg PSBHVUNfRklSTVdBUkVfTk9ORTsKLQlndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cyA9IEdVQ19G SVJNV0FSRV9OT05FOworCWd1Y19mdy0+dWNfZGV2ID0gZGV2OworCWd1Y19mdy0+dWNfZndfcGF0 aCA9IGZ3X3BhdGg7CisJZ3VjX2Z3LT5mZXRjaF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9OT05FOwor CWd1Y19mdy0+bG9hZF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9OT05FOwogCiAJLyogRWFybHkgKGFu ZCBzaWxlbnQpIHJldHVybiBpZiBHdUMgbG9hZGluZyBpcyBkaXNhYmxlZCAqLwogCWlmICghaTkx NS5lbmFibGVfZ3VjX2xvYWRpbmcpCkBAIC03NjcsOSArNzY3LDkgQEAgdm9pZCBpbnRlbF9ndWNf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmICgqZndfcGF0aCA9PSAnXDAnKQogCQly ZXR1cm47CiAKLQlndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfUEVO RElORzsKKwlndWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX1BFTkRJTkc7CiAJRFJN X0RFQlVHX0RSSVZFUigiR3VDIGZpcm13YXJlIHBlbmRpbmcsIHBhdGggJXNcbiIsIGZ3X3BhdGgp OwotCWd1Y19md19mZXRjaChkZXYsIGd1Y19mdyk7CisJaW50ZWxfdWNfZndfZmV0Y2goZGV2LCBn dWNfZncpOwogCS8qIHN0YXR1cyBtdXN0IG5vdyBiZSBGQUlMIG9yIFNVQ0NFU1MgKi8KIH0KIApA QCAtNzgwLDE3ICs3ODAsMTcgQEAgdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogdm9pZCBpbnRlbF9ndWNfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1 Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7CisJc3RydWN0 IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7CiAKIAltdXRleF9s b2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJZ3VjX2ludGVycnVwdHNfcmVsZWFzZShkZXZfcHJp dik7CiAJaTkxNV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKGRldl9wcml2KTsKIAlpOTE1X2d1Y19z dWJtaXNzaW9uX2ZpbmkoZGV2X3ByaXYpOwogCi0JaWYgKGd1Y19mdy0+Z3VjX2Z3X29iaikKLQkJ aTkxNV9nZW1fb2JqZWN0X3B1dChndWNfZnctPmd1Y19md19vYmopOwotCWd1Y19mdy0+Z3VjX2Z3 X29iaiA9IE5VTEw7CisJaWYgKGd1Y19mdy0+dWNfZndfb2JqKQorCQlpOTE1X2dlbV9vYmplY3Rf cHV0KGd1Y19mdy0+dWNfZndfb2JqKTsKKwlndWNfZnctPnVjX2Z3X29iaiA9IE5VTEw7CiAJbXV0 ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKLQlndWNfZnctPmd1Y19md19mZXRjaF9z dGF0dXMgPSBHVUNfRklSTVdBUkVfTk9ORTsKKwlndWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJ Uk1XQVJFX05PTkU7CiB9Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==