From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Paauwe Subject: [PATCH 1/3] drm/i915: Make 48bit full ppgtt configuration generic (v9) Date: Wed, 7 Nov 2018 14:28:03 -0800 Message-ID: <20181107222805.96638-1-bob.j.paauwe@intel.com> References: <20181031155415.579111-1-bob.j.paauwe@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 195396E536 for ; Wed, 7 Nov 2018 22:28:05 +0000 (UTC) In-Reply-To: <20181031155415.579111-1-bob.j.paauwe@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 Cc: Michel Thierry , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org NDggYml0IHBwZ3R0IGRldmljZSBjb25maWd1cmF0aW9uIGlzIHJlYWxseSBqdXN0IGV4dGVuZGVk IGFkZHJlc3MKcmFuZ2UgZnVsbCBwcGd0dCBhbmQgbWF5IGFjdHVhbGx5IGJlIHNvbWV0aGluZyBv dGhlciB0aGFuIDQ4IGJpdHMuCgpDaGFuZ2UgSEFTX0ZVTExfNDhCSVRfUFBHVFQoKSB0byBIQVNf NExWTF9QUEdUVCgpIHRvIGJldHRlcgpkZXNjcmliZSB0aGF0IGEgNCBsZXZlbCB3YWxrIHRhYmxl IGV4dGVuZGVkIHJhbmdlIFBQR1RUIGlzIGJlaW5nCnVzZWQuIEFkZCBhIG5ldyBkZXZpY2UgaW5m byBmaWVsZCB0aGF0IHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mCmJpdHMgdG8gcHJlcGFyZSBmb3Ig Y2FzZXMgd2hlcmUgdGhlIHJhbmdlIGlzIG5vdCAzMiBvciA0OCBiaXRzLgpBbHNvIHJlbmFtZSBv dGhlciBmdW5jdGlvbnMgYW5kIGNvbW1lbnRzIGZyb20gNDhiaXQgdG8gNC1sZXZlbC4KCk1ha2lu ZyB1c2Ugb2YgdGhlIGRldmljZSBpbmZvIGFkZHJlc3MgcmFuZ2UgZm9yIGdlbjYgaGlnaGxpZ2h0 cwpzaW11bGFyaXRpZXMgaW4gdGhlIGdlbjYgYW5kIGdlbjggY29kZSBwYXRocyBzbyBtb3ZlIHRo ZSBjb21tb24KY29kZSBpbiB0byBhIGNvbW1vbiBmdW5jdGlvbi4KCnYyOiBLZWVwIEhBU19GVUxM X1BQR1RUKCkgdW5jaGFuZ2VkIChDaHJpcykKdjM6IFNpbXBsaWZ5IGNvbmRpdGlvbiBpbiBnZW44 X3BwZ3R0X2NyZWF0ZSgpIChDaHJpcykKICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBsaW5lIGNvbmlu dWF0aW9ucyAoQm9iKQogICAgUmVuYW1lIGZ1bmN0aW9ucy9kZWZpbmVzL2NvbW1lbnRzIGZyb20g NDhiaXQgdG8gNGx2bCAoUm9kcmlnby9Cb2IpCnY0OiBSZW5hbWUgRlVMTF80TFZMX1BQR1RUIHRv IHNpbXBseSA0TFZMX1BQR1RUIChSb2RyaWdvKQogICAgQmUgZXhwbGlzZWQgaW4gc2V0dGluZyB2 bS50b3RhbCB0byAxVUxMIDw8IDMyIChSb2RyaWdvKQogICAgR2VuIDcgaXMgMzEgYml0cywgbm90 IDMyIChDaHJpcykKdjU6IE1vY2sgZGV2aWNlIGlzIDY0Yig2M2IpIG5vdCA0OGIgKENocmlzKQp2 NjogUmViYXNlIHRvIGxhdGVzdCBkcm0tdGlwIChCb2IpCnY3OiBDb21iaW5lIGNvbW1vbiBjb2Rl IGZvciBnZW42L2dlbjggcHBndHQgY3JlYXRlIChDaHJpcykKICAgIEltcHJvdmUgY29tbWVudCBv biBkZXZpY2UgaW5mbyBmaWVsZCAoQ2hyaXMpCnY4OiBndnQgaXMgYWN0dWFsbHkgZnVsbCBwcGd0 dCAoYm90aCAzLWx2bCBhbmQgNC1sdmwpIHNvIG5hbWUgY2FwCiAgICBkZWZpbmUgYXBwcm9wcmlh dGVseSAoQ2hyaXMpCnY5OiByZWJhc2Ugb24gbGF0ZXN0CgpTaWduZWQtb2ZmLWJ5OiBCb2IgUGFh dXdlIDxib2Iuai5wYWF1d2VAaW50ZWwuY29tPgpDQzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZp dmlAaW50ZWwuY29tPgpDQzogTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNv bT4KQ0M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d2dC92Z3B1LmMgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAgICAgICB8ICAgMiArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgICAgIHwgMTMwICsrKysrKysrLS0tLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggICAgICAgICAgIHwgICA0 ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jICAgICAgICAgICAgICAgfCAgIDYg KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wdmluZm8uaCAgICAgICAgICAgIHwgICAyICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYyAgICAgICAgICAgICAgfCAgIDQgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5oICAgICAgICAgICAgICB8ICAgMiArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYyAgICAgIHwgICAxICsKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmggICAgICB8ICAgMyArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMgICB8ICAgOCArLQogLi4uL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgIHwgICAyICsKIDE1IGZpbGVz IGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyksIDkxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC92Z3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dnQvdmdwdS5jCmluZGV4IGM2MjhiZTA1ZmJmZS4uNjAwMmRlZDAwNDJiIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvdmdwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d2dC92Z3B1LmMKQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBwb3B1bGF0ZV9wdmluZm9fcGFnZShz dHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKIAl2Z3B1X3ZyZWdfdCh2Z3B1LCB2Z3RpZl9yZWcoZGlz cGxheV9yZWFkeSkpID0gMDsKIAl2Z3B1X3ZyZWdfdCh2Z3B1LCB2Z3RpZl9yZWcodmd0X2lkKSkg PSB2Z3B1LT5pZDsKIAotCXZncHVfdnJlZ190KHZncHUsIHZndGlmX3JlZyh2Z3RfY2FwcykpID0g VkdUX0NBUFNfRlVMTF80OEJJVF9QUEdUVDsKKwl2Z3B1X3ZyZWdfdCh2Z3B1LCB2Z3RpZl9yZWco dmd0X2NhcHMpKSA9IFZHVF9DQVBTXzRMVkxfUFBHVFQ7CiAJdmdwdV92cmVnX3QodmdwdSwgdmd0 aWZfcmVnKHZndF9jYXBzKSkgfD0gVkdUX0NBUFNfSFdTUF9FTVVMQVRJT047CiAJdmdwdV92cmVn X3QodmdwdSwgdmd0aWZfcmVnKHZndF9jYXBzKSkgfD0gVkdUX0NBUFNfSFVHRV9HVFQ7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IGFjYjUxNjMwODI2Mi4uMDVmZThlMjg1MmJkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTEzNjcsNyArMTM2Nyw3IEBAIHN0YXRpYyBpbnQgaTkx NV9kcml2ZXJfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlp ZiAoSEFTX1BQR1RUKGRldl9wcml2KSkgewogCQlpZiAoaW50ZWxfdmdwdV9hY3RpdmUoZGV2X3By aXYpICYmCi0JCSAgICAhaW50ZWxfdmdwdV9oYXNfZnVsbF80OGJpdF9wcGd0dChkZXZfcHJpdikp IHsKKwkJICAgICFpbnRlbF92Z3B1X2hhc180bHZsX3BwZ3R0KGRldl9wcml2KSkgewogCQkJaTkx NV9yZXBvcnRfZXJyb3IoZGV2X3ByaXYsCiAJCQkJCSAgImluY29tcGF0aWJsZSB2R1BVIGZvdW5k LCBzdXBwb3J0IGZvciBpc29sYXRlZCBwcEdUVCByZXF1aXJlZFxuIik7CiAJCQlyZXR1cm4gLUVO WElPOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMGM4NDM4ZGUzYzFiLi45NzY0OWM1NjE0 YzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjU4Nyw3ICsyNTg3LDcgQEAgaW50ZWxf aW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJKElOVEVMX1BQ R1RUKGRldl9wcml2KSAhPSBJTlRFTF9QUEdUVF9OT05FKQogI2RlZmluZSBIQVNfRlVMTF9QUEdU VChkZXZfcHJpdikgXAogCShJTlRFTF9QUEdUVChkZXZfcHJpdikgPj0gSU5URUxfUFBHVFRfRlVM TCkKLSNkZWZpbmUgSEFTX0ZVTExfNDhCSVRfUFBHVFQoZGV2X3ByaXYpCVwKKyNkZWZpbmUgSEFT XzRMVkxfUFBHVFQoZGV2X3ByaXYpCVwKIAkoSU5URUxfUFBHVFQoZGV2X3ByaXYpID49IElOVEVM X1BQR1RUX0ZVTExfNExWTCkKIAogI2RlZmluZSBIQVNfUEFHRV9TSVpFUyhkZXZfcHJpdiwgc2l6 ZXMpICh7IFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCBiOTc5 NjNkYjAyODcuLjE4NTNlODJjZWJkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fY29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuYwpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyB1MzIgZGVmYXVsdF9kZXNjX3RlbXBs YXRlKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWRlc2MgPSBHRU44X0NU WF9WQUxJRCB8IEdFTjhfQ1RYX1BSSVZJTEVHRTsKIAogCWFkZHJlc3NfbW9kZSA9IElOVEVMX0xF R0FDWV8zMkJfQ09OVEVYVDsKLQlpZiAocHBndHQgJiYgaTkxNV92bV9pc180OGJpdCgmcHBndHQt PnZtKSkKKwlpZiAocHBndHQgJiYgaTkxNV92bV9pc180bHZsKCZwcGd0dC0+dm0pKQogCQlhZGRy ZXNzX21vZGUgPSBJTlRFTF9MRUdBQ1lfNjRCX0NPTlRFWFQ7CiAJZGVzYyB8PSBhZGRyZXNzX21v ZGUgPDwgR0VOOF9DVFhfQUREUkVTU0lOR19NT0RFX1NISUZUOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jCmluZGV4IGE5OGMyOTE0N2Q1ZS4uYjRkNWYyODQ3NGEyIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtNTc5LDEzICs1NzksMTMgQEAgc2V0dXBfc2NyYXRj aF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBnZnBfdCBnZnApCiAJICogcGFn ZS10YWJsZSBvcGVyYXRpbmcgaW4gNjRLIG1vZGUgbXVzdCBwb2ludCB0byBhIHByb3Blcmx5IGFs aWduZWQgNjRLCiAJICogcmVnaW9uLCBpbmNsdWRpbmcgYW55IFBURXMgd2hpY2ggaGFwcGVuIHRv IHBvaW50IHRvIHNjcmF0Y2guCiAJICoKLQkgKiBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgZm9yIHRo ZSA0OGIgUFBHVFQgd2hlcmUgd2Ugc3VwcG9ydAorCSAqIFRoaXMgaXMgb25seSByZWxldmFudCBm b3IgdGhlIDQtbGV2ZWwgUFBHVFQgd2hlcmUgd2Ugc3VwcG9ydAogCSAqIGh1Z2UtZ3R0LXBhZ2Vz LCBzZWUgYWxzbyBpOTE1X3ZtYV9pbnNlcnQoKS4gSG93ZXZlciwgYXMgd2Ugc2hhcmUgdGhlCiAJ ICogc2NyYXRjaCAocmVhZC1vbmx5KSBiZXR3ZWVuIGFsbCB2bSwgd2UgY3JlYXRlIG9uZSA2NGsg c2NyYXRjaCBwYWdlCiAJICogZm9yIGFsbC4KIAkgKi8KIAlzaXplID0gSTkxNV9HVFRfUEFHRV9T SVpFXzRLOwotCWlmIChpOTE1X3ZtX2lzXzQ4Yml0KHZtKSAmJgorCWlmIChpOTE1X3ZtX2lzXzRs dmwodm0pICYmCiAJICAgIEhBU19QQUdFX1NJWkVTKHZtLT5pOTE1LCBJOTE1X0dUVF9QQUdFX1NJ WkVfNjRLKSkgewogCQlzaXplID0gSTkxNV9HVFRfUEFHRV9TSVpFXzY0SzsKIAkJZ2ZwIHw9IF9f R0ZQX05PV0FSTjsKQEAgLTcyOSw3ICs3MjksNyBAQCBzdGF0aWMgdm9pZCBfX3BkcF9maW5pKHN0 cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBkcCkKIAogc3RhdGljIGlubGluZSBi b29sIHVzZV80bHZsKGNvbnN0IHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogewotCXJl dHVybiBpOTE1X3ZtX2lzXzQ4Yml0KHZtKTsKKwlyZXR1cm4gaTkxNV92bV9pc180bHZsKHZtKTsK IH0KIAogc3RhdGljIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKgpAQCAtMTYw NywzOCArMTYwNywxNCBAQCBzdGF0aWMgaW50IGdlbjhfcHJlYWxsb2NhdGVfdG9wX2xldmVsX3Bk cChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCiAgKiBzcGFjZS4KICAqCiAgKi8KLXN0YXRp YyBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqZ2VuOF9wcGd0dF9jcmVhdGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpCitzdGF0aWMgaW50IGdlbjhfcHBndHRfY3JlYXRlKHN0cnVjdCBpOTE1 X2h3X3BwZ3R0ICpwcGd0dCkKIHsKLQlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQ7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBwcGd0dC0+dm0uaTkxNTsKIAlpbnQgZXJyOwog Ci0JcHBndHQgPSBremFsbG9jKHNpemVvZigqcHBndHQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXBw Z3R0KQotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQotCWtyZWZfaW5pdCgmcHBndHQtPnJl Zik7Ci0KLQlwcGd0dC0+dm0uaTkxNSA9IGk5MTU7Ci0JcHBndHQtPnZtLmRtYSA9ICZpOTE1LT5k cm0ucGRldi0+ZGV2OwotCi0JcHBndHQtPnZtLnRvdGFsID0gSEFTX0ZVTExfNDhCSVRfUFBHVFQo aTkxNSkgPwotCQkxVUxMIDw8IDQ4IDoKLQkJMVVMTCA8PCAzMjsKLQotCS8qIEZyb20gYmR3LCB0 aGVyZSBpcyBzdXBwb3J0IGZvciByZWFkLW9ubHkgcGFnZXMgaW4gdGhlIFBQR1RULiAqLwotCXBw Z3R0LT52bS5oYXNfcmVhZF9vbmx5ID0gdHJ1ZTsKLQotCWk5MTVfYWRkcmVzc19zcGFjZV9pbml0 KCZwcGd0dC0+dm0sIGk5MTUpOwotCi0JLyogVGhlcmUgYXJlIG9ubHkgZmV3IGV4Y2VwdGlvbnMg Zm9yIGdlbiA+PTYuIGNodiBhbmQgYnh0LgotCSAqIEFuZCB3ZSBhcmUgbm90IHN1cmUgYWJvdXQg dGhlIGxhdHRlciBzbyBwbGF5IHNhZmUgZm9yIG5vdy4KLQkgKi8KLQlpZiAoSVNfQ0hFUlJZVklF VyhpOTE1KSB8fCBJU19CUk9YVE9OKGk5MTUpKQotCQlwcGd0dC0+dm0ucHRfa21hcF93YyA9IHRy dWU7Ci0KIAllcnIgPSBnZW44X2luaXRfc2NyYXRjaCgmcHBndHQtPnZtKTsKIAlpZiAoZXJyKQot CQlnb3RvIGVycl9mcmVlOworCQlyZXR1cm4gZXJyOwogCiAJaWYgKHVzZV80bHZsKCZwcGd0dC0+ dm0pKSB7CiAJCWVyciA9IHNldHVwX3B4KCZwcGd0dC0+dm0sICZwcGd0dC0+cG1sNCk7CkBAIC0x NjYyLDcgKzE2MzgsNiBAQCBzdGF0aWMgc3RydWN0IGk5MTVfaHdfcHBndHQgKmdlbjhfcHBndHRf Y3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQkJCWdvdG8gZXJyX3NjcmF0 Y2g7CiAJCQl9CiAJCX0KLQogCQlwcGd0dC0+dm0uYWxsb2NhdGVfdmFfcmFuZ2UgPSBnZW44X3Bw Z3R0X2FsbG9jXzNsdmw7CiAJCXBwZ3R0LT52bS5pbnNlcnRfZW50cmllcyA9IGdlbjhfcHBndHRf aW5zZXJ0XzNsdmw7CiAJCXBwZ3R0LT52bS5jbGVhcl9yYW5nZSA9IGdlbjhfcHBndHRfY2xlYXJf M2x2bDsKQEAgLTE2NzQsMTggKzE2NDksMTEgQEAgc3RhdGljIHN0cnVjdCBpOTE1X2h3X3BwZ3R0 ICpnZW44X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlwcGd0 dC0+dm0uY2xlYW51cCA9IGdlbjhfcHBndHRfY2xlYW51cDsKIAlwcGd0dC0+ZGVidWdfZHVtcCA9 IGdlbjhfZHVtcF9wcGd0dDsKIAotCXBwZ3R0LT52bS52bWFfb3BzLmJpbmRfdm1hICAgID0gcHBn dHRfYmluZF92bWE7Ci0JcHBndHQtPnZtLnZtYV9vcHMudW5iaW5kX3ZtYSAgPSBwcGd0dF91bmJp bmRfdm1hOwotCXBwZ3R0LT52bS52bWFfb3BzLnNldF9wYWdlcyAgID0gcHBndHRfc2V0X3BhZ2Vz OwotCXBwZ3R0LT52bS52bWFfb3BzLmNsZWFyX3BhZ2VzID0gY2xlYXJfcGFnZXM7Ci0KLQlyZXR1 cm4gcHBndHQ7CisJcmV0dXJuIDA7CiAKIGVycl9zY3JhdGNoOgogCWdlbjhfZnJlZV9zY3JhdGNo KCZwcGd0dC0+dm0pOwotZXJyX2ZyZWU6Ci0Ja2ZyZWUocHBndHQpOwotCXJldHVybiBFUlJfUFRS KGVycik7CisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIHZvaWQgZ2VuNl9kdW1wX3BwZ3R0KHN0 cnVjdCBpOTE1X2h3X3BwZ3R0ICpiYXNlLCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCkBAIC0yMTA2LDU1 ICsyMDc0LDMxIEBAIHZvaWQgZ2VuNl9wcGd0dF91bnBpbihzdHJ1Y3QgaTkxNV9od19wcGd0dCAq YmFzZSkKIAlpOTE1X3ZtYV91bnBpbihwcGd0dC0+dm1hKTsKIH0KIAotc3RhdGljIHN0cnVjdCBp OTE1X2h3X3BwZ3R0ICpnZW42X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKK3N0YXRpYyBpbnQgZ2VuNl9wcGd0dF9jcmVhdGUoc3RydWN0IGdlbjZfaHdfcHBndHQg KnBwZ3R0LAorCQkJICAgICBzdHJ1Y3QgaTkxNV9nZ3R0ICogY29uc3QgZ2d0dCkKIHsKLQlzdHJ1 Y3QgaTkxNV9nZ3R0ICogY29uc3QgZ2d0dCA9ICZpOTE1LT5nZ3R0OwotCXN0cnVjdCBnZW42X2h3 X3BwZ3R0ICpwcGd0dDsKIAlpbnQgZXJyOwogCi0JcHBndHQgPSBremFsbG9jKHNpemVvZigqcHBn dHQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXBwZ3R0KQotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVN KTsKLQotCWtyZWZfaW5pdCgmcHBndHQtPmJhc2UucmVmKTsKLQotCXBwZ3R0LT5iYXNlLnZtLmk5 MTUgPSBpOTE1OwotCXBwZ3R0LT5iYXNlLnZtLmRtYSA9ICZpOTE1LT5kcm0ucGRldi0+ZGV2Owot Ci0JcHBndHQtPmJhc2Uudm0udG90YWwgPSBJOTE1X1BERVMgKiBHRU42X1BURVMgKiBJOTE1X0dU VF9QQUdFX1NJWkU7Ci0KLQlpOTE1X2FkZHJlc3Nfc3BhY2VfaW5pdCgmcHBndHQtPmJhc2Uudm0s IGk5MTUpOwotCiAJcHBndHQtPmJhc2Uudm0uYWxsb2NhdGVfdmFfcmFuZ2UgPSBnZW42X2FsbG9j X3ZhX3JhbmdlOwogCXBwZ3R0LT5iYXNlLnZtLmNsZWFyX3JhbmdlID0gZ2VuNl9wcGd0dF9jbGVh cl9yYW5nZTsKIAlwcGd0dC0+YmFzZS52bS5pbnNlcnRfZW50cmllcyA9IGdlbjZfcHBndHRfaW5z ZXJ0X2VudHJpZXM7CiAJcHBndHQtPmJhc2Uudm0uY2xlYW51cCA9IGdlbjZfcHBndHRfY2xlYW51 cDsKIAlwcGd0dC0+YmFzZS5kZWJ1Z19kdW1wID0gZ2VuNl9kdW1wX3BwZ3R0OwogCi0JcHBndHQt PmJhc2Uudm0udm1hX29wcy5iaW5kX3ZtYSAgICA9IHBwZ3R0X2JpbmRfdm1hOwotCXBwZ3R0LT5i YXNlLnZtLnZtYV9vcHMudW5iaW5kX3ZtYSAgPSBwcGd0dF91bmJpbmRfdm1hOwotCXBwZ3R0LT5i YXNlLnZtLnZtYV9vcHMuc2V0X3BhZ2VzICAgPSBwcGd0dF9zZXRfcGFnZXM7Ci0JcHBndHQtPmJh c2Uudm0udm1hX29wcy5jbGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2VzOwotCiAJcHBndHQtPmJhc2Uu dm0ucHRlX2VuY29kZSA9IGdndHQtPnZtLnB0ZV9lbmNvZGU7CiAKIAllcnIgPSBnZW42X3BwZ3R0 X2luaXRfc2NyYXRjaChwcGd0dCk7CiAJaWYgKGVycikKLQkJZ290byBlcnJfZnJlZTsKKwkJcmV0 dXJuIGVycjsKIAogCXBwZ3R0LT52bWEgPSBwZF92bWFfY3JlYXRlKHBwZ3R0LCBHRU42X1BEX1NJ WkUpOwogCWlmIChJU19FUlIocHBndHQtPnZtYSkpIHsKIAkJZXJyID0gUFRSX0VSUihwcGd0dC0+ dm1hKTsKLQkJZ290byBlcnJfc2NyYXRjaDsKKwkJZ2VuNl9wcGd0dF9mcmVlX3NjcmF0Y2goJnBw Z3R0LT5iYXNlLnZtKTsKKwkJcmV0dXJuIGVycjsKIAl9CiAKLQlyZXR1cm4gJnBwZ3R0LT5iYXNl OwotCi1lcnJfc2NyYXRjaDoKLQlnZW42X3BwZ3R0X2ZyZWVfc2NyYXRjaCgmcHBndHQtPmJhc2Uu dm0pOwotZXJyX2ZyZWU6Ci0Ja2ZyZWUocHBndHQpOwotCXJldHVybiBFUlJfUFRSKGVycik7CisJ cmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGd0dF93cml0ZV93b3JrYXJvdW5kcyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC0yMjA2LDEwICsyMTUwLDQ4IEBAIGludCBp OTE1X3BwZ3R0X2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3Rh dGljIHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICoKIF9faHdfcHBndHRfY3JlYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQogewotCWlmIChJTlRFTF9HRU4oaTkxNSkgPCA4KQotCQlyZXR1 cm4gZ2VuNl9wcGd0dF9jcmVhdGUoaTkxNSk7Ci0JZWxzZQotCQlyZXR1cm4gZ2VuOF9wcGd0dF9j cmVhdGUoaTkxNSk7CisJc3RydWN0IGdlbjZfaHdfcHBndHQgKnBwZ3R0OworCXN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtOworCWludCBlcnI7CisKKwlwcGd0dCA9IGt6YWxsb2Moc2l6ZW9m KCpwcGd0dCksIEdGUF9LRVJORUwpOworCWlmICghcHBndHQpCisJCXJldHVybiBFUlJfUFRSKC1F Tk9NRU0pOworCisJdm0gPSAmcHBndHQtPmJhc2Uudm07CisKKwlrcmVmX2luaXQoJnBwZ3R0LT5i YXNlLnJlZik7CisKKwl2bS0+aTkxNSA9IGk5MTU7CisJdm0tPmRtYSA9ICZpOTE1LT5kcm0ucGRl di0+ZGV2OworCisJdm0tPnRvdGFsID0gQklUX1VMTChpOTE1LT5pbmZvLnBwZ3R0X2JpdHMpOwor CisJLyogRnJvbSBiZHcsIHRoZXJlIGlzIHN1cHBvcnQgZm9yIHJlYWQtb25seSBwYWdlcyBpbiB0 aGUgUFBHVFQuICAqLworCXZtLT5oYXNfcmVhZF9vbmx5ID0gKElOVEVMX0dFTihpOTE1KSA8IDgp ID8gZmFsc2UgOiB0cnVlOworCisJaTkxNV9hZGRyZXNzX3NwYWNlX2luaXQodm0sIGk5MTUpOwor CisJLyogVGhlcmUgYXJlIG9ubHkgZmV3IGV4Y2VwdGlvbnMgZm9yIGdlbiA+PSA2LiBjaHYgYW5k IGJ4dC4KKwkgKiBBbmQgd2UgYXJlIG5vdCBzdXJlIGFib3UgdGhlIGxhdHRlciBzbyBwbGF5IHNh ZmUgZm9yIG5vdy4KKwkgKi8KKwlpZiAoSVNfQ0hFUlJZVklFVyhpOTE1KSB8fCBJU19CUk9YVE9O KGk5MTUpKQorCQl2bS0+cHRfa21hcF93YyA9IHRydWU7CisKKwllcnIgPSAoSU5URUxfR0VOKGk5 MTUpIDwgOCkgPyAgZ2VuNl9wcGd0dF9jcmVhdGUocHBndHQsICZpOTE1LT5nZ3R0KSA6CisJCWdl bjhfcHBndHRfY3JlYXRlKCZwcGd0dC0+YmFzZSk7CisKKwlpZiAoZXJyKSB7CisJCWtmcmVlKHBw Z3R0KTsKKwkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKKwl9CisKKwl2bS0+dm1hX29wcy5iaW5kX3Zt YSAgICA9IHBwZ3R0X2JpbmRfdm1hOworCXZtLT52bWFfb3BzLnVuYmluZF92bWEgID0gcHBndHRf dW5iaW5kX3ZtYTsKKwl2bS0+dm1hX29wcy5zZXRfcGFnZXMgICA9IHBwZ3R0X3NldF9wYWdlczsK Kwl2bS0+dm1hX29wcy5jbGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2VzOworCisJcmV0dXJuICZwcGd0 dC0+YmFzZTsKIH0KIAogc3RydWN0IGk5MTVfaHdfcHBndHQgKgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuaAppbmRleCA0ODc0ZGEwOWEzYzQuLjExZDJjOGI3ZjI4ZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmgKQEAgLTM2NSw3ICszNjUsNyBAQCBzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlIHsKICNkZWZpbmUgaTkxNV9pc19nZ3R0KHZtKSAoKHZtKS0+aXNfZ2d0dCkKIAog c3RhdGljIGlubGluZSBib29sCi1pOTE1X3ZtX2lzXzQ4Yml0KGNvbnN0IHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtKQoraTkxNV92bV9pc180bHZsKGNvbnN0IHN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtKQogewogCXJldHVybiAodm0tPnRvdGFsIC0gMSkgPj4gMzI7CiB9CkBAIC01 MDcsNyArNTA3LDcgQEAgc3RhdGljIGlubGluZSB1MzIgZ2VuNl9wZGVfaW5kZXgodTMyIGFkZHIp CiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAogaTkxNV9wZHBlc19wZXJfcGRwKGNvbnN0IHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogewotCWlmIChpOTE1X3ZtX2lzXzQ4Yml0KHZt KSkKKwlpZiAoaTkxNV92bV9pc180bHZsKHZtKSkKIAkJcmV0dXJuIEdFTjhfUE1MNEVTX1BFUl9Q TUw0OwogCiAJcmV0dXJuIEdFTjhfM0xWTF9QRFBFUzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCmlu ZGV4IDRjY2FiODM3MmRkNC4uZDk2ODZiYzIyZjY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BjaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMK QEAgLTI1MCw2ICsyNTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZv IGludGVsX2lyb25sYWtlX21faW5mbyA9IHsKIAkuaGFzX3JjNiA9IDEsIFwKIAkuaGFzX3JjNnAg PSAxLCBcCiAJLnBwZ3R0ID0gSU5URUxfUFBHVFRfQUxJQVNJTkcsIFwKKwkucHBndHRfYml0cyA9 IDMxLCBcCiAJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsIFwKIAlHRU5fREVGQVVMVF9QQUdFX1NJ WkVTLCBcCiAJQ1VSU09SX09GRlNFVFMKQEAgLTI5NSw2ICsyOTYsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3NhbmR5YnJpZGdlX21fZ3QyX2luZm8gPSB7 CiAJLmhhc19yYzYgPSAxLCBcCiAJLmhhc19yYzZwID0gMSwgXAogCS5wcGd0dCA9IElOVEVMX1BQ R1RUX0ZVTEwsIFwKKwkucHBndHRfYml0cyA9IDMxLCBcCiAJR0VOX0RFRkFVTFRfUElQRU9GRlNF VFMsIFwKIAlHRU5fREVGQVVMVF9QQUdFX1NJWkVTLCBcCiAJSVZCX0NVUlNPUl9PRkZTRVRTCkBA IC0zNDgsNiArMzUwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBp bnRlbF92YWxsZXl2aWV3X2luZm8gPSB7CiAJLmhhc19nbWNoX2Rpc3BsYXkgPSAxLAogCS5oYXNf aG90cGx1ZyA9IDEsCiAJLnBwZ3R0ID0gSU5URUxfUFBHVFRfRlVMTCwKKwkucHBndHRfYml0cyA9 IDMxLAogCS5oYXNfc25vb3AgPSB0cnVlLAogCS5oYXNfY29oZXJlbnRfZ2d0dCA9IGZhbHNlLAog CS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcsCkBAIC0zOTUs NiArMzk4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9o YXN3ZWxsX2d0M19pbmZvID0gewogCQkgICAgICBJOTE1X0dUVF9QQUdFX1NJWkVfMk0sIFwKIAku aGFzX2xvZ2ljYWxfcmluZ19jb250ZXh0cyA9IDEsIFwKIAkucHBndHQgPSBJTlRFTF9QUEdUVF9G VUxMXzRMVkwsIFwKKwkucHBndHRfYml0cyA9IDQ4LCBcCiAJLmhhc182NGJpdF9yZWxvYyA9IDEs IFwKIAkuaGFzX3Jlc2V0X2VuZ2luZSA9IDEKIApAQCAtNDM5LDYgKzQ0Myw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfY2hlcnJ5dmlld19pbmZvID0gewog CS5oYXNfbG9naWNhbF9yaW5nX2NvbnRleHRzID0gMSwKIAkuaGFzX2dtY2hfZGlzcGxheSA9IDEs CiAJLnBwZ3R0ID0gSU5URUxfUFBHVFRfRlVMTCwKKwkucHBndHRfYml0cyA9IDMyLAogCS5oYXNf cmVzZXRfZW5naW5lID0gMSwKIAkuaGFzX3Nub29wID0gdHJ1ZSwKIAkuaGFzX2NvaGVyZW50X2dn dHQgPSBmYWxzZSwKQEAgLTUxNSw2ICs1MjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RldmljZV9pbmZvIGludGVsX3NreWxha2VfZ3Q0X2luZm8gPSB7CiAJLmhhc19sb2dpY2FsX3Jp bmdfcHJlZW1wdGlvbiA9IDEsIFwKIAkuaGFzX2d1YyA9IDEsIFwKIAkucHBndHQgPSBJTlRFTF9Q UEdUVF9GVUxMXzRMVkwsIFwKKwkucHBndHRfYml0cyA9IDQ4LCBcCiAJLmhhc19yZXNldF9lbmdp bmUgPSAxLCBcCiAJLmhhc19zbm9vcCA9IHRydWUsIFwKIAkuaGFzX2NvaGVyZW50X2dndHQgPSBm YWxzZSwgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wdmluZm8uaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHZpbmZvLmgKaW5kZXggZWVhYTNkNTA2ZDk1Li45 NjllNTE0OTE2YWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHZpbmZv LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wdmluZm8uaApAQCAtNTIsNyArNTIs NyBAQCBlbnVtIHZndF9nMnZfdHlwZSB7CiAvKgogICogVkdUIGNhcGFiaWxpdGllcyB0eXBlCiAg Ki8KLSNkZWZpbmUgVkdUX0NBUFNfRlVMTF80OEJJVF9QUEdUVAlCSVQoMikKKyNkZWZpbmUgVkdU X0NBUFNfRlVMTF9QUEdUVAkJQklUKDIpCiAjZGVmaW5lIFZHVF9DQVBTX0hXU1BfRU1VTEFUSU9O CQlCSVQoMykKICNkZWZpbmUgVkdUX0NBUFNfSFVHRV9HVFQJCUJJVCg0KQogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfdmdwdS5jCmluZGV4IDg2OWNmNGEzYjZkZS4uMGVmNzhmZWY1NDIyIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3ZncHUuYwpAQCAtODEsOSArODEsOSBAQCB2b2lkIGk5MTVfY2hlY2tfdmdwdShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJRFJNX0lORk8oIlZpcnR1YWwgR1BV IGZvciBJbnRlbCBHVlQtZyBkZXRlY3RlZC5cbiIpOwogfQogCi1ib29sIGludGVsX3ZncHVfaGFz X2Z1bGxfNDhiaXRfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorYm9v bCBpbnRlbF92Z3B1X2hhc180bHZsX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIHsKLQlyZXR1cm4gZGV2X3ByaXYtPnZncHUuY2FwcyAmIFZHVF9DQVBTX0ZVTExfNDhC SVRfUFBHVFQ7CisJcmV0dXJuIGRldl9wcml2LT52Z3B1LmNhcHMgJiBWR1RfQ0FQU19GVUxMX1BQ R1RUOwogfQogCiBzdHJ1Y3QgX2JhbGxvb25faW5mb18gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV92Z3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUu aAppbmRleCA1NTFhY2MzOTAwNDYuLjUyNjViNjM1N2ZiYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV92Z3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 Z3B1LmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogdm9pZCBpOTE1X2NoZWNrX3ZncHUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIAotYm9vbCBpbnRlbF92Z3B1X2hhc19mdWxsXzQ4 Yml0X3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Citib29sIGludGVs X3ZncHVfaGFzXzRsdmxfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK IAogc3RhdGljIGlubGluZSBib29sCiBpbnRlbF92Z3B1X2hhc19od3NwX2VtdWxhdGlvbihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGV2aWNlX2luZm8uYwppbmRleCA4OWVkM2E4NGE0ZmEuLmQwMDJmNTQyNjlhZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jCkBAIC0xMjIsNiArMTIyLDcgQEAgdm9p ZCBpbnRlbF9kZXZpY2VfaW5mb19kdW1wKGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAq aW5mbywKIAkJICAgaW5mby0+Z2VuKTsKIAogCWludGVsX2RldmljZV9pbmZvX2R1bXBfZmxhZ3Mo aW5mbywgcCk7CisJZHJtX3ByaW50ZihwLCAicHBndHRiaXRzPTB4JTAyeFxuIiwgaW5mby0+cHBn dHRfYml0cyk7CiB9CiAKIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9fZHVtcF90b3BvbG9neShjb25z dCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZXZpY2VfaW5mby5oCmluZGV4IDg2Y2UxZGIxYjMzYS4uNzhkZjRkZTM3NjY1IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKQEAgLTE5Miw2ICsxOTIsOSBAQCBzdHJ1 Y3QgaW50ZWxfZGV2aWNlX2luZm8gewogCQl1MTYgZGVnYW1tYV9sdXRfc2l6ZTsKIAkJdTE2IGdh bW1hX2x1dF9zaXplOwogCX0gY29sb3I7CisKKwkvKiBGdWxsIFBQR1RUIGFkZHJlc3MgcmFuZ2Ug c2l6ZSAqLworCWludCBwcGd0dF9iaXRzOwogfTsKIAogc3RydWN0IGludGVsX2RyaXZlcl9jYXBz IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggMjJiNTdiODkyNmZjLi41NDBhNGUzNDQx NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0zODUsNyArMzg1LDcgQEAgc3RhdGlj IHU2NCBleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJ ICogUE1MNCBpcyBhbGxvY2F0ZWQgZHVyaW5nIHBwZ3R0IGluaXQsIHNvIHRoaXMgaXMgbm90IG5l ZWRlZAogCSAqIGluIDQ4LWJpdCBtb2RlLgogCSAqLwotCWlmICghaTkxNV92bV9pc180OGJpdCgm cHBndHQtPnZtKSkKKwlpZiAoIWk5MTVfdm1faXNfNGx2bCgmcHBndHQtPnZtKSkKIAkJZXhlY2xp c3RzX3VwZGF0ZV9jb250ZXh0X3BkcHMocHBndHQsIHJlZ19zdGF0ZSk7CiAKIAlyZXR1cm4gY2Ut PmxyY19kZXNjOwpAQCAtMTg2Niw3ICsxODY2LDcgQEAgc3RhdGljIGludCBnZW44X2VtaXRfYmJf c3RhcnQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCiAJICogbm90IGlkbGUpLiBQTUw0IGlzIGFs bG9jYXRlZCBkdXJpbmcgcHBndHQgaW5pdCBzbyB0aGlzIGlzCiAJICogbm90IG5lZWRlZCBpbiA0 OC1iaXQuKi8KIAlpZiAoKGludGVsX2VuZ2luZV9mbGFnKHJxLT5lbmdpbmUpICYgcnEtPmdlbV9j b250ZXh0LT5wcGd0dC0+cGRfZGlydHlfcmluZ3MpICYmCi0JICAgICFpOTE1X3ZtX2lzXzQ4Yml0 KCZycS0+Z2VtX2NvbnRleHQtPnBwZ3R0LT52bSkgJiYKKwkgICAgIWk5MTVfdm1faXNfNGx2bCgm cnEtPmdlbV9jb250ZXh0LT5wcGd0dC0+dm0pICYmCiAJICAgICFpbnRlbF92Z3B1X2FjdGl2ZShy cS0+aTkxNSkpIHsKIAkJcmV0ID0gaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcGRwcyhycSk7CiAJ CWlmIChyZXQpCkBAIC0yNTM4LDcgKzI1MzgsNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfaW5p dF9yZWdfc3RhdGUodTMyICpyZWdzLAogCUNUWF9SRUcocmVncywgQ1RYX1BEUDBfVURXLCBHRU44 X1JJTkdfUERQX1VEVyhlbmdpbmUsIDApLCAwKTsKIAlDVFhfUkVHKHJlZ3MsIENUWF9QRFAwX0xE VywgR0VOOF9SSU5HX1BEUF9MRFcoZW5naW5lLCAwKSwgMCk7CiAKLQlpZiAoaTkxNV92bV9pc180 OGJpdCgmY3R4LT5wcGd0dC0+dm0pKSB7CisJaWYgKGk5MTVfdm1faXNfNGx2bCgmY3R4LT5wcGd0 dC0+dm0pKSB7CiAJCS8qIDY0YiBQUEdUVCAoNDhiaXQgY2Fub25pY2FsKQogCQkgKiBQRFAwX0RF U0NSSVBUT1IgY29udGFpbnMgdGhlIGJhc2UgYWRkcmVzcyB0byBQTUw0IGFuZAogCQkgKiBvdGhl ciBQRFAgRGVzY3JpcHRvcnMgYXJlIGlnbm9yZWQuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaHVnZV9wYWdlcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2h1Z2VfcGFnZXMuYwppbmRleCAyNmMwNjVjOGQyYzAuLjhjYzhlZDc1Zjk0MSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVnZV9wYWdlcy5jCkBAIC0xNDUwLDgg KzE0NTAsOCBAQCBzdGF0aWMgaW50IGlndF9wcGd0dF9waW5fdXBkYXRlKHZvaWQgKmFyZykKIAkg KiBodWdlLWd0dC1wYWdlcy4KIAkgKi8KIAotCWlmICghSEFTX0ZVTExfNDhCSVRfUFBHVFQoZGV2 X3ByaXYpKSB7Ci0JCXByX2luZm8oIjQ4YiBQUEdUVCBub3Qgc3VwcG9ydGVkLCBza2lwcGluZ1xu Iik7CisJaWYgKCFIQVNfNExWTF9QUEdUVChkZXZfcHJpdikpIHsKKwkJcHJfaW5mbygiRXh0ZW5k ZWQgcmFuZ2UgUFBHVFQgbm90IHN1cHBvcnRlZCwgc2tpcHBpbmdcbiIpOwogCQlyZXR1cm4gMDsK IAl9CiAKQEAgLTE3MjMsOCArMTcyMyw4IEBAIGludCBpOTE1X2dlbV9odWdlX3BhZ2VfbW9ja19z ZWxmdGVzdHModm9pZCkKIAkJZ290byBvdXRfdW5sb2NrOwogCX0KIAotCWlmICghaTkxNV92bV9p c180OGJpdCgmcHBndHQtPnZtKSkgewotCQlwcl9lcnIoImZhaWxlZCB0byBjcmVhdGUgNDhiIFBQ R1RUXG4iKTsKKwlpZiAoIWk5MTVfdm1faXNfNGx2bCgmcHBndHQtPnZtKSkgeworCQlwcl9lcnIo ImZhaWxlZCB0byBjcmVhdGUgZXh0ZW5kZWQgUFBHVFRcbiIpOwogCQllcnIgPSAtRUlOVkFMOwog CQlnb3RvIG91dF9jbG9zZTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvbW9ja19nZW1fZGV2aWNlLmMKaW5kZXggNDNlZDhiMjhhZWFhLi43NzE1NWRkNmUyYTkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2Uu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMK QEAgLTE4MSw2ICsxODEsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqbW9ja19nZW1fZGV2 aWNlKHZvaWQpCiAJCUk5MTVfR1RUX1BBR0VfU0laRV82NEsgfAogCQlJOTE1X0dUVF9QQUdFX1NJ WkVfMk07CiAKKwlta3dyaXRlX2RldmljZV9pbmZvKGk5MTUpLT5wcGd0dF9iaXRzID0gNjM7CisK IAltb2NrX3VuY29yZV9pbml0KGk5MTUpOwogCWk5MTVfZ2VtX2luaXRfX21tKGk5MTUpOwogCi0t IAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=