From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: [REBASED PATCH RESEND 2/5 v2] drm/i915: consistent struct device naming Date: Mon, 22 Aug 2016 13:32:42 +0300 Message-ID: <20160822103245.24069-3-david.weinehall@linux.intel.com> References: <20160822103245.24069-1-david.weinehall@linux.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 980F46E420 for ; Mon, 22 Aug 2016 10:42:12 +0000 (UTC) In-Reply-To: <20160822103245.24069-1-david.weinehall@linux.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 List-Id: intel-gfx@lists.freedesktop.org V2UgY3VycmVudGx5IGhhdmUgYSBtaXggb2Ygc3RydWN0IGRldmljZSAqZGV2aWNlLCBzdHJ1Y3Qg ZGV2aWNlICprZGV2LAphbmQgc3RydWN0IGRldmljZSAqZGV2ICh0aGUgbGF0dGVyIGZvcmNpbmcg dXMgdG8gcmVmZXIgdG8Kc3RydWN0IGRybV9kZXZpY2UgYXMgc29tZXRoaW5nIGVsc2UgdGhhbiB0 aGUgbm9ybWFsIGRldikuCgpUbyBzaW1wbGlmeSB0aGluZ3MsIGFsd2F5cyB1c2Uga2RldiB3aGVu IHJlZmVycmluZyB0byBzdHJ1Y3QgZGV2aWNlLgoKdjI6IFJlcGxhY2UgdGhlIGRldl90b19kcm1f bWlub3IoKSBtYWNybyB3aXRoIHRoZSBpbmxpbmUgZnVuY3Rpb24KICAgIGtkZXZfdG9fZHJtX21p bm9yKCkuCgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBXZWluZWhhbGwgPGRhdmlkLndlaW5laGFsbEBs aW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAg ICAgIHwgOTYgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMgICAgIHwgIDYgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5 c2ZzLmMgICAgICAgfCA2NSArKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdWRpby5jICAgICAgfCA0NiArKysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgfCAzNyArKysrKysrLS0tLS0tCiA2IGZpbGVz IGNoYW5nZWQsIDEyOCBpbnNlcnRpb25zKCspLCAxMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKaW5kZXggMTNhZTM0MGVmMWYzLi41M2Y5NTM1ZmI4MWUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYwpAQCAtNzcsNyArNzcsNyBAQCBfX2k5MTVfcHJpbnRrKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3QgY2hhciAqbGV2ZWwsCiAJICAgICAgY29uc3Qg Y2hhciAqZm10LCAuLi4pCiB7CiAJc3RhdGljIGJvb2wgc2hvd25fYnVnX29uY2U7Ci0Jc3RydWN0 IGRldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRybS5kZXY7CisJc3RydWN0IGRldmljZSAqa2RldiA9 IGRldl9wcml2LT5kcm0uZGV2OwogCWJvb2wgaXNfZXJyb3IgPSBsZXZlbFsxXSA8PSBLRVJOX0VS UlsxXTsKIAlib29sIGlzX2RlYnVnID0gbGV2ZWxbMV0gPT0gS0VSTl9ERUJVR1sxXTsKIAlzdHJ1 Y3QgdmFfZm9ybWF0IHZhZjsKQEAgLTkxLDExICs5MSwxMSBAQCBfX2k5MTVfcHJpbnRrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3QgY2hhciAqbGV2ZWwsCiAJdmFmLmZt dCA9IGZtdDsKIAl2YWYudmEgPSAmYXJnczsKIAotCWRldl9wcmludGsobGV2ZWwsIGRldiwgIlsi IERSTV9OQU1FICI6JXBzXSAlcFYiLAorCWRldl9wcmludGsobGV2ZWwsIGtkZXYsICJbIiBEUk1f TkFNRSAiOiVwc10gJXBWIiwKIAkJICAgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApLCAmdmFm KTsKIAogCWlmIChpc19lcnJvciAmJiAhc2hvd25fYnVnX29uY2UpIHsKLQkJZGV2X25vdGljZShk ZXYsICIlcyIsIEZET19CVUdfTVNHKTsKKwkJZGV2X25vdGljZShrZGV2LCAiJXMiLCBGRE9fQlVH X01TRyk7CiAJCXNob3duX2J1Z19vbmNlID0gdHJ1ZTsKIAl9CiAKQEAgLTE0NjIsOSArMTQ2Miw5 IEBAIG91dDoKIAlyZXR1cm4gZXJyb3I7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9kcm1fc3VzcGVu ZF9sYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCBib29sIGhpYmVybmF0aW9uKQorc3Rh dGljIGludCBpOTE1X2RybV9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9v bCBoaWJlcm5hdGlvbikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRybV9kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKIAlib29sIGZ3X2NzcjsKIAlpbnQgcmV0OwogCkBAIC0xNDk4LDcgKzE0OTgs NyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmRfbGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZHJtX2RldiwgYm9vbCBoaWJlcm5hdGlvbikKIAkJZ290byBvdXQ7CiAJfQogCi0JcGNpX2Rpc2Fi bGVfZGV2aWNlKGRybV9kZXYtPnBkZXYpOworCXBjaV9kaXNhYmxlX2RldmljZShkZXYtPnBkZXYp OwogCS8qCiAJICogRHVyaW5nIGhpYmVybmF0aW9uIG9uIHNvbWUgcGxhdGZvcm1zIHRoZSBCSU9T IG1heSB0cnkgdG8gYWNjZXNzCiAJICogdGhlIGRldmljZSBldmVuIHRob3VnaCBpdCdzIGFscmVh ZHkgaW4gRDMgYW5kIGhhbmcgdGhlIG1hY2hpbmUuIFNvCkBAIC0xNTEyLDcgKzE1MTIsNyBAQCBz dGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmRfbGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rl diwgYm9vbCBoaWJlcm5hdGlvbikKIAkgKiBBY2VyIEFzcGlyZSAxODMwVAogCSAqLwogCWlmICgh KGhpYmVybmF0aW9uICYmIElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPCA2KSkKLQkJcGNpX3Nl dF9wb3dlcl9zdGF0ZShkcm1fZGV2LT5wZGV2LCBQQ0lfRDNob3QpOworCQlwY2lfc2V0X3Bvd2Vy X3N0YXRlKGRldi0+cGRldiwgUENJX0QzaG90KTsKIAogCWRldl9wcml2LT5zdXNwZW5kZWRfdG9f aWRsZSA9IHN1c3BlbmRfdG9faWRsZShkZXZfcHJpdik7CiAKQEAgLTE4MTAsMjUgKzE4MTAsMjUg QEAgZXJyb3I6CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBpOTE1X3BtX3N1c3BlbmQo c3RydWN0IGRldmljZSAqZGV2KQorc3RhdGljIGludCBpOTE1X3BtX3N1c3BlbmQoc3RydWN0IGRl dmljZSAqa2RldikKIHsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsK LQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlz dHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoa2Rldik7CisJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAotCWlmICghZHJtX2RldikgewotCQlk ZXZfZXJyKGRldiwgIkRSTSBub3QgaW5pdGlhbGl6ZWQsIGFib3J0aW5nIHN1c3BlbmQuXG4iKTsK KwlpZiAoIWRldikgeworCQlkZXZfZXJyKGtkZXYsICJEUk0gbm90IGluaXRpYWxpemVkLCBhYm9y dGluZyBzdXNwZW5kLlxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIAotCWlmIChkcm1fZGV2 LT5zd2l0Y2hfcG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dFUl9PRkYpCisJaWYgKGRldi0+ c3dpdGNoX3Bvd2VyX3N0YXRlID09IERSTV9TV0lUQ0hfUE9XRVJfT0ZGKQogCQlyZXR1cm4gMDsK IAotCXJldHVybiBpOTE1X2RybV9zdXNwZW5kKGRybV9kZXYpOworCXJldHVybiBpOTE1X2RybV9z dXNwZW5kKGRldik7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9wbV9zdXNwZW5kX2xhdGUoc3RydWN0 IGRldmljZSAqZGV2KQorc3RhdGljIGludCBpOTE1X3BtX3N1c3BlbmRfbGF0ZShzdHJ1Y3QgZGV2 aWNlICprZGV2KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gJmRldl90b19pOTE1 KGRldiktPmRybTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmtkZXZfdG9faTkxNShrZGV2 KS0+ZHJtOwogCiAJLyoKIAkgKiBXZSBoYXZlIGEgc3VzcGVuZCBvcmRlcmluZyBpc3N1ZSB3aXRo IHRoZSBzbmQtaGRhIGRyaXZlciBhbHNvCkBAIC0xODM5LDU3ICsxODM5LDU3IEBAIHN0YXRpYyBp bnQgaTkxNV9wbV9zdXNwZW5kX2xhdGUoc3RydWN0IGRldmljZSAqZGV2KQogCSAqIEZJWE1FOiBU aGlzIHNob3VsZCBiZSBzb2x2ZWQgd2l0aCBhIHNwZWNpYWwgaGRtaSBzaW5rIGRldmljZSBvcgog CSAqIHNpbWlsYXIgc28gdGhhdCBwb3dlciBkb21haW5zIGNhbiBiZSBlbXBsb3llZC4KIAkgKi8K LQlpZiAoZHJtX2Rldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID09IERSTV9TV0lUQ0hfUE9XRVJfT0ZG KQorCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikK IAkJcmV0dXJuIDA7CiAKLQlyZXR1cm4gaTkxNV9kcm1fc3VzcGVuZF9sYXRlKGRybV9kZXYsIGZh bHNlKTsKKwlyZXR1cm4gaTkxNV9kcm1fc3VzcGVuZF9sYXRlKGRldiwgZmFsc2UpOwogfQogCi1z dGF0aWMgaW50IGk5MTVfcG1fcG93ZXJvZmZfbGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCitzdGF0 aWMgaW50IGk5MTVfcG1fcG93ZXJvZmZfbGF0ZShzdHJ1Y3QgZGV2aWNlICprZGV2KQogewotCXN0 cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gJmRldl90b19pOTE1KGRldiktPmRybTsKKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gJmtkZXZfdG9faTkxNShrZGV2KS0+ZHJtOwogCi0JaWYgKGRy bV9kZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKKwlpZiAo ZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dFUl9PRkYpCiAJCXJldHVy biAwOwogCi0JcmV0dXJuIGk5MTVfZHJtX3N1c3BlbmRfbGF0ZShkcm1fZGV2LCB0cnVlKTsKKwly ZXR1cm4gaTkxNV9kcm1fc3VzcGVuZF9sYXRlKGRldiwgdHJ1ZSk7CiB9CiAKLXN0YXRpYyBpbnQg aTkxNV9wbV9yZXN1bWVfZWFybHkoc3RydWN0IGRldmljZSAqZGV2KQorc3RhdGljIGludCBpOTE1 X3BtX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZGV2aWNlICprZGV2KQogewotCXN0cnVjdCBkcm1fZGV2 aWNlICpkcm1fZGV2ID0gJmRldl90b19pOTE1KGRldiktPmRybTsKKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gJmtkZXZfdG9faTkxNShrZGV2KS0+ZHJtOwogCi0JaWYgKGRybV9kZXYtPnN3aXRj aF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKKwlpZiAoZGV2LT5zd2l0Y2hf cG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dFUl9PRkYpCiAJCXJldHVybiAwOwogCi0JcmV0 dXJuIGk5MTVfZHJtX3Jlc3VtZV9lYXJseShkcm1fZGV2KTsKKwlyZXR1cm4gaTkxNV9kcm1fcmVz dW1lX2Vhcmx5KGRldik7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9wbV9yZXN1bWUoc3RydWN0IGRl dmljZSAqZGV2KQorc3RhdGljIGludCBpOTE1X3BtX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICprZGV2 KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gJmRldl90b19pOTE1KGRldiktPmRy bTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmtkZXZfdG9faTkxNShrZGV2KS0+ZHJtOwog Ci0JaWYgKGRybV9kZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09G RikKKwlpZiAoZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dFUl9PRkYp CiAJCXJldHVybiAwOwogCi0JcmV0dXJuIGk5MTVfZHJtX3Jlc3VtZShkcm1fZGV2KTsKKwlyZXR1 cm4gaTkxNV9kcm1fcmVzdW1lKGRldik7CiB9CiAKIC8qIGZyZWV6ZTogYmVmb3JlIGNyZWF0aW5n IHRoZSBoaWJlcm5hdGlvbl9pbWFnZSAqLwotc3RhdGljIGludCBpOTE1X3BtX2ZyZWV6ZShzdHJ1 Y3QgZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IGk5MTVfcG1fZnJlZXplKHN0cnVjdCBkZXZpY2Ug KmtkZXYpCiB7Ci0JcmV0dXJuIGk5MTVfcG1fc3VzcGVuZChkZXYpOworCXJldHVybiBpOTE1X3Bt X3N1c3BlbmQoa2Rldik7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9wbV9mcmVlemVfbGF0ZShzdHJ1 Y3QgZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IGk5MTVfcG1fZnJlZXplX2xhdGUoc3RydWN0IGRl dmljZSAqa2RldikKIHsKIAlpbnQgcmV0OwogCi0JcmV0ID0gaTkxNV9wbV9zdXNwZW5kX2xhdGUo ZGV2KTsKKwlyZXQgPSBpOTE1X3BtX3N1c3BlbmRfbGF0ZShrZGV2KTsKIAlpZiAocmV0KQogCQly ZXR1cm4gcmV0OwogCi0JcmV0ID0gaTkxNV9nZW1fZnJlZXplX2xhdGUoZGV2X3RvX2k5MTUoZGV2 KSk7CisJcmV0ID0gaTkxNV9nZW1fZnJlZXplX2xhdGUoa2Rldl90b19pOTE1KGtkZXYpKTsKIAlp ZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0xODk3LDI1ICsxODk3LDI1IEBAIHN0YXRpYyBp bnQgaTkxNV9wbV9mcmVlemVfbGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB9CiAKIC8qIHRoYXc6 IGNhbGxlZCBhZnRlciBjcmVhdGluZyB0aGUgaGliZXJuYXRpb24gaW1hZ2UsIGJ1dCBiZWZvcmUg dHVybmluZyBvZmYuICovCi1zdGF0aWMgaW50IGk5MTVfcG1fdGhhd19lYXJseShzdHJ1Y3QgZGV2 aWNlICpkZXYpCitzdGF0aWMgaW50IGk5MTVfcG1fdGhhd19lYXJseShzdHJ1Y3QgZGV2aWNlICpr ZGV2KQogewotCXJldHVybiBpOTE1X3BtX3Jlc3VtZV9lYXJseShkZXYpOworCXJldHVybiBpOTE1 X3BtX3Jlc3VtZV9lYXJseShrZGV2KTsKIH0KIAotc3RhdGljIGludCBpOTE1X3BtX3RoYXcoc3Ry dWN0IGRldmljZSAqZGV2KQorc3RhdGljIGludCBpOTE1X3BtX3RoYXcoc3RydWN0IGRldmljZSAq a2RldikKIHsKLQlyZXR1cm4gaTkxNV9wbV9yZXN1bWUoZGV2KTsKKwlyZXR1cm4gaTkxNV9wbV9y ZXN1bWUoa2Rldik7CiB9CiAKIC8qIHJlc3RvcmU6IGNhbGxlZCBhZnRlciBsb2FkaW5nIHRoZSBo aWJlcm5hdGlvbiBpbWFnZS4gKi8KLXN0YXRpYyBpbnQgaTkxNV9wbV9yZXN0b3JlX2Vhcmx5KHN0 cnVjdCBkZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgaTkxNV9wbV9yZXN0b3JlX2Vhcmx5KHN0cnVj dCBkZXZpY2UgKmtkZXYpCiB7Ci0JcmV0dXJuIGk5MTVfcG1fcmVzdW1lX2Vhcmx5KGRldik7CisJ cmV0dXJuIGk5MTVfcG1fcmVzdW1lX2Vhcmx5KGtkZXYpOwogfQogCi1zdGF0aWMgaW50IGk5MTVf cG1fcmVzdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IGk5MTVfcG1fcmVzdG9y ZShzdHJ1Y3QgZGV2aWNlICprZGV2KQogewotCXJldHVybiBpOTE1X3BtX3Jlc3VtZShkZXYpOwor CXJldHVybiBpOTE1X3BtX3Jlc3VtZShrZGV2KTsKIH0KIAogLyoKQEAgLTIyNzcsOSArMjI3Nyw5 IEBAIHN0YXRpYyBpbnQgdmx2X3Jlc3VtZV9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGludGVsX3J1bnRpbWVf c3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpCitzdGF0aWMgaW50IGludGVsX3J1bnRpbWVf c3VzcGVuZChzdHJ1Y3QgZGV2aWNlICprZGV2KQogewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0g dG9fcGNpX2RldihkZXZpY2UpOworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2Rldihr ZGV2KTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlpbnQg cmV0OwpAQCAtMjMwNSw3ICsyMzA1LDcgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3N1c3Bl bmQoc3RydWN0IGRldmljZSAqZGV2aWNlKQogCQkgKiBCdW1wIHRoZSBleHBpcmF0aW9uIHRpbWVz dGFtcCwgb3RoZXJ3aXNlIHRoZSBzdXNwZW5kIHdvbid0CiAJCSAqIGJlIHJlc2NoZWR1bGVkLgog CQkgKi8KLQkJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShkZXZpY2UpOworCQlwbV9ydW50aW1l X21hcmtfbGFzdF9idXN5KGtkZXYpOwogCiAJCXJldHVybiAtRUFHQUlOOwogCX0KQEAgLTIzODQs OSArMjM4NCw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZp Y2UgKmRldmljZSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3Jl c3VtZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpCitzdGF0aWMgaW50IGludGVsX3J1bnRpbWVfcmVz dW1lKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19w Y2lfZGV2KGRldmljZSk7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGtkZXYp OwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCWludCByZXQg PSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMmNiNDAwMjZiNDc2Li41ODQ0MTBiNzBl MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjA1Nyw5ICsyMDU3LDkgQEAgc3RhdGlj IGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqdG9faTkxNShjb25zdCBzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCXJldHVybiBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSwgZHJtKTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3RvX2k5MTUoc3RydWN0IGRldmljZSAqZGV2KQorc3RhdGljIGlubGluZSBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqa2Rldl90b19pOTE1KHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0J cmV0dXJuIHRvX2k5MTUoZGV2X2dldF9kcnZkYXRhKGRldikpOworCXJldHVybiB0b19pOTE1KGRl dl9nZXRfZHJ2ZGF0YShrZGV2KSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmd1Y190b19pOTE1KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggYjkwZmRjZWU5OTJhLi4yMDI5YjUxZjkxMjQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0zMjYsMTYgKzMyNiwxNiBAQCBzdGF0aWMg Z2VuNl9wdGVfdCBpcmlzX3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAogc3RhdGljIGludCBf X3NldHVwX3BhZ2VfZG1hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgICAgc3RydWN0IGk5 MTVfcGFnZV9kbWEgKnAsIGdmcF90IGZsYWdzKQogewotCXN0cnVjdCBkZXZpY2UgKmRldmljZSA9 ICZkZXYtPnBkZXYtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJmRldi0+cGRldi0+ZGV2 OwogCiAJcC0+cGFnZSA9IGFsbG9jX3BhZ2UoZmxhZ3MpOwogCWlmICghcC0+cGFnZSkKIAkJcmV0 dXJuIC1FTk9NRU07CiAKLQlwLT5kYWRkciA9IGRtYV9tYXBfcGFnZShkZXZpY2UsCisJcC0+ZGFk ZHIgPSBkbWFfbWFwX3BhZ2Uoa2RldiwKIAkJCQlwLT5wYWdlLCAwLCA0MDk2LCBQQ0lfRE1BX0JJ RElSRUNUSU9OQUwpOwogCi0JaWYgKGRtYV9tYXBwaW5nX2Vycm9yKGRldmljZSwgcC0+ZGFkZHIp KSB7CisJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKGtkZXYsIHAtPmRhZGRyKSkgewogCQlfX2ZyZWVf cGFnZShwLT5wYWdlKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9z eXNmcy5jCmluZGV4IGYxZmZkZTdmN2MwYi4uMDVjYjk1YmYyZjRiIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9zeXNmcy5jCkBAIC0zMiw3ICszMiwxMCBAQAogI2luY2x1ZGUgImludGVsX2Rydi5oIgog I2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAKLSNkZWZpbmUgZGV2X3RvX2RybV9taW5vcihkKSBkZXZf Z2V0X2RydmRhdGEoKGQpKQorc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX21pbm9yICprZGV2X3Rv X2RybV9taW5vcihzdHJ1Y3QgZGV2aWNlICprZGV2KQoreworCXJldHVybiBkZXZfZ2V0X2RydmRh dGEoa2Rldik7Cit9CiAKICNpZmRlZiBDT05GSUdfUE0KIHN0YXRpYyB1MzIgY2FsY19yZXNpZGVu Y3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwKQEAgLTg0LDcgKzg3LDcgQEAgc2hvd19yYzZfbXMo c3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIg KmJ1ZikKIHN0YXRpYyBzc2l6ZV90CiBzaG93X3JjNnBfbXMoc3RydWN0IGRldmljZSAqa2Rldiwg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKLQlzdHJ1Y3QgZHJt X21pbm9yICpkbWlub3IgPSBkZXZfdG9fZHJtX21pbm9yKGtkZXYpOworCXN0cnVjdCBkcm1fbWlu b3IgKmRtaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwogCXUzMiByYzZwX3Jlc2lkZW5j eSA9IGNhbGNfcmVzaWRlbmN5KGRtaW5vci0+ZGV2LCBHRU42X0dUX0dGWF9SQzZwKTsKIAlyZXR1 cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIldVxuIiwgcmM2cF9yZXNpZGVuY3kpOwogfQpA QCAtOTIsNyArOTUsNyBAQCBzaG93X3JjNnBfbXMoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHN0YXRpYyBzc2l6ZV90CiBzaG93 X3JjNnBwX21zKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICph dHRyLCBjaGFyICpidWYpCiB7Ci0Jc3RydWN0IGRybV9taW5vciAqZG1pbm9yID0gZGV2X3RvX2Ry bV9taW5vcihrZGV2KTsKKwlzdHJ1Y3QgZHJtX21pbm9yICpkbWlub3IgPSBrZGV2X3RvX2RybV9t aW5vcihrZGV2KTsKIAl1MzIgcmM2cHBfcmVzaWRlbmN5ID0gY2FsY19yZXNpZGVuY3koZG1pbm9y LT5kZXYsIEdFTjZfR1RfR0ZYX1JDNnBwKTsKIAlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJ WkUsICIldVxuIiwgcmM2cHBfcmVzaWRlbmN5KTsKIH0KQEAgLTE2MywyMiArMTY2LDIyIEBAIGk5 MTVfbDNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosCiAJICAg ICBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmLAogCSAgICAgbG9mZl90IG9m ZnNldCwgc2l6ZV90IGNvdW50KQogewotCXN0cnVjdCBkZXZpY2UgKmRldiA9IGtvYmpfdG9fZGV2 KGtvYmopOwotCXN0cnVjdCBkcm1fbWlub3IgKmRtaW5vciA9IGRldl90b19kcm1fbWlub3IoZGV2 KTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRtaW5vci0+ZGV2OwotCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZHJtX2Rldik7CisJc3RydWN0IGRl dmljZSAqa2RldiA9IGtvYmpfdG9fZGV2KGtvYmopOworCXN0cnVjdCBkcm1fbWlub3IgKmRtaW5v ciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBk bWlub3ItPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CiAJaW50IHNsaWNlID0gKGludCkodWludHB0cl90KWF0dHItPnByaXZhdGU7CiAJaW50 IHJldDsKIAogCWNvdW50ID0gcm91bmRfZG93bihjb3VudCwgNCk7CiAKLQlyZXQgPSBsM19hY2Nl c3NfdmFsaWQoZHJtX2Rldiwgb2Zmc2V0KTsKKwlyZXQgPSBsM19hY2Nlc3NfdmFsaWQoZGV2LCBv ZmZzZXQpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKIAljb3VudCA9IG1pbl90KHNpemVf dCwgR0VON19MM0xPR19TSVpFIC0gb2Zmc2V0LCBjb3VudCk7CiAKLQlyZXQgPSBpOTE1X211dGV4 X2xvY2tfaW50ZXJydXB0aWJsZShkcm1fZGV2KTsKKwlyZXQgPSBpOTE1X211dGV4X2xvY2tfaW50 ZXJydXB0aWJsZShkZXYpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTE4OSw3ICsx OTIsNyBAQCBpOTE1X2wzX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBrb2JqZWN0ICpr b2JqLAogCWVsc2UKIAkJbWVtc2V0KGJ1ZiwgMCwgY291bnQpOwogCi0JbXV0ZXhfdW5sb2NrKCZk cm1fZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp OwogCiAJcmV0dXJuIGNvdW50OwogfQpAQCAtMTk5LDMwICsyMDIsMzAgQEAgaTkxNV9sM193cml0 ZShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosCiAJICAgICAgc3RydWN0 IGJpbl9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZiwKIAkgICAgICBsb2ZmX3Qgb2Zmc2V0LCBz aXplX3QgY291bnQpCiB7Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0ga29ial90b19kZXYoa29iaik7 Ci0Jc3RydWN0IGRybV9taW5vciAqZG1pbm9yID0gZGV2X3RvX2RybV9taW5vcihkZXYpOwotCXN0 cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZG1pbm9yLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkcm1fZGV2KTsKKwlzdHJ1Y3QgZGV2aWNlICpr ZGV2ID0ga29ial90b19kZXYoa29iaik7CisJc3RydWN0IGRybV9taW5vciAqZG1pbm9yID0ga2Rl dl90b19kcm1fbWlub3Ioa2Rldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRtaW5vci0+ ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK IAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OwogCXUzMiAqdGVtcCA9IE5VTEw7IC8qIEp1 c3QgaGVyZSB0byBtYWtlIGhhbmRsaW5nIGZhaWx1cmVzIGVhc3kgKi8KIAlpbnQgc2xpY2UgPSAo aW50KSh1aW50cHRyX3QpYXR0ci0+cHJpdmF0ZTsKIAlpbnQgcmV0OwogCi0JaWYgKCFIQVNfSFdf Q09OVEVYVFMoZHJtX2RldikpCisJaWYgKCFIQVNfSFdfQ09OVEVYVFMoZGV2KSkKIAkJcmV0dXJu IC1FTlhJTzsKIAotCXJldCA9IGwzX2FjY2Vzc192YWxpZChkcm1fZGV2LCBvZmZzZXQpOworCXJl dCA9IGwzX2FjY2Vzc192YWxpZChkZXYsIG9mZnNldCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJl dDsKIAotCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRybV9kZXYpOworCXJl dCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7CiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIAogCWlmICghZGV2X3ByaXYtPmwzX3Bhcml0eS5yZW1hcF9pbmZvW3NsaWNlXSkg ewogCQl0ZW1wID0ga3phbGxvYyhHRU43X0wzTE9HX1NJWkUsIEdGUF9LRVJORUwpOwogCQlpZiAo IXRlbXApIHsKLQkJCW11dGV4X3VubG9jaygmZHJtX2Rldi0+c3RydWN0X211dGV4KTsKKwkJCW11 dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCQkJcmV0dXJuIC1FTk9NRU07CiAJCX0K IAl9CkBAIC0yNDAsNyArMjQzLDcgQEAgaTkxNV9sM193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwg c3RydWN0IGtvYmplY3QgKmtvYmosCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjdHgsICZkZXZfcHJp di0+Y29udGV4dF9saXN0LCBsaW5rKQogCQljdHgtPnJlbWFwX3NsaWNlIHw9ICgxPDxzbGljZSk7 CiAKLQltdXRleF91bmxvY2soJmRybV9kZXYtPnN0cnVjdF9tdXRleCk7CisJbXV0ZXhfdW5sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKIAlyZXR1cm4gY291bnQ7CiB9CkBAIC0yNjYsNyArMjY5 LDcgQEAgc3RhdGljIHN0cnVjdCBiaW5fYXR0cmlidXRlIGRwZl9hdHRyc18xID0gewogc3RhdGlj IHNzaXplX3QgZ3RfYWN0X2ZyZXFfbWh6X3Nob3coc3RydWN0IGRldmljZSAqa2RldiwKIAkJCQkg ICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKLQlzdHJ1Y3Qg ZHJtX21pbm9yICptaW5vciA9IGRldl90b19kcm1fbWlub3Ioa2Rldik7CisJc3RydWN0IGRybV9t aW5vciAqbWlub3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2KTsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gbWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7CiAJaW50IHJldDsKQEAgLTI5OCw3ICszMDEsNyBAQCBzdGF0aWMgc3Np emVfdCBndF9hY3RfZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2aWNlICprZGV2LAogc3RhdGljIHNz aXplX3QgZ3RfY3VyX2ZyZXFfbWh6X3Nob3coc3RydWN0IGRldmljZSAqa2RldiwKIAkJCQkgICAg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKLQlzdHJ1Y3QgZHJt X21pbm9yICptaW5vciA9IGRldl90b19kcm1fbWlub3Ioa2Rldik7CisJc3RydWN0IGRybV9taW5v ciAqbWlub3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2KTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gbWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7CiAKQEAgLTMwOSw3ICszMTIsNyBAQCBzdGF0aWMgc3NpemVfdCBndF9jdXJf ZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2aWNlICprZGV2LAogCiBzdGF0aWMgc3NpemVfdCBndF9i b29zdF9mcmVxX21oel9zaG93KHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7Ci0Jc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBk ZXZfdG9fZHJtX21pbm9yKGtkZXYpOworCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yID0ga2Rldl90 b19kcm1fbWlub3Ioa2Rldik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShtaW5vci0+ZGV2KTsKIAogCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwg IiVkXG4iLApAQCAtMzIxLDcgKzMyNCw3IEBAIHN0YXRpYyBzc2l6ZV90IGd0X2Jvb3N0X2ZyZXFf bWh6X3N0b3JlKHN0cnVjdCBkZXZpY2UgKmtkZXYsCiAJCQkJICAgICAgIHN0cnVjdCBkZXZpY2Vf YXR0cmlidXRlICphdHRyLAogCQkJCSAgICAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3Vu dCkKIHsKLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGRldl90b19kcm1fbWlub3Ioa2Rldik7 CisJc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2KTsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJdTMyIHZhbDsKQEAgLTM0Niw3ICszNDks NyBAQCBzdGF0aWMgc3NpemVfdCBndF9ib29zdF9mcmVxX21oel9zdG9yZShzdHJ1Y3QgZGV2aWNl ICprZGV2LAogc3RhdGljIHNzaXplX3Qgdmx2X3JwZV9mcmVxX21oel9zaG93KHN0cnVjdCBkZXZp Y2UgKmtkZXYsCiAJCQkJICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAq YnVmKQogewotCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yID0gZGV2X3RvX2RybV9taW5vcihrZGV2 KTsKKwlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwog CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtaW5vci0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIApAQCAtMzU3LDcgKzM2MCw3IEBAIHN0 YXRpYyBzc2l6ZV90IHZsdl9ycGVfZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2aWNlICprZGV2LAog CiBzdGF0aWMgc3NpemVfdCBndF9tYXhfZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2aWNlICprZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewotCXN0cnVjdCBk cm1fbWlub3IgKm1pbm9yID0gZGV2X3RvX2RybV9taW5vcihrZGV2KTsKKwlzdHJ1Y3QgZHJtX21p bm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBtaW5vci0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKIApAQCAtMzcwLDcgKzM3Myw3IEBAIHN0YXRpYyBzc2l6ZV90IGd0X21h eF9mcmVxX21oel9zdG9yZShzdHJ1Y3QgZGV2aWNlICprZGV2LAogCQkJCSAgICAgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkJICAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBj b3VudCkKIHsKLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGRldl90b19kcm1fbWlub3Ioa2Rl dik7CisJc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2KTsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJdTMyIHZhbDsKQEAgLTQxOCw3ICs0 MjEsNyBAQCBzdGF0aWMgc3NpemVfdCBndF9tYXhfZnJlcV9taHpfc3RvcmUoc3RydWN0IGRldmlj ZSAqa2RldiwKIAogc3RhdGljIHNzaXplX3QgZ3RfbWluX2ZyZXFfbWh6X3Nob3coc3RydWN0IGRl dmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsK LQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGRldl90b19kcm1fbWlub3Ioa2Rldik7CisJc3Ry dWN0IGRybV9taW5vciAqbWlub3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2KTsKIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gbWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAKQEAgLTQzMSw3ICs0MzQsNyBAQCBzdGF0aWMgc3Np emVfdCBndF9taW5fZnJlcV9taHpfc3RvcmUoc3RydWN0IGRldmljZSAqa2RldiwKIAkJCQkgICAg IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQkJCSAgICAgY29uc3QgY2hhciAqYnVm LCBzaXplX3QgY291bnQpCiB7Ci0Jc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBkZXZfdG9fZHJt X21pbm9yKGtkZXYpOworCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yID0ga2Rldl90b19kcm1fbWlu b3Ioa2Rldik7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG1pbm9yLT5kZXY7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXUzMiB2YWw7CkBA IC00OTAsNyArNDkzLDcgQEAgc3RhdGljIERFVklDRV9BVFRSKGd0X1JQbl9mcmVxX21oeiwgU19J UlVHTywgZ3RfcnBfbWh6X3Nob3csIE5VTEwpOwogLyogRm9yIG5vdyB3ZSBoYXZlIGEgc3RhdGlj IG51bWJlciBvZiBSUCBzdGF0ZXMgKi8KIHN0YXRpYyBzc2l6ZV90IGd0X3JwX21oel9zaG93KHN0 cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpi dWYpCiB7Ci0Jc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBkZXZfdG9fZHJtX21pbm9yKGtkZXYp OworCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yID0ga2Rldl90b19kcm1fbWlub3Ioa2Rldik7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG1pbm9yLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXUzMiB2YWw7CkBAIC01MzgsNyArNTQx LDcgQEAgc3RhdGljIHNzaXplX3QgZXJyb3Jfc3RhdGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwg c3RydWN0IGtvYmplY3QgKmtvYmosCiB7CiAKIAlzdHJ1Y3QgZGV2aWNlICprZGV2ID0ga29ial90 b19kZXYoa29iaik7Ci0Jc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBkZXZfdG9fZHJtX21pbm9y KGtkZXYpOworCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yID0ga2Rldl90b19kcm1fbWlub3Ioa2Rl dik7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG1pbm9yLT5kZXY7CiAJc3RydWN0IGk5MTVf ZXJyb3Jfc3RhdGVfZmlsZV9wcml2IGVycm9yX3ByaXY7CiAJc3RydWN0IGRybV9pOTE1X2Vycm9y X3N0YXRlX2J1ZiBlcnJvcl9zdHI7CkBAIC01NzMsNyArNTc2LDcgQEAgc3RhdGljIHNzaXplX3Qg ZXJyb3Jfc3RhdGVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBrb2JqZWN0ICprb2Jq LAogCQkJCSBsb2ZmX3Qgb2ZmLCBzaXplX3QgY291bnQpCiB7CiAJc3RydWN0IGRldmljZSAqa2Rl diA9IGtvYmpfdG9fZGV2KGtvYmopOwotCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yID0gZGV2X3Rv X2RybV9taW5vcihrZGV2KTsKKwlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGtkZXZfdG9fZHJt X21pbm9yKGtkZXYpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtaW5vci0+ZGV2OwogCWlu dCByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCmluZGV4IDg1Mzg5Y2RkMGJlYy4u YzMyMjQ3NWE0YWVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRp by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKQEAgLTU4MSwyNiAr NTgxLDI2IEBAIHZvaWQgaW50ZWxfaW5pdF9hdWRpb19ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJfQogfQogCi1zdGF0aWMgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVu dF9nZXRfcG93ZXIoc3RydWN0IGRldmljZSAqZGV2KQorc3RhdGljIHZvaWQgaTkxNV9hdWRpb19j b21wb25lbnRfZ2V0X3Bvd2VyKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0JaW50ZWxfZGlzcGxh eV9wb3dlcl9nZXQoZGV2X3RvX2k5MTUoZGV2KSwgUE9XRVJfRE9NQUlOX0FVRElPKTsKKwlpbnRl bF9kaXNwbGF5X3Bvd2VyX2dldChrZGV2X3RvX2k5MTUoa2RldiksIFBPV0VSX0RPTUFJTl9BVURJ Tyk7CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVfYXVkaW9fY29tcG9uZW50X3B1dF9wb3dlcihzdHJ1 Y3QgZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9wdXRfcG93 ZXIoc3RydWN0IGRldmljZSAqa2RldikKIHsKLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZf dG9faTkxNShkZXYpLCBQT1dFUl9ET01BSU5fQVVESU8pOworCWludGVsX2Rpc3BsYXlfcG93ZXJf cHV0KGtkZXZfdG9faTkxNShrZGV2KSwgUE9XRVJfRE9NQUlOX0FVRElPKTsKIH0KIAotc3RhdGlj IHZvaWQgaTkxNV9hdWRpb19jb21wb25lbnRfY29kZWNfd2FrZV9vdmVycmlkZShzdHJ1Y3QgZGV2 aWNlICpkZXYsCitzdGF0aWMgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9jb2RlY193YWtlX292 ZXJyaWRlKHN0cnVjdCBkZXZpY2UgKmtkZXYsCiAJCQkJCQkgICAgIGJvb2wgZW5hYmxlKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldl90b19pOTE1KGRldik7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl90b19pOTE1KGtkZXYpOwog CXUzMiB0bXA7CiAKIAlpZiAoIUlTX1NLWUxBS0UoZGV2X3ByaXYpICYmICFJU19LQUJZTEFLRShk ZXZfcHJpdikpCiAJCXJldHVybjsKIAotCWk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9wb3dlcihk ZXYpOworCWk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9wb3dlcihrZGV2KTsKIAogCS8qCiAJICog RW5hYmxlL2Rpc2FibGUgZ2VuZXJhdGluZyB0aGUgY29kZWMgd2FrZSBzaWduYWwsIG92ZXJyaWRp bmcgdGhlCkBAIC02MTgsMTMgKzYxOCwxMyBAQCBzdGF0aWMgdm9pZCBpOTE1X2F1ZGlvX2NvbXBv bmVudF9jb2RlY193YWtlX292ZXJyaWRlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJdXNsZWVwX3Jh bmdlKDEwMDAsIDE1MDApOwogCX0KIAotCWk5MTVfYXVkaW9fY29tcG9uZW50X3B1dF9wb3dlcihk ZXYpOworCWk5MTVfYXVkaW9fY29tcG9uZW50X3B1dF9wb3dlcihrZGV2KTsKIH0KIAogLyogR2V0 IENEQ0xLIGluIGtIeiAgKi8KLXN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0X2Nk Y2xrX2ZyZXEoc3RydWN0IGRldmljZSAqZGV2KQorc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBv bmVudF9nZXRfY2RjbGtfZnJlcShzdHJ1Y3QgZGV2aWNlICprZGV2KQogewotCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldl90b19pOTE1KGRldik7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl90b19pOTE1KGtkZXYpOwogCiAJaWYgKFdBUk5f T05fT05DRSghSEFTX0RESShkZXZfcHJpdikpKQogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTYzMiwx MCArNjMyLDEwIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0X2NkY2xrX2Zy ZXEoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkZXZfcHJpdi0+Y2RjbGtfZnJlcTsKIH0K IAotc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0 IGRldmljZSAqZGV2LAorc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlv X3JhdGUoc3RydWN0IGRldmljZSAqa2RldiwKIAkJCQkJCWludCBwb3J0LCBpbnQgcmF0ZSkKIHsK LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZfdG9faTkxNShkZXYpOwor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNShrZGV2KTsK IAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsKIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YzsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKQEAgLTY1Miw3ICs2NTIs NyBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJICAgICFJU19IQVNXRUxMKGRldl9wcml2KSkKIAkJcmV0dXJuIDA7 CiAKLQlpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfcG93ZXIoZGV2KTsKKwlpOTE1X2F1ZGlvX2Nv bXBvbmVudF9nZXRfcG93ZXIoa2Rldik7CiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4 KTsKIAkvKiAxLiBnZXQgdGhlIHBpcGUgKi8KIAlpbnRlbF9lbmNvZGVyID0gZGV2X3ByaXYtPmRp Z19wb3J0X21hcFtwb3J0XTsKQEAgLTcwMywxNSArNzAzLDE1IEBAIHN0YXRpYyBpbnQgaTkxNV9h dWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAogIHVu bG9jazoKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Ci0JaTkxNV9hdWRpb19j b21wb25lbnRfcHV0X3Bvd2VyKGRldik7CisJaTkxNV9hdWRpb19jb21wb25lbnRfcHV0X3Bvd2Vy KGtkZXYpOwogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25l bnRfZ2V0X2VsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBwb3J0LAorc3RhdGljIGludCBpOTE1 X2F1ZGlvX2NvbXBvbmVudF9nZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIGludCBwb3J0LAog CQkJCQlib29sICplbmFibGVkLAogCQkJCQl1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0 ZXMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2X3RvX2k5MTUo ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUo a2Rldik7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7CiAJc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7CiAJY29uc3QgdTggKmVsZDsKQEAgLTc0 NSwxMSArNzQ1LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRf b3BzIGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyA9IHsKIAkuZ2V0X2VsZAk9IGk5MTVfYXVkaW9f Y29tcG9uZW50X2dldF9lbGQsCiB9OwogCi1zdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50 X2JpbmQoc3RydWN0IGRldmljZSAqaTkxNV9kZXYsCi0JCQkJICAgICBzdHJ1Y3QgZGV2aWNlICpo ZGFfZGV2LCB2b2lkICpkYXRhKQorc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9iaW5k KHN0cnVjdCBkZXZpY2UgKmk5MTVfa2RldiwKKwkJCQkgICAgIHN0cnVjdCBkZXZpY2UgKmhkYV9r ZGV2LCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAg PSBkYXRhOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldl90b19pOTE1 KGk5MTVfZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3Rv X2k5MTUoaTkxNV9rZGV2KTsKIAlpbnQgaTsKIAogCWlmIChXQVJOX09OKGFjb21wLT5vcHMgfHwg YWNvbXAtPmRldikpCkBAIC03NTcsNyArNzU3LDcgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2Nv bXBvbmVudF9iaW5kKHN0cnVjdCBkZXZpY2UgKmk5MTVfZGV2LAogCiAJZHJtX21vZGVzZXRfbG9j a19hbGwoJmRldl9wcml2LT5kcm0pOwogCWFjb21wLT5vcHMgPSAmaTkxNV9hdWRpb19jb21wb25l bnRfb3BzOwotCWFjb21wLT5kZXYgPSBpOTE1X2RldjsKKwlhY29tcC0+ZGV2ID0gaTkxNV9rZGV2 OwogCUJVSUxEX0JVR19PTihNQVhfUE9SVFMgIT0gSTkxNV9NQVhfUE9SVFMpOwogCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKGFjb21wLT5hdWRfc2FtcGxlX3JhdGUpOyBpKyspCiAJCWFjb21w LT5hdWRfc2FtcGxlX3JhdGVbaV0gPSAwOwpAQCAtNzY3LDExICs3NjcsMTEgQEAgc3RhdGljIGlu dCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9iaW5kKHN0cnVjdCBkZXZpY2UgKmk5MTVfZGV2LAogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF91bmJpbmQoc3Ry dWN0IGRldmljZSAqaTkxNV9kZXYsCi0JCQkJCXN0cnVjdCBkZXZpY2UgKmhkYV9kZXYsIHZvaWQg KmRhdGEpCitzdGF0aWMgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF91bmJpbmQoc3RydWN0IGRl dmljZSAqaTkxNV9rZGV2LAorCQkJCQlzdHJ1Y3QgZGV2aWNlICpoZGFfa2Rldiwgdm9pZCAqZGF0 YSkKIHsKIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGF0YTsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZfdG9faTkxNShpOTE1X2Rldik7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl90b19pOTE1KGk5MTVfa2Rl dik7CiAKIAlkcm1fbW9kZXNldF9sb2NrX2FsbCgmZGV2X3ByaXYtPmRybSk7CiAJYWNvbXAtPm9w cyA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1l X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKaW5kZXggYTFk NzNjMmRlMzMyLi43Njg2YjdmMWQ1OTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3J1bnRpbWVfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50 aW1lX3BtLmMKQEAgLTIyODgsNyArMjI4OCw3IEBAIGludCBpbnRlbF9wb3dlcl9kb21haW5zX2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICovCiB2b2lkIGludGVsX3Bv d2VyX2RvbWFpbnNfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0J c3RydWN0IGRldmljZSAqZGV2aWNlID0gJmRldl9wcml2LT5kcm0ucGRldi0+ZGV2OworCXN0cnVj dCBkZXZpY2UgKmtkZXYgPSAmZGV2X3ByaXYtPmRybS5wZGV2LT5kZXY7CiAKIAkvKgogCSAqIFRo ZSBpOTE1LmtvIG1vZHVsZSBpcyBzdGlsbCBub3QgcHJlcGFyZWQgdG8gYmUgbG9hZGVkIHdoZW4K QEAgLTIzMTAsNyArMjMxMCw3IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19maW5pKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiB0aGUgcGxhdGZvcm0gZG9lc24ndCBz dXBwb3J0IHJ1bnRpbWUgUE0uCiAJICovCiAJaWYgKCFIQVNfUlVOVElNRV9QTShkZXZfcHJpdikp Ci0JCXBtX3J1bnRpbWVfcHV0KGRldmljZSk7CisJCXBtX3J1bnRpbWVfcHV0KGtkZXYpOwogfQog CiBzdGF0aWMgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX3N5bmNfaHcoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtMjY1Miw5ICsyNjUyLDkgQEAgdm9pZCBpbnRlbF9wb3dl cl9kb21haW5zX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogdm9p ZCBpbnRlbF9ydW50aW1lX3BtX2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwotCXN0cnVjdCBk ZXZpY2UgKmRldmljZSA9ICZkZXYtPnBkZXYtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0g JmRldi0+cGRldi0+ZGV2OwogCi0JcG1fcnVudGltZV9nZXRfc3luYyhkZXZpY2UpOworCXBtX3J1 bnRpbWVfZ2V0X3N5bmMoa2Rldik7CiAKIAlhdG9taWNfaW5jKCZkZXZfcHJpdi0+cG0ud2FrZXJl Zl9jb3VudCk7CiAJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGRldl9wcml2KTsKQEAgLTI2NzMs MTAgKzI2NzMsMTAgQEAgdm9pZCBpbnRlbF9ydW50aW1lX3BtX2dldChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiBib29sIGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9ICZkZXZfcHJpdi0+ZHJtOwotCXN0cnVjdCBkZXZpY2UgKmRldmljZSA9ICZkZXYtPnBk ZXYtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJmRldi0+cGRldi0+ZGV2OwogCiAJaWYg KElTX0VOQUJMRUQoQ09ORklHX1BNKSkgewotCQlpbnQgcmV0ID0gcG1fcnVudGltZV9nZXRfaWZf aW5fdXNlKGRldmljZSk7CisJCWludCByZXQgPSBwbV9ydW50aW1lX2dldF9pZl9pbl91c2Uoa2Rl dik7CiAKIAkJLyoKIAkJICogSW4gY2FzZXMgcnVudGltZSBQTSBpcyBkaXNhYmxlZCBieSB0aGUg UlBNIGNvcmUgYW5kIHdlIGdldApAQCAtMjcxNSwxMCArMjcxNSwxMCBAQCBib29sIGludGVsX3J1 bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB2b2lkIGludGVsX3J1bnRpbWVfcG1fZ2V0X25vcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5k cm07Ci0Jc3RydWN0IGRldmljZSAqZGV2aWNlID0gJmRldi0+cGRldi0+ZGV2OworCXN0cnVjdCBk ZXZpY2UgKmtkZXYgPSAmZGV2LT5wZGV2LT5kZXY7CiAKIAlhc3NlcnRfcnBtX3dha2Vsb2NrX2hl bGQoZGV2X3ByaXYpOwotCXBtX3J1bnRpbWVfZ2V0X25vcmVzdW1lKGRldmljZSk7CisJcG1fcnVu dGltZV9nZXRfbm9yZXN1bWUoa2Rldik7CiAKIAlhdG9taWNfaW5jKCZkZXZfcHJpdi0+cG0ud2Fr ZXJlZl9jb3VudCk7CiB9CkBAIC0yNzM0LDE0ICsyNzM0LDE0IEBAIHZvaWQgaW50ZWxfcnVudGlt ZV9wbV9nZXRfbm9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogdm9p ZCBpbnRlbF9ydW50aW1lX3BtX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwotCXN0cnVjdCBk ZXZpY2UgKmRldmljZSA9ICZkZXYtPnBkZXYtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0g JmRldi0+cGRldi0+ZGV2OwogCiAJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGRldl9wcml2KTsK IAlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmZGV2X3ByaXYtPnBtLndha2VyZWZfY291bnQpKQog CQlhdG9taWNfaW5jKCZkZXZfcHJpdi0+cG0uYXRvbWljX3NlcSk7CiAKLQlwbV9ydW50aW1lX21h cmtfbGFzdF9idXN5KGRldmljZSk7Ci0JcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoZGV2aWNl KTsKKwlwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGtkZXYpOworCXBtX3J1bnRpbWVfcHV0X2F1 dG9zdXNwZW5kKGtkZXYpOwogfQogCiAvKioKQEAgLTI3NTcsMTAgKzI3NTcsMTAgQEAgdm9pZCBp bnRlbF9ydW50aW1lX3BtX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB2 b2lkIGludGVsX3J1bnRpbWVfcG1fZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Ci0Jc3Ry dWN0IGRldmljZSAqZGV2aWNlID0gJmRldi0+cGRldi0+ZGV2OworCXN0cnVjdCBkZXZpY2UgKmtk ZXYgPSAmZGV2LT5wZGV2LT5kZXY7CiAKLQlwbV9ydW50aW1lX3NldF9hdXRvc3VzcGVuZF9kZWxh eShkZXZpY2UsIDEwMDAwKTsgLyogMTBzICovCi0JcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShk ZXZpY2UpOworCXBtX3J1bnRpbWVfc2V0X2F1dG9zdXNwZW5kX2RlbGF5KGtkZXYsIDEwMDAwKTsg LyogMTBzICovCisJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShrZGV2KTsKIAogCS8qCiAJICog VGFrZSBhIHBlcm1hbmVudCByZWZlcmVuY2UgdG8gZGlzYWJsZSB0aGUgUlBNIGZ1bmN0aW9uYWxp dHkgYW5kIGRyb3AKQEAgLTI3NjksMTAgKzI3NjksMTAgQEAgdm9pZCBpbnRlbF9ydW50aW1lX3Bt X2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogcGxhdGZvcm1z IHdpdGhvdXQgUlBNIHN1cHBvcnQuCiAJICovCiAJaWYgKCFIQVNfUlVOVElNRV9QTShkZXYpKSB7 Ci0JCXBtX3J1bnRpbWVfZG9udF91c2VfYXV0b3N1c3BlbmQoZGV2aWNlKTsKLQkJcG1fcnVudGlt ZV9nZXRfc3luYyhkZXZpY2UpOworCQlwbV9ydW50aW1lX2RvbnRfdXNlX2F1dG9zdXNwZW5kKGtk ZXYpOworCQlwbV9ydW50aW1lX2dldF9zeW5jKGtkZXYpOwogCX0gZWxzZSB7Ci0JCXBtX3J1bnRp bWVfdXNlX2F1dG9zdXNwZW5kKGRldmljZSk7CisJCXBtX3J1bnRpbWVfdXNlX2F1dG9zdXNwZW5k KGtkZXYpOwogCX0KIAogCS8qCkBAIC0yNzgwLDYgKzI3ODAsNSBAQCB2b2lkIGludGVsX3J1bnRp bWVfcG1fZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBXZSBk cm9wIHRoYXQgaGVyZSBhbmQgd2lsbCByZWFjcXVpcmUgaXQgZHVyaW5nIHVubG9hZGluZyBpbgog CSAqIGludGVsX3Bvd2VyX2RvbWFpbnNfZmluaSgpLgogCSAqLwotCXBtX3J1bnRpbWVfcHV0X2F1 dG9zdXNwZW5kKGRldmljZSk7CisJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoa2Rldik7CiB9 Ci0KLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK