From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: [PATCH 3/5] drm/i915: sysfs spring cleaning Date: Mon, 8 Aug 2016 16:19:59 +0300 Message-ID: <1470662401-30347-4-git-send-email-david.weinehall@linux.intel.com> References: <1470662401-30347-1-git-send-email-david.weinehall@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 506E66E338 for ; Mon, 8 Aug 2016 13:20:05 +0000 (UTC) In-Reply-To: <1470662401-30347-1-git-send-email-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 UGFzcyBkZXZfcHJpdiBpbnN0ZWFkIG9mIGRldiB0byBhbGwgZmVhdHVyZSBtYWNyb3MgKElTXywg SEFTXywKSU5URUxfLCBldGMuKS4gVGhpcyBoYXMgdGhlIHNpZGUgZWZmZWN0IHRoYXQgYSBidW5j aCBvZiBmdW5jdGlvbnMKbm93IGdldCBkZXZfcHJpdiBwYXNzZWQgaW5zdGVhZCBvZiBkZXYuCgpU aGUgbWFpbiB1c2Ugb2Yga2Rldl90b19kcm1fbWlub3IoKSB3YXMgYXMgYW4gaW50ZXJtZWRpYXRl IHN0ZXAKd2hlbiBleHRyYWN0aW5nIGRldl9wcml2LCBzbyBtYWtlIHRoYXQgaGVscGVyIGRvIHRo YXQgYml0IHRvbywKYW5kIHJlbmFtZSBpdCBrZGV2X3RvX2k5MTVfZG0oKSAodG8gZGlmZmVyZW50 aWF0ZSBpdCBmcm9tCmtkZXZfdG9faTkxNSgpLCB3aGljaCBnb2VzIGFib3V0IHRoaXMgaW4gYSBk aWZmZXJlbnQsIG5vbi1jb21wYXRpYmxlLAp3YXkpLgoKQWxsIGNhbGxzIHRvIElOVEVMX0lORk8o KS0+Z2VuIGhhdmUgYmVlbiByZXBsYWNlZCB3aXRoCklOVEVMX0dFTigpLgoKU2lnbmVkLW9mZi1i eTogRGF2aWQgV2VpbmVoYWxsIDxkYXZpZC53ZWluZWhhbGxAbGludXguaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICB8ICAgNCArLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3N5c2ZzLmMgfCAxNDggKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDMg ZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgODcgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMKaW5kZXggZTMyNGNkMGRiZmE5Li41ZTkzMjVlNGIxZTUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYwpAQCAtMTEzMSw3ICsxMTMxLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9k cml2ZXJfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCS8qIFJl dmVhbCBvdXIgcHJlc2VuY2UgdG8gdXNlcnNwYWNlICovCiAJaWYgKGRybV9kZXZfcmVnaXN0ZXIo ZGV2LCAwKSA9PSAwKSB7CiAJCWk5MTVfZGVidWdmc19yZWdpc3RlcihkZXZfcHJpdik7Ci0JCWk5 MTVfc2V0dXBfc3lzZnMoZGV2KTsKKwkJaTkxNV9zZXR1cF9zeXNmcyhkZXZfcHJpdik7CiAJfSBl bHNlCiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIHJlZ2lzdGVyIGRyaXZlciBmb3IgdXNlcnNwYWNl IGFjY2VzcyFcbiIpOwogCkBAIC0xMTY4LDcgKzExNjgsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2Ry aXZlcl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlhY3Bp X3ZpZGVvX3VucmVnaXN0ZXIoKTsKIAlpbnRlbF9vcHJlZ2lvbl91bnJlZ2lzdGVyKGRldl9wcml2 KTsKIAotCWk5MTVfdGVhcmRvd25fc3lzZnMoJmRldl9wcml2LT5kcm0pOworCWk5MTVfdGVhcmRv d25fc3lzZnMoZGV2X3ByaXYpOwogCWk5MTVfZGVidWdmc191bnJlZ2lzdGVyKGRldl9wcml2KTsK IAlkcm1fZGV2X3VucmVnaXN0ZXIoJmRldl9wcml2LT5kcm0pOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAppbmRleCA0OTc1ZGU3NWUyYTEuLjc1MWYyYjRkN2I0YSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCkBAIC0zNTMxLDggKzM1MzEsOCBAQCBleHRlcm4gaW50IGk5MTVfc2F2ZV9zdGF0ZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4dGVybiBpbnQgaTkxNV9yZXN0b3JlX3N0YXRlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCiAvKiBpOTE1X3N5c2ZzLmMgKi8KLXZvaWQgaTkxNV9z ZXR1cF9zeXNmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2X3ByaXYpOwotdm9pZCBpOTE1X3RlYXJk b3duX3N5c2ZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXZfcHJpdik7Cit2b2lkIGk5MTVfc2V0dXBf c3lzZnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaTkxNV90ZWFy ZG93bl9zeXNmcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogCiAvKiBpbnRl bF9pMmMuYyAqLwogZXh0ZXJuIGludCBpbnRlbF9zZXR1cF9nbWJ1cyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwppbmRleCAwNWNiOTViZjJmNGIuLjg3 MzY4MjAyZjNjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwpAQCAtMzIsMTYgKzMyLDE2 IEBACiAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKIAotc3Rh dGljIGlubGluZSBzdHJ1Y3QgZHJtX21pbm9yICprZGV2X3RvX2RybV9taW5vcihzdHJ1Y3QgZGV2 aWNlICprZGV2KQorc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqa2Rldl90 b19pOTE1X2RtKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0JcmV0dXJuIGRldl9nZXRfZHJ2ZGF0 YShrZGV2KTsKKwlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGRldl9nZXRfZHJ2ZGF0YShrZGV2 KTsKKwlyZXR1cm4gdG9faTkxNShtaW5vci0+ZGV2KTsKIH0KIAogI2lmZGVmIENPTkZJR19QTQot c3RhdGljIHUzMiBjYWxjX3Jlc2lkZW5jeShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorc3RhdGlj IHUzMiBjYWxjX3Jlc2lkZW5jeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ CQkgIGk5MTVfcmVnX3QgcmVnKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKIAl1NjQgcmF3X3RpbWU7IC8qIDMyYiB2YWx1ZSBtYXkgb3ZlcmZs b3cgZHVyaW5nIGZpeGVkIHBvaW50IG1hdGggKi8KIAl1NjQgdW5pdHMgPSAxMjhVTEwsIGRpdiA9 IDEwMDAwMFVMTDsKIAl1MzIgcmV0OwpAQCAtNTIsMTMgKzUyLDEzIEBAIHN0YXRpYyB1MzIgY2Fs Y19yZXNpZGVuY3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnRlbF9ydW50aW1lX3BtX2dl dChkZXZfcHJpdik7CiAKIAkvKiBPbiBWTFYgYW5kIENIViwgcmVzaWRlbmN5IHRpbWUgaXMgaW4g Q1ogdW5pdHMgcmF0aGVyIHRoYW4gMS4yOHVzICovCi0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8 fCBJU19DSEVSUllWSUVXKGRldikpIHsKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwg SVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKIAkJdW5pdHMgPSAxOwogCQlkaXYgPSBkZXZfcHJp di0+Y3pjbGtfZnJlcTsKIAogCQlpZiAoSTkxNV9SRUFEKFZMVl9DT1VOVEVSX0NPTlRST0wpICYg VkxWX0NPVU5UX1JBTkdFX0hJR0gpCiAJCQl1bml0cyA8PD0gODsKLQl9IGVsc2UgaWYgKElTX0JS T1hUT04oZGV2KSkgeworCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKIAkJdW5p dHMgPSAxOwogCQlkaXYgPSAxMjAwOwkJLyogODMzLjMzbnMgKi8KIAl9CkBAIC03OSwzMiArNzks MzIgQEAgc2hvd19yYzZfbWFzayhzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0 dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogc3RhdGljIHNzaXplX3QKIHNob3dfcmM2X21zKHN0 cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpi dWYpCiB7Ci0Jc3RydWN0IGRybV9taW5vciAqZG1pbm9yID0gZGV2X2dldF9kcnZkYXRhKGtkZXYp OwotCXUzMiByYzZfcmVzaWRlbmN5ID0gY2FsY19yZXNpZGVuY3koZG1pbm9yLT5kZXYsIEdFTjZf R1RfR0ZYX1JDNik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl90 b19pOTE1X2RtKGtkZXYpOworCXUzMiByYzZfcmVzaWRlbmN5ID0gY2FsY19yZXNpZGVuY3koZGV2 X3ByaXYsIEdFTjZfR1RfR0ZYX1JDNik7CiAJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpF LCAiJXVcbiIsIHJjNl9yZXNpZGVuY3kpOwogfQogCiBzdGF0aWMgc3NpemVfdAogc2hvd19yYzZw X21zKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBj aGFyICpidWYpCiB7Ci0Jc3RydWN0IGRybV9taW5vciAqZG1pbm9yID0ga2Rldl90b19kcm1fbWlu b3Ioa2Rldik7Ci0JdTMyIHJjNnBfcmVzaWRlbmN5ID0gY2FsY19yZXNpZGVuY3koZG1pbm9yLT5k ZXYsIEdFTjZfR1RfR0ZYX1JDNnApOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGtkZXZfdG9faTkxNV9kbShrZGV2KTsKKwl1MzIgcmM2cF9yZXNpZGVuY3kgPSBjYWxjX3Jl c2lkZW5jeShkZXZfcHJpdiwgR0VONl9HVF9HRlhfUkM2cCk7CiAJcmV0dXJuIHNucHJpbnRmKGJ1 ZiwgUEFHRV9TSVpFLCAiJXVcbiIsIHJjNnBfcmVzaWRlbmN5KTsKIH0KIAogc3RhdGljIHNzaXpl X3QKIHNob3dfcmM2cHBfbXMoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKLQlzdHJ1Y3QgZHJtX21pbm9yICpkbWlub3IgPSBr ZGV2X3RvX2RybV9taW5vcihrZGV2KTsKLQl1MzIgcmM2cHBfcmVzaWRlbmN5ID0gY2FsY19yZXNp ZGVuY3koZG1pbm9yLT5kZXYsIEdFTjZfR1RfR0ZYX1JDNnBwKTsKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTVfZG0oa2Rldik7CisJdTMyIHJjNnBwX3Jl c2lkZW5jeSA9IGNhbGNfcmVzaWRlbmN5KGRldl9wcml2LCBHRU42X0dUX0dGWF9SQzZwcCk7CiAJ cmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXVcbiIsIHJjNnBwX3Jlc2lkZW5jeSk7 CiB9CiAKIHN0YXRpYyBzc2l6ZV90CiBzaG93X21lZGlhX3JjNl9tcyhzdHJ1Y3QgZGV2aWNlICpr ZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewotCXN0cnVj dCBkcm1fbWlub3IgKmRtaW5vciA9IGRldl9nZXRfZHJ2ZGF0YShrZGV2KTsKLQl1MzIgcmM2X3Jl c2lkZW5jeSA9IGNhbGNfcmVzaWRlbmN5KGRtaW5vci0+ZGV2LCBWTFZfR1RfTUVESUFfUkM2KTsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTVfZG0oa2Rl dik7CisJdTMyIHJjNl9yZXNpZGVuY3kgPSBjYWxjX3Jlc2lkZW5jeShkZXZfcHJpdiwgVkxWX0dU X01FRElBX1JDNik7CiAJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXVcbiIsIHJj Nl9yZXNpZGVuY3kpOwogfQogCkBAIC0xNDcsOSArMTQ3LDkgQEAgc3RhdGljIHN0cnVjdCBhdHRy aWJ1dGVfZ3JvdXAgbWVkaWFfcmM2X2F0dHJfZ3JvdXAgPSB7CiB9OwogI2VuZGlmCiAKLXN0YXRp YyBpbnQgbDNfYWNjZXNzX3ZhbGlkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGxvZmZfdCBvZmZz ZXQpCitzdGF0aWMgaW50IGwzX2FjY2Vzc192YWxpZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGxvZmZfdCBvZmZzZXQpCiB7Ci0JaWYgKCFIQVNfTDNfRFBGKGRldikpCisJaWYg KCFIQVNfTDNfRFBGKGRldl9wcml2KSkKIAkJcmV0dXJuIC1FUEVSTTsKIAogCWlmIChvZmZzZXQg JSA0ICE9IDApCkBAIC0xNjcsMTUgKzE2NywxNCBAQCBpOTE1X2wzX3JlYWQoc3RydWN0IGZpbGUg KmZpbHAsIHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCSAgICAgbG9mZl90IG9mZnNldCwgc2l6ZV90 IGNvdW50KQogewogCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSBrb2JqX3RvX2Rldihrb2JqKTsKLQlz dHJ1Y3QgZHJtX21pbm9yICpkbWlub3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2KTsKLQlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gZG1pbm9yLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGtkZXZfdG9faTkxNV9kbShrZGV2KTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gJmRldl9wcml2LT5kcm07CiAJaW50IHNsaWNlID0gKGludCkodWludHB0cl90KWF0dHItPnBy aXZhdGU7CiAJaW50IHJldDsKIAogCWNvdW50ID0gcm91bmRfZG93bihjb3VudCwgNCk7CiAKLQly ZXQgPSBsM19hY2Nlc3NfdmFsaWQoZGV2LCBvZmZzZXQpOworCXJldCA9IGwzX2FjY2Vzc192YWxp ZChkZXZfcHJpdiwgb2Zmc2V0KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0yMDMs MTggKzIwMiwxNyBAQCBpOTE1X2wzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29i amVjdCAqa29iaiwKIAkgICAgICBsb2ZmX3Qgb2Zmc2V0LCBzaXplX3QgY291bnQpCiB7CiAJc3Ry dWN0IGRldmljZSAqa2RldiA9IGtvYmpfdG9fZGV2KGtvYmopOwotCXN0cnVjdCBkcm1fbWlub3Ig KmRtaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBkbWlub3ItPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl90 b19pOTE1X2RtKGtkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRy bTsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OwogCXUzMiAqdGVtcCA9IE5VTEw7IC8q IEp1c3QgaGVyZSB0byBtYWtlIGhhbmRsaW5nIGZhaWx1cmVzIGVhc3kgKi8KIAlpbnQgc2xpY2Ug PSAoaW50KSh1aW50cHRyX3QpYXR0ci0+cHJpdmF0ZTsKIAlpbnQgcmV0OwogCi0JaWYgKCFIQVNf SFdfQ09OVEVYVFMoZGV2KSkKKwlpZiAoIUhBU19IV19DT05URVhUUyhkZXZfcHJpdikpCiAJCXJl dHVybiAtRU5YSU87CiAKLQlyZXQgPSBsM19hY2Nlc3NfdmFsaWQoZGV2LCBvZmZzZXQpOworCXJl dCA9IGwzX2FjY2Vzc192YWxpZChkZXZfcHJpdiwgb2Zmc2V0KTsKIAlpZiAocmV0KQogCQlyZXR1 cm4gcmV0OwogCkBAIC0yNjksOSArMjY3LDcgQEAgc3RhdGljIHN0cnVjdCBiaW5fYXR0cmlidXRl IGRwZl9hdHRyc18xID0gewogc3RhdGljIHNzaXplX3QgZ3RfYWN0X2ZyZXFfbWh6X3Nob3coc3Ry dWN0IGRldmljZSAqa2RldiwKIAkJCQkgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIs IGNoYXIgKmJ1ZikKIHsKLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21p bm9yKGtkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtaW5vci0+ZGV2OwotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTVfZG0oa2Rldik7CiAJaW50IHJl dDsKIAogCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKQEAgLTMwMSw5ICsyOTcsNyBA QCBzdGF0aWMgc3NpemVfdCBndF9hY3RfZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2aWNlICprZGV2 LAogc3RhdGljIHNzaXplX3QgZ3RfY3VyX2ZyZXFfbWh6X3Nob3coc3RydWN0IGRldmljZSAqa2Rl diwKIAkJCQkgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsK LQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtaW5vci0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTVfZG0oa2Rldik7CiAKIAlyZXR1cm4gc25wcmludGYoYnVm LCBQQUdFX1NJWkUsICIlZFxuIiwKIAkJCWludGVsX2dwdV9mcmVxKGRldl9wcml2LApAQCAtMzEy LDggKzMwNiw3IEBAIHN0YXRpYyBzc2l6ZV90IGd0X2N1cl9mcmVxX21oel9zaG93KHN0cnVjdCBk ZXZpY2UgKmtkZXYsCiAKIHN0YXRpYyBzc2l6ZV90IGd0X2Jvb3N0X2ZyZXFfbWh6X3Nob3coc3Ry dWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1 ZikKIHsKLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYp OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUobWlub3ItPmRl dik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl90b19pOTE1X2Rt KGtkZXYpOwogCiAJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJWRcbiIsCiAJCQlp bnRlbF9ncHVfZnJlcShkZXZfcHJpdiwKQEAgLTMyNCw5ICszMTcsNyBAQCBzdGF0aWMgc3NpemVf dCBndF9ib29zdF9mcmVxX21oel9zdG9yZShzdHJ1Y3QgZGV2aWNlICprZGV2LAogCQkJCSAgICAg ICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkJCQkgICAgICAgY29uc3QgY2hhciAq YnVmLCBzaXplX3QgY291bnQpCiB7Ci0Jc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBrZGV2X3Rv X2RybV9taW5vcihrZGV2KTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWlub3ItPmRldjsK LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl90b19pOTE1X2RtKGtkZXYpOwog CXUzMiB2YWw7CiAJc3NpemVfdCByZXQ7CiAKQEAgLTM0OSw5ICszNDAsNyBAQCBzdGF0aWMgc3Np emVfdCBndF9ib29zdF9mcmVxX21oel9zdG9yZShzdHJ1Y3QgZGV2aWNlICprZGV2LAogc3RhdGlj IHNzaXplX3Qgdmx2X3JwZV9mcmVxX21oel9zaG93KHN0cnVjdCBkZXZpY2UgKmtkZXYsCiAJCQkJ ICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewotCXN0cnVj dCBkcm1fbWlub3IgKm1pbm9yID0ga2Rldl90b19kcm1fbWlub3Ioa2Rldik7Ci0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IG1pbm9yLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGtkZXZfdG9faTkxNV9kbShrZGV2KTsKIAogCXJldHVybiBzbnByaW50ZihidWYsIFBBR0Vf U0laRSwgIiVkXG4iLAogCQkJaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsCkBAIC0zNjAsOSArMzQ5 LDcgQEAgc3RhdGljIHNzaXplX3Qgdmx2X3JwZV9mcmVxX21oel9zaG93KHN0cnVjdCBkZXZpY2Ug KmtkZXYsCiAKIHN0YXRpYyBzc2l6ZV90IGd0X21heF9mcmVxX21oel9zaG93KHN0cnVjdCBkZXZp Y2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7Ci0J c3RydWN0IGRybV9taW5vciAqbWlub3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2KTsKLQlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gbWlub3ItPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0ga2Rldl90b19pOTE1X2RtKGtkZXYpOwogCiAJcmV0dXJuIHNucHJpbnRmKGJ1Ziwg UEFHRV9TSVpFLCAiJWRcbiIsCiAJCQlpbnRlbF9ncHVfZnJlcShkZXZfcHJpdiwKQEAgLTM3Myw5 ICszNjAsNyBAQCBzdGF0aWMgc3NpemVfdCBndF9tYXhfZnJlcV9taHpfc3RvcmUoc3RydWN0IGRl dmljZSAqa2RldiwKIAkJCQkgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQkJ CSAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCiB7Ci0Jc3RydWN0IGRybV9taW5v ciAqbWlub3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2KTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gbWlub3ItPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl90 b19pOTE1X2RtKGtkZXYpOwogCXUzMiB2YWw7CiAJc3NpemVfdCByZXQ7CiAKQEAgLTQyMSw5ICs0 MDYsNyBAQCBzdGF0aWMgc3NpemVfdCBndF9tYXhfZnJlcV9taHpfc3RvcmUoc3RydWN0IGRldmlj ZSAqa2RldiwKIAogc3RhdGljIHNzaXplX3QgZ3RfbWluX2ZyZXFfbWh6X3Nob3coc3RydWN0IGRl dmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsK LQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtaW5vci0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTVfZG0oa2Rldik7CiAKIAlyZXR1cm4gc25wcmludGYoYnVm LCBQQUdFX1NJWkUsICIlZFxuIiwKIAkJCWludGVsX2dwdV9mcmVxKGRldl9wcml2LApAQCAtNDM0 LDkgKzQxNyw3IEBAIHN0YXRpYyBzc2l6ZV90IGd0X21pbl9mcmVxX21oel9zdG9yZShzdHJ1Y3Qg ZGV2aWNlICprZGV2LAogCQkJCSAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJ CQkJICAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKLQlzdHJ1Y3QgZHJtX21p bm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBtaW5vci0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2 X3RvX2k5MTVfZG0oa2Rldik7CiAJdTMyIHZhbDsKIAlzc2l6ZV90IHJldDsKIApAQCAtNDkzLDkg KzQ3NCw3IEBAIHN0YXRpYyBERVZJQ0VfQVRUUihndF9SUG5fZnJlcV9taHosIFNfSVJVR08sIGd0 X3JwX21oel9zaG93LCBOVUxMKTsKIC8qIEZvciBub3cgd2UgaGF2ZSBhIHN0YXRpYyBudW1iZXIg b2YgUlAgc3RhdGVzICovCiBzdGF0aWMgc3NpemVfdCBndF9ycF9taHpfc2hvdyhzdHJ1Y3QgZGV2 aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewot CXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yID0ga2Rldl90b19kcm1fbWlub3Ioa2Rldik7Ci0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IG1pbm9yLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGtkZXZfdG9faTkxNV9kbShrZGV2KTsKIAl1MzIgdmFsOwogCiAJaWYgKGF0dHIg PT0gJmRldl9hdHRyX2d0X1JQMF9mcmVxX21oeikKQEAgLTU0MSw4ICs1MjAsOCBAQCBzdGF0aWMg c3NpemVfdCBlcnJvcl9zdGF0ZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVj dCAqa29iaiwKIHsKIAogCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSBrb2JqX3RvX2Rldihrb2JqKTsK LQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtaW5vci0+ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNV9kbShrZGV2KTsKKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gJmRldl9wcml2LT5kcm07CiAJc3RydWN0IGk5MTVfZXJyb3Jfc3RhdGVfZmlsZV9w cml2IGVycm9yX3ByaXY7CiAJc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiBlcnJvcl9z dHI7CiAJc3NpemVfdCByZXRfY291bnQgPSAwOwpAQCAtNTc2LDggKzU1NSw4IEBAIHN0YXRpYyBz c2l6ZV90IGVycm9yX3N0YXRlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qga29iamVj dCAqa29iaiwKIAkJCQkgbG9mZl90IG9mZiwgc2l6ZV90IGNvdW50KQogewogCXN0cnVjdCBkZXZp Y2UgKmtkZXYgPSBrb2JqX3RvX2Rldihrb2JqKTsKLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9 IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtaW5v ci0+ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkx NV9kbShrZGV2KTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07CiAJ aW50IHJldDsKIAogCURSTV9ERUJVR19EUklWRVIoIlJlc2V0dGluZyBlcnJvciBzdGF0ZVxuIik7 CkBAIC02MDAsMzcgKzU3OSwzOCBAQCBzdGF0aWMgc3RydWN0IGJpbl9hdHRyaWJ1dGUgZXJyb3Jf c3RhdGVfYXR0ciA9IHsKIAkud3JpdGUgPSBlcnJvcl9zdGF0ZV93cml0ZSwKIH07CiAKLXZvaWQg aTkxNV9zZXR1cF9zeXNmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQordm9pZCBpOTE1X3NldHVw X3N5c2ZzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKKwlzdHJ1Y3QgZGV2 aWNlICprZGV2ID0gZGV2X3ByaXYtPmRybS5wcmltYXJ5LT5rZGV2OwogCWludCByZXQ7CiAKICNp ZmRlZiBDT05GSUdfUE0KLQlpZiAoSEFTX1JDNihkZXYpKSB7Ci0JCXJldCA9IHN5c2ZzX21lcmdl X2dyb3VwKCZkZXYtPnByaW1hcnktPmtkZXYtPmtvYmosCisJaWYgKEhBU19SQzYoZGV2X3ByaXYp KSB7CisJCXJldCA9IHN5c2ZzX21lcmdlX2dyb3VwKCZrZGV2LT5rb2JqLAogCQkJCQkmcmM2X2F0 dHJfZ3JvdXApOwogCQlpZiAocmV0KQogCQkJRFJNX0VSUk9SKCJSQzYgcmVzaWRlbmN5IHN5c2Zz IHNldHVwIGZhaWxlZFxuIik7CiAJfQotCWlmIChIQVNfUkM2cChkZXYpKSB7Ci0JCXJldCA9IHN5 c2ZzX21lcmdlX2dyb3VwKCZkZXYtPnByaW1hcnktPmtkZXYtPmtvYmosCisJaWYgKEhBU19SQzZw KGRldl9wcml2KSkgeworCQlyZXQgPSBzeXNmc19tZXJnZV9ncm91cCgma2Rldi0+a29iaiwKIAkJ CQkJJnJjNnBfYXR0cl9ncm91cCk7CiAJCWlmIChyZXQpCiAJCQlEUk1fRVJST1IoIlJDNnAgcmVz aWRlbmN5IHN5c2ZzIHNldHVwIGZhaWxlZFxuIik7CiAJfQotCWlmIChJU19WQUxMRVlWSUVXKGRl dikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSB7Ci0JCXJldCA9IHN5c2ZzX21lcmdlX2dyb3VwKCZk ZXYtPnByaW1hcnktPmtkZXYtPmtvYmosCisJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8 IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CisJCXJldCA9IHN5c2ZzX21lcmdlX2dyb3VwKCZr ZGV2LT5rb2JqLAogCQkJCQkmbWVkaWFfcmM2X2F0dHJfZ3JvdXApOwogCQlpZiAocmV0KQogCQkJ RFJNX0VSUk9SKCJNZWRpYSBSQzYgcmVzaWRlbmN5IHN5c2ZzIHNldHVwIGZhaWxlZFxuIik7CiAJ fQogI2VuZGlmCi0JaWYgKEhBU19MM19EUEYoZGV2KSkgewotCQlyZXQgPSBkZXZpY2VfY3JlYXRl X2Jpbl9maWxlKGRldi0+cHJpbWFyeS0+a2RldiwgJmRwZl9hdHRycyk7CisJaWYgKEhBU19MM19E UEYoZGV2X3ByaXYpKSB7CisJCXJldCA9IGRldmljZV9jcmVhdGVfYmluX2ZpbGUoa2RldiwgJmRw Zl9hdHRycyk7CiAJCWlmIChyZXQpCiAJCQlEUk1fRVJST1IoImwzIHBhcml0eSBzeXNmcyBzZXR1 cCBmYWlsZWRcbiIpOwogCi0JCWlmIChOVU1fTDNfU0xJQ0VTKGRldikgPiAxKSB7Ci0JCQlyZXQg PSBkZXZpY2VfY3JlYXRlX2Jpbl9maWxlKGRldi0+cHJpbWFyeS0+a2RldiwKKwkJaWYgKE5VTV9M M19TTElDRVMoZGV2X3ByaXYpID4gMSkgeworCQkJcmV0ID0gZGV2aWNlX2NyZWF0ZV9iaW5fZmls ZShrZGV2LAogCQkJCQkJICAgICAmZHBmX2F0dHJzXzEpOwogCQkJaWYgKHJldCkKIAkJCQlEUk1f RVJST1IoImwzIHBhcml0eSBzbGljZSAxIHNldHVwIGZhaWxlZFxuIik7CkBAIC02MzgsMzAgKzYx OCwzMiBAQCB2b2lkIGk5MTVfc2V0dXBfc3lzZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9 CiAKIAlyZXQgPSAwOwotCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhk ZXYpKQotCQlyZXQgPSBzeXNmc19jcmVhdGVfZmlsZXMoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29i aiwgdmx2X2F0dHJzKTsKLQllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KQotCQly ZXQgPSBzeXNmc19jcmVhdGVfZmlsZXMoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwgZ2VuNl9h dHRycyk7CisJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKQorCQlyZXQgPSBzeXNmc19jcmVhdGVfZmlsZXMoJmtkZXYtPmtvYmosIHZsdl9hdHRy cyk7CisJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KQorCQlyZXQgPSBzeXNmc19j cmVhdGVfZmlsZXMoJmtkZXYtPmtvYmosIGdlbjZfYXR0cnMpOwogCWlmIChyZXQpCiAJCURSTV9F UlJPUigiUlBTIHN5c2ZzIHNldHVwIGZhaWxlZFxuIik7CiAKLQlyZXQgPSBzeXNmc19jcmVhdGVf YmluX2ZpbGUoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwKKwlyZXQgPSBzeXNmc19jcmVhdGVf YmluX2ZpbGUoJmtkZXYtPmtvYmosCiAJCQkJICAgICZlcnJvcl9zdGF0ZV9hdHRyKTsKIAlpZiAo cmV0KQogCQlEUk1fRVJST1IoImVycm9yX3N0YXRlIHN5c2ZzIHNldHVwIGZhaWxlZFxuIik7CiB9 CiAKLXZvaWQgaTkxNV90ZWFyZG93bl9zeXNmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQordm9p ZCBpOTE1X3RlYXJkb3duX3N5c2ZzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IHsKLQlzeXNmc19yZW1vdmVfYmluX2ZpbGUoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwgJmVy cm9yX3N0YXRlX2F0dHIpOwotCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklF VyhkZXYpKQotCQlzeXNmc19yZW1vdmVfZmlsZXMoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwg dmx2X2F0dHJzKTsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gZGV2X3ByaXYtPmRybS5wcmltYXJ5 LT5rZGV2OworCisJc3lzZnNfcmVtb3ZlX2Jpbl9maWxlKCZrZGV2LT5rb2JqLCAmZXJyb3Jfc3Rh dGVfYXR0cik7CisJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVco ZGV2X3ByaXYpKQorCQlzeXNmc19yZW1vdmVfZmlsZXMoJmtkZXYtPmtvYmosIHZsdl9hdHRycyk7 CiAJZWxzZQotCQlzeXNmc19yZW1vdmVfZmlsZXMoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwg Z2VuNl9hdHRycyk7Ci0JZGV2aWNlX3JlbW92ZV9iaW5fZmlsZShkZXYtPnByaW1hcnktPmtkZXYs ICAmZHBmX2F0dHJzXzEpOwotCWRldmljZV9yZW1vdmVfYmluX2ZpbGUoZGV2LT5wcmltYXJ5LT5r ZGV2LCAgJmRwZl9hdHRycyk7CisJCXN5c2ZzX3JlbW92ZV9maWxlcygma2Rldi0+a29iaiwgZ2Vu Nl9hdHRycyk7CisJZGV2aWNlX3JlbW92ZV9iaW5fZmlsZShrZGV2LCAmZHBmX2F0dHJzXzEpOwor CWRldmljZV9yZW1vdmVfYmluX2ZpbGUoa2RldiwgJmRwZl9hdHRycyk7CiAjaWZkZWYgQ09ORklH X1BNCi0Jc3lzZnNfdW5tZXJnZV9ncm91cCgmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLCAmcmM2 X2F0dHJfZ3JvdXApOwotCXN5c2ZzX3VubWVyZ2VfZ3JvdXAoJmRldi0+cHJpbWFyeS0+a2Rldi0+ a29iaiwgJnJjNnBfYXR0cl9ncm91cCk7CisJc3lzZnNfdW5tZXJnZV9ncm91cCgma2Rldi0+a29i aiwgJnJjNl9hdHRyX2dyb3VwKTsKKwlzeXNmc191bm1lcmdlX2dyb3VwKCZrZGV2LT5rb2JqLCAm cmM2cF9hdHRyX2dyb3VwKTsKICNlbmRpZgogfQotLSAKMi44LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=