From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: Re: [PATCH v2] drm/i915/skl: Buffer translation improvements Date: Thu, 25 Jun 2015 11:11:03 +0300 Message-ID: <20150625081103.GO14570@boom> References: <20150618095033.GH14570@boom> 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 E5EAE6E1D1 for ; Thu, 25 Jun 2015 01:12:17 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150618095033.GH14570@boom> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIDAuODVWIFZjY0lPIG9uIFNreWxha2UgWSwKc2Vw YXJhdGUgYnVmZmVyIHRyYW5zbGF0aW9uIHRhYmxlcyBmb3IgU2t5bGFrZSBVLAphbmQgc3VwcG9y dCBmb3IgSV9ib29zdCBmb3IgdGhlIGVudHJpZXMgdGhhdCBuZWVkcyB0aGlzLgoKQ2hhbmdlcyBp biB2MjoKKiBSZWZhY3RvcmVkIHRoZSBjb2RlIGEgYml0IHRvIG1vdmUgYWxsIERESSBzaWduYWwg bGV2ZWwgc2V0dXAgdG8KICBpbnRlbF9kZGkuYwoKSXNzdWU6IFZJWi01Njc3ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFdlaW5laGFsbCA8ZGF2aWQud2VpbmVoYWxsQGxpbnV4LmludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICB8ICAgOCArCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oICB8ICAxMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZGkuYyB8IDUwNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgIHwgMTA0ICstLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCB8ICAgMyArLQogNSBmaWxlcyBjaGFuZ2VkLCA0MjEgaW5zZXJ0 aW9ucygrKSwgMjEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDQ5 MWVmMGNmY2IwYi4uMDlhNTdhNTg0ZjVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI0 MTUsNiArMjQxNSwxNCBAQCBzdHJ1Y3QgZHJtX2k5MTVfY21kX3RhYmxlIHsKIC8qIFVMWCBtYWNo aW5lcyBhcmUgYWxzbyBjb25zaWRlcmVkIFVMVC4gKi8KICNkZWZpbmUgSVNfSFNXX1VMWChkZXYp CQkoSU5URUxfREVWSUQoZGV2KSA9PSAweDBBMEUgfHwgXAogCQkJCSBJTlRFTF9ERVZJRChkZXYp ID09IDB4MEExRSkKKyNkZWZpbmUgSVNfU0tMX1VMVChkZXYpCQkoSU5URUxfREVWSUQoZGV2KSA9 PSAweDE5MDYgfHwgXAorCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4MTkxMyB8fCBcCisJCQkJ IElOVEVMX0RFVklEKGRldikgPT0gMHgxOTE2IHx8IFwKKwkJCQkgSU5URUxfREVWSUQoZGV2KSA9 PSAweDE5MjEgfHwgXAorCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4MTkyNikKKyNkZWZpbmUg SVNfU0tMX1VMWChkZXYpCQkoSU5URUxfREVWSUQoZGV2KSA9PSAweDE5MEUgfHwgXAorCQkJCSBJ TlRFTF9ERVZJRChkZXYpID09IDB4MTkxNSB8fCBcCisJCQkJIElOVEVMX0RFVklEKGRldikgPT0g MHgxOTFFKQogI2RlZmluZSBJU19QUkVMSU1JTkFSWV9IVyhpbnRlbF9pbmZvKSAoKGludGVsX2lu Zm8pLT5pc19wcmVsaW1pbmFyeSkKIAogI2RlZmluZSBTS0xfUkVWSURfQTAJCSgweDApCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaAppbmRleCAwYjk3OWFkMTZkNDEuLmZiNjNlYWQyYjhlYiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCkBAIC0xMzgyLDYgKzEzODIsMTggQEAgZW51bSBza2xfZGlzcF9w b3dlcl93ZWxscyB7CiAJCQkJCQkJX1BPUlRfVFhfRFcxNF9MTjBfQykgKyBcCiAJCQkJCSBfQlhU X0xBTkVfT0ZGU0VUKGxhbmUpKQogCisvKiBVQUlNSSBzY3JhdGNoIHBhZCByZWdpc3RlciAxICov CisjZGVmaW5lIFVBSU1JX1NQUjEJCQkweDRGMDc0CisvKiBTS0wgVmNjSU8gbWFzayAqLworI2Rl ZmluZSBTS0xfVkNDSU9fTUFTSwkJCTB4MQorLyogU0tMIGJhbGFuY2UgbGVnIHJlZ2lzdGVyICov CisjZGVmaW5lIERJU1BJT19DUl9UWF9CTVVfQ1IwCQkweDZDMDBDCisvKiBJX2Jvb3N0IHZhbHVl cyAqLworI2RlZmluZSBCQUxBTkNFX0xFR19TSElGVChwb3J0KQkJKDgrMyoocG9ydCkpCisjZGVm aW5lIEJBTEFOQ0VfTEVHX01BU0socG9ydCkJCSg3PDwoOCszKihwb3J0KSkpCisvKiBCYWxhbmNl IGxlZyBkaXNhYmxlIGJpdHMgKi8KKyNkZWZpbmUgQkFMQU5DRV9MRUdfRElTQUJMRV9TSElGVAky MworCiAvKgogICogRmVuY2UgcmVnaXN0ZXJzCiAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMK aW5kZXggMzFiMjllODc4MWFjLi4wOGY4OTI5OWI1NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jCkBAIC0zMSw2ICszMSw3IEBACiBzdHJ1Y3QgZGRpX2J1Zl90cmFucyB7CiAJdTMyIHRyYW5z MTsJLyogYmFsYW5jZSBsZWcgZW5hYmxlLCBkZS1lbXBoIGxldmVsICovCiAJdTMyIHRyYW5zMjsJ LyogdnJlZiBzZWwsIHZzd2luZyAqLworCXU4IGlfYm9vc3Q7CS8qIFNLTDogSV9ib29zdDsgdmFs aWQ6IDB4MCwgMHgxLCAweDMsIDB4NyAqLwogfTsKIAogLyogSERNSS9EVkkgbW9kZXMgaWdub3Jl IGV2ZXJ5dGhpbmcgYnV0IHRoZSBsYXN0IDIgaXRlbXMuIFNvIHdlIHNoYXJlCkBAIC0zOCwxMzQg KzM5LDIxMyBAQCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyB7CiAgKiBhdXRvbWF0aWNhbGx5IGFkYXB0 IHRvIEhETUkgY29ubmVjdGlvbnMgYXMgd2VsbAogICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRk aV9idWZfdHJhbnMgaHN3X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKLQl7IDB4MDBGRkZGRkYs IDB4MDAwNjAwMEUgfSwKLQl7IDB4MDBENzVGRkYsIDB4MDAwNTAwMEEgfSwKLQl7IDB4MDBDMzBG RkYsIDB4MDAwNDAwMDYgfSwKLQl7IDB4ODBBQUFGRkYsIDB4MDAwQjAwMDAgfSwKLQl7IDB4MDBG RkZGRkYsIDB4MDAwNTAwMEEgfSwKLQl7IDB4MDBENzVGRkYsIDB4MDAwQzAwMDQgfSwKLQl7IDB4 ODBDMzBGRkYsIDB4MDAwQjAwMDAgfSwKLQl7IDB4MDBGRkZGRkYsIDB4MDAwNDAwMDYgfSwKLQl7 IDB4ODBENzVGRkYsIDB4MDAwQjAwMDAgfSwKKwl7IDB4MDBGRkZGRkYsIDB4MDAwNjAwMEUsIDB4 MCB9LAorCXsgMHgwMEQ3NUZGRiwgMHgwMDA1MDAwQSwgMHgwIH0sCisJeyAweDAwQzMwRkZGLCAw eDAwMDQwMDA2LCAweDAgfSwKKwl7IDB4ODBBQUFGRkYsIDB4MDAwQjAwMDAsIDB4MCB9LAorCXsg MHgwMEZGRkZGRiwgMHgwMDA1MDAwQSwgMHgwIH0sCisJeyAweDAwRDc1RkZGLCAweDAwMEMwMDA0 LCAweDAgfSwKKwl7IDB4ODBDMzBGRkYsIDB4MDAwQjAwMDAsIDB4MCB9LAorCXsgMHgwMEZGRkZG RiwgMHgwMDA0MDAwNiwgMHgwIH0sCisJeyAweDgwRDc1RkZGLCAweDAwMEIwMDAwLCAweDAgfSwK IH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBoc3dfZGRpX3RyYW5zbGF0 aW9uc19mZGlbXSA9IHsKLQl7IDB4MDBGRkZGRkYsIDB4MDAwNzAwMEUgfSwKLQl7IDB4MDBENzVG RkYsIDB4MDAwRjAwMEEgfSwKLQl7IDB4MDBDMzBGRkYsIDB4MDAwNjAwMDYgfSwKLQl7IDB4MDBB QUFGRkYsIDB4MDAxRTAwMDAgfSwKLQl7IDB4MDBGRkZGRkYsIDB4MDAwRjAwMEEgfSwKLQl7IDB4 MDBENzVGRkYsIDB4MDAxNjAwMDQgfSwKLQl7IDB4MDBDMzBGRkYsIDB4MDAxRTAwMDAgfSwKLQl7 IDB4MDBGRkZGRkYsIDB4MDAwNjAwMDYgfSwKLQl7IDB4MDBENzVGRkYsIDB4MDAxRTAwMDAgfSwK Kwl7IDB4MDBGRkZGRkYsIDB4MDAwNzAwMEUsIDB4MCB9LAorCXsgMHgwMEQ3NUZGRiwgMHgwMDBG MDAwQSwgMHgwIH0sCisJeyAweDAwQzMwRkZGLCAweDAwMDYwMDA2LCAweDAgfSwKKwl7IDB4MDBB QUFGRkYsIDB4MDAxRTAwMDAsIDB4MCB9LAorCXsgMHgwMEZGRkZGRiwgMHgwMDBGMDAwQSwgMHgw IH0sCisJeyAweDAwRDc1RkZGLCAweDAwMTYwMDA0LCAweDAgfSwKKwl7IDB4MDBDMzBGRkYsIDB4 MDAxRTAwMDAsIDB4MCB9LAorCXsgMHgwMEZGRkZGRiwgMHgwMDA2MDAwNiwgMHgwIH0sCisJeyAw eDAwRDc1RkZGLCAweDAwMUUwMDAwLCAweDAgfSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZGRpX2J1Zl90cmFucyBoc3dfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7CiAJCQkJCS8qIElk eAlOVCBtViBkCVQgbVYgZAlkYgkqLwotCXsgMHgwMEZGRkZGRiwgMHgwMDA2MDAwRSB9LAkvKiAw Ogk0MDAJNDAwCTAJKi8KLQl7IDB4MDBFNzlGRkYsIDB4MDAwRTAwMEMgfSwJLyogMToJNDAwCTUw MAkyCSovCi0JeyAweDAwRDc1RkZGLCAweDAwMDUwMDBBIH0sCS8qIDI6CTQwMAk2MDAJMy41CSov Ci0JeyAweDAwRkZGRkZGLCAweDAwMDUwMDBBIH0sCS8qIDM6CTYwMAk2MDAJMAkqLwotCXsgMHgw MEU3OUZGRiwgMHgwMDFEMDAwNyB9LAkvKiA0Ogk2MDAJNzUwCTIJKi8KLQl7IDB4MDBENzVGRkYs IDB4MDAwQzAwMDQgfSwJLyogNToJNjAwCTkwMAkzLjUJKi8KLQl7IDB4MDBGRkZGRkYsIDB4MDAw NDAwMDYgfSwJLyogNjoJODAwCTgwMAkwCSovCi0JeyAweDgwRTc5RkZGLCAweDAwMDMwMDAyIH0s CS8qIDc6CTgwMAkxMDAwCTIJKi8KLQl7IDB4MDBGRkZGRkYsIDB4MDAxNDAwMDUgfSwJLyogODoJ ODUwCTg1MAkwCSovCi0JeyAweDAwRkZGRkZGLCAweDAwMEMwMDA0IH0sCS8qIDk6CTkwMAk5MDAJ MAkqLwotCXsgMHgwMEZGRkZGRiwgMHgwMDFDMDAwMyB9LAkvKiAxMDoJOTUwCTk1MAkwCSovCi0J eyAweDgwRkZGRkZGLCAweDAwMDMwMDAyIH0sCS8qIDExOgkxMDAwCTEwMDAJMAkqLworCXsgMHgw MEZGRkZGRiwgMHgwMDA2MDAwRSwgMHgwIH0sLyogMDoJNDAwCTQwMAkwCSovCisJeyAweDAwRTc5 RkZGLCAweDAwMEUwMDBDLCAweDAgfSwvKiAxOgk0MDAJNTAwCTIJKi8KKwl7IDB4MDBENzVGRkYs IDB4MDAwNTAwMEEsIDB4MCB9LC8qIDI6CTQwMAk2MDAJMy41CSovCisJeyAweDAwRkZGRkZGLCAw eDAwMDUwMDBBLCAweDAgfSwvKiAzOgk2MDAJNjAwCTAJKi8KKwl7IDB4MDBFNzlGRkYsIDB4MDAx RDAwMDcsIDB4MCB9LC8qIDQ6CTYwMAk3NTAJMgkqLworCXsgMHgwMEQ3NUZGRiwgMHgwMDBDMDAw NCwgMHgwIH0sLyogNToJNjAwCTkwMAkzLjUJKi8KKwl7IDB4MDBGRkZGRkYsIDB4MDAwNDAwMDYs IDB4MCB9LC8qIDY6CTgwMAk4MDAJMAkqLworCXsgMHg4MEU3OUZGRiwgMHgwMDAzMDAwMiwgMHgw IH0sLyogNzoJODAwCTEwMDAJMgkqLworCXsgMHgwMEZGRkZGRiwgMHgwMDE0MDAwNSwgMHgwIH0s LyogODoJODUwCTg1MAkwCSovCisJeyAweDAwRkZGRkZGLCAweDAwMEMwMDA0LCAweDAgfSwvKiA5 Ogk5MDAJOTAwCTAJKi8KKwl7IDB4MDBGRkZGRkYsIDB4MDAxQzAwMDMsIDB4MCB9LC8qIDEwOgk5 NTAJOTUwCTAJKi8KKwl7IDB4ODBGRkZGRkYsIDB4MDAwMzAwMDIsIDB4MCB9LC8qIDExOgkxMDAw CTEwMDAJMAkqLwogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIGJkd19k ZGlfdHJhbnNsYXRpb25zX2VkcFtdID0gewotCXsgMHgwMEZGRkZGRiwgMHgwMDAwMDAxMiB9LAot CXsgMHgwMEVCQUZGRiwgMHgwMDAyMDAxMSB9LAotCXsgMHgwMEM3MUZGRiwgMHgwMDA2MDAwRiB9 LAotCXsgMHgwMEFBQUZGRiwgMHgwMDBFMDAwQSB9LAotCXsgMHgwMEZGRkZGRiwgMHgwMDAyMDAx MSB9LAotCXsgMHgwMERCNkZGRiwgMHgwMDA1MDAwRiB9LAotCXsgMHgwMEJFRUZGRiwgMHgwMDBB MDAwQyB9LAotCXsgMHgwMEZGRkZGRiwgMHgwMDA1MDAwRiB9LAotCXsgMHgwMERCNkZGRiwgMHgw MDBBMDAwQyB9LAorCXsgMHgwMEZGRkZGRiwgMHgwMDAwMDAxMiwgMHgwIH0sCisJeyAweDAwRUJB RkZGLCAweDAwMDIwMDExLCAweDAgfSwKKwl7IDB4MDBDNzFGRkYsIDB4MDAwNjAwMEYsIDB4MCB9 LAorCXsgMHgwMEFBQUZGRiwgMHgwMDBFMDAwQSwgMHgwIH0sCisJeyAweDAwRkZGRkZGLCAweDAw MDIwMDExLCAweDAgfSwKKwl7IDB4MDBEQjZGRkYsIDB4MDAwNTAwMEYsIDB4MCB9LAorCXsgMHgw MEJFRUZGRiwgMHgwMDBBMDAwQywgMHgwIH0sCisJeyAweDAwRkZGRkZGLCAweDAwMDUwMDBGLCAw eDAgfSwKKwl7IDB4MDBEQjZGRkYsIDB4MDAwQTAwMEMsIDB4MCB9LAogfTsKIAogc3RhdGljIGNv bnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIGJkd19kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7Ci0J eyAweDAwRkZGRkZGLCAweDAwMDcwMDBFIH0sCi0JeyAweDAwRDc1RkZGLCAweDAwMEUwMDBBIH0s Ci0JeyAweDAwQkVGRkZGLCAweDAwMTQwMDA2IH0sCi0JeyAweDgwQjJDRkZGLCAweDAwMUIwMDAy IH0sCi0JeyAweDAwRkZGRkZGLCAweDAwMEUwMDBBIH0sCi0JeyAweDAwREI2RkZGLCAweDAwMTYw MDA1IH0sCi0JeyAweDgwQzcxRkZGLCAweDAwMUEwMDAyIH0sCi0JeyAweDAwRjdERkZGLCAweDAw MTgwMDA0IH0sCi0JeyAweDgwRDc1RkZGLCAweDAwMUIwMDAyIH0sCisJeyAweDAwRkZGRkZGLCAw eDAwMDcwMDBFLCAweDAgfSwKKwl7IDB4MDBENzVGRkYsIDB4MDAwRTAwMEEsIDB4MCB9LAorCXsg MHgwMEJFRkZGRiwgMHgwMDE0MDAwNiwgMHgwIH0sCisJeyAweDgwQjJDRkZGLCAweDAwMUIwMDAy LCAweDAgfSwKKwl7IDB4MDBGRkZGRkYsIDB4MDAwRTAwMEEsIDB4MCB9LAorCXsgMHgwMERCNkZG RiwgMHgwMDE2MDAwNSwgMHgwIH0sCisJeyAweDgwQzcxRkZGLCAweDAwMUEwMDAyLCAweDAgfSwK Kwl7IDB4MDBGN0RGRkYsIDB4MDAxODAwMDQsIDB4MCB9LAorCXsgMHg4MEQ3NUZGRiwgMHgwMDFC MDAwMiwgMHgwIH0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgYmR3 X2RkaV90cmFuc2xhdGlvbnNfZmRpW10gPSB7Ci0JeyAweDAwRkZGRkZGLCAweDAwMDEwMDBFIH0s Ci0JeyAweDAwRDc1RkZGLCAweDAwMDQwMDBBIH0sCi0JeyAweDAwQzMwRkZGLCAweDAwMDcwMDA2 IH0sCi0JeyAweDAwQUFBRkZGLCAweDAwMEMwMDAwIH0sCi0JeyAweDAwRkZGRkZGLCAweDAwMDQw MDBBIH0sCi0JeyAweDAwRDc1RkZGLCAweDAwMDkwMDA0IH0sCi0JeyAweDAwQzMwRkZGLCAweDAw MEMwMDAwIH0sCi0JeyAweDAwRkZGRkZGLCAweDAwMDcwMDA2IH0sCi0JeyAweDAwRDc1RkZGLCAw eDAwMEMwMDAwIH0sCisJeyAweDAwRkZGRkZGLCAweDAwMDEwMDBFLCAweDAgfSwKKwl7IDB4MDBE NzVGRkYsIDB4MDAwNDAwMEEsIDB4MCB9LAorCXsgMHgwMEMzMEZGRiwgMHgwMDA3MDAwNiwgMHgw IH0sCisJeyAweDAwQUFBRkZGLCAweDAwMEMwMDAwLCAweDAgfSwKKwl7IDB4MDBGRkZGRkYsIDB4 MDAwNDAwMEEsIDB4MCB9LAorCXsgMHgwMEQ3NUZGRiwgMHgwMDA5MDAwNCwgMHgwIH0sCisJeyAw eDAwQzMwRkZGLCAweDAwMEMwMDAwLCAweDAgfSwKKwl7IDB4MDBGRkZGRkYsIDB4MDAwNzAwMDYs IDB4MCB9LAorCXsgMHgwMEQ3NUZGRiwgMHgwMDBDMDAwMCwgMHgwIH0sCiB9OwogCiBzdGF0aWMg Y29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgYmR3X2RkaV90cmFuc2xhdGlvbnNfaGRtaVtdID0g ewogCQkJCQkvKiBJZHgJTlQgbVYgZAlUIG1WIGRmCWRiCSovCi0JeyAweDAwRkZGRkZGLCAweDAw MDcwMDBFIH0sCS8qIDA6CTQwMAk0MDAJMAkqLwotCXsgMHgwMEQ3NUZGRiwgMHgwMDBFMDAwQSB9 LAkvKiAxOgk0MDAJNjAwCTMuNQkqLwotCXsgMHgwMEJFRkZGRiwgMHgwMDE0MDAwNiB9LAkvKiAy Ogk0MDAJODAwCTYJKi8KLQl7IDB4MDBGRkZGRkYsIDB4MDAwOTAwMEQgfSwJLyogMzoJNDUwCTQ1 MAkwCSovCi0JeyAweDAwRkZGRkZGLCAweDAwMEUwMDBBIH0sCS8qIDQ6CTYwMAk2MDAJMAkqLwot CXsgMHgwMEQ3RkZGRiwgMHgwMDE0MDAwNiB9LAkvKiA1Ogk2MDAJODAwCTIuNQkqLwotCXsgMHg4 MENCMkZGRiwgMHgwMDFCMDAwMiB9LAkvKiA2Ogk2MDAJMTAwMAk0LjUJKi8KLQl7IDB4MDBGRkZG RkYsIDB4MDAxNDAwMDYgfSwJLyogNzoJODAwCTgwMAkwCSovCi0JeyAweDgwRTc5RkZGLCAweDAw MUIwMDAyIH0sCS8qIDg6CTgwMAkxMDAwCTIJKi8KLQl7IDB4ODBGRkZGRkYsIDB4MDAxQjAwMDIg fSwJLyogOToJMTAwMAkxMDAwCTAJKi8KKwl7IDB4MDBGRkZGRkYsIDB4MDAwNzAwMEUsIDB4MCB9 LC8qIDA6CTQwMAk0MDAJMAkqLworCXsgMHgwMEQ3NUZGRiwgMHgwMDBFMDAwQSwgMHgwIH0sLyog MToJNDAwCTYwMAkzLjUJKi8KKwl7IDB4MDBCRUZGRkYsIDB4MDAxNDAwMDYsIDB4MCB9LC8qIDI6 CTQwMAk4MDAJNgkqLworCXsgMHgwMEZGRkZGRiwgMHgwMDA5MDAwRCwgMHgwIH0sLyogMzoJNDUw CTQ1MAkwCSovCisJeyAweDAwRkZGRkZGLCAweDAwMEUwMDBBLCAweDAgfSwvKiA0Ogk2MDAJNjAw CTAJKi8KKwl7IDB4MDBEN0ZGRkYsIDB4MDAxNDAwMDYsIDB4MCB9LC8qIDU6CTYwMAk4MDAJMi41 CSovCisJeyAweDgwQ0IyRkZGLCAweDAwMUIwMDAyLCAweDAgfSwvKiA2Ogk2MDAJMTAwMAk0LjUJ Ki8KKwl7IDB4MDBGRkZGRkYsIDB4MDAxNDAwMDYsIDB4MCB9LC8qIDc6CTgwMAk4MDAJMAkqLwor CXsgMHg4MEU3OUZGRiwgMHgwMDFCMDAwMiwgMHgwIH0sLyogODoJODAwCTEwMDAJMgkqLworCXsg MHg4MEZGRkZGRiwgMHgwMDFCMDAwMiwgMHgwIH0sLyogOToJMTAwMAkxMDAwCTAJKi8KIH07CiAK Ky8qIFNreWxha2UgSCwgUywgYW5kIFNreWxha2UgWSB3aXRoIDAuOTVWIFZjY0lPICovCiBzdGF0 aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgc2tsX2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9 IHsKLQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwYTIgfSwKLQl7IDB4MDAwMDQwMTQsIDB4MDAwMDAw OUIgfSwKLQl7IDB4MDAwMDYwMTIsIDB4MDAwMDAwODggfSwKLQl7IDB4MDAwMDgwMTAsIDB4MDAw MDAwODcgfSwKLQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOUIgfSwKLQl7IDB4MDAwMDQwMTQsIDB4 MDAwMDAwODggfSwKLQl7IDB4MDAwMDYwMTIsIDB4MDAwMDAwODcgfSwKLQl7IDB4MDAwMDAwMTgs IDB4MDAwMDAwODggfSwKLQl7IDB4MDAwMDQwMTQsIDB4MDAwMDAwODcgfSwKKwl7IDB4MDAwMDIw MTYsIDB4MDAwMDAwQTAsIDB4MCB9LAorCXsgMHgwMDAwNTAxMiwgMHgwMDAwMDA5QiwgMHgwIH0s CisJeyAweDAwMDA3MDExLCAweDAwMDAwMDg4LCAweDAgfSwKKwl7IDB4MDAwMDkwMTAsIDB4MDAw MDAwQzcsIDB4MCB9LAorCXsgMHgwMDAwMjAxNiwgMHgwMDAwMDA5QiwgMHgwIH0sCisJeyAweDAw MDA1MDEyLCAweDAwMDAwMDg4LCAweDAgfSwKKwl7IDB4MDAwMDcwMTEsIDB4MDAwMDAwQzcsIDB4 MCB9LAorCXsgMHgwMDAwMjAxNiwgMHgwMDAwMDBERiwgMHgwIH0sCisJeyAweDAwMDA1MDEyLCAw eDAwMDAwMEM3LCAweDAgfSwKIH07CiAKLS8qIGVEUCAxLjQgbG93IHZzd2luZyB0cmFuc2xhdGlv biBwYXJhbWV0ZXJzICovCisvKiBTa3lsYWtlIFUgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGRp X2J1Zl90cmFucyBza2xfdV9kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7CisJeyAweDAwMDAyMDE2 LCAweDAwMDAwMEEyLCAweDAgfSwKKwl7IDB4MDAwMDUwMTIsIDB4MDAwMDAwODgsIDB4MCB9LAor CXsgMHgwMDAwNzAxMSwgMHgwMDAwMDA4NywgMHgwIH0sCisJeyAweDgwMDA5MDEwLCAweDAwMDAw MEM3LCAweDEgfSwJLyogVXNlcyBJX2Jvb3N0ICovCisJeyAweDAwMDAyMDE2LCAweDAwMDAwMDlE LCAweDAgfSwKKwl7IDB4MDAwMDUwMTIsIDB4MDAwMDAwQzcsIDB4MCB9LAorCXsgMHgwMDAwNzAx MSwgMHgwMDAwMDBDNywgMHgwIH0sCisJeyAweDAwMDAyMDE2LCAweDAwMDAwMDg4LCAweDAgfSwK Kwl7IDB4MDAwMDUwMTIsIDB4MDAwMDAwQzcsIDB4MCB9LAorfTsKKworLyogU2t5bGFrZSBZIHdp dGggMC44NVYgVmNjSU8gKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBza2xf eV8wODV2X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAw QTIsIDB4MCB9LAorCXsgMHgwMDAwNTAxMiwgMHgwMDAwMDA4OCwgMHgwIH0sCisJeyAweDAwMDA3 MDExLCAweDAwMDAwMDg3LCAweDAgfSwKKwl7IDB4ODAwMDkwMTAsIDB4MDAwMDAwQzcsIDB4MSB9 LAkvKiBVc2VzIElfYm9vc3QgKi8KKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOUQsIDB4MCB9LAor CXsgMHgwMDAwNTAxMiwgMHgwMDAwMDBDNywgMHgwIH0sCisJeyAweDAwMDA3MDExLCAweDAwMDAw MEM3LCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwODgsIDB4MCB9LAorCXsgMHgwMDAw NTAxMiwgMHgwMDAwMDBDNywgMHgwIH0sCit9OworCisvKgorICogU2t5bGFrZSBIIGFuZCBTLCBh bmQgU2t5bGFrZSBZIHdpdGggMC45NVYgVmNjSU8KKyAqIGVEUCAxLjQgbG93IHZzd2luZyB0cmFu c2xhdGlvbiBwYXJhbWV0ZXJzCisgKi8KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFu cyBza2xfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9IHsKLQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAw YTggfSwKLQl7IDB4MDAwMDIwMTYsIDB4MDAwMDAwYWIgfSwKLQl7IDB4MDAwMDYwMTIsIDB4MDAw MDAwYTIgfSwKLQl7IDB4MDAwMDgwMTAsIDB4MDAwMDAwODggfSwKLQl7IDB4MDAwMDAwMTgsIDB4 MDAwMDAwYWIgfSwKLQl7IDB4MDAwMDQwMTQsIDB4MDAwMDAwYTIgfSwKLQl7IDB4MDAwMDYwMTIs IDB4MDAwMDAwYTYgfSwKLQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwYTIgfSwKLQl7IDB4MDAwMDUw MTMsIDB4MDAwMDAwOWMgfSwKLQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwODggfSwKKwl7IDB4MDAw MDAwMTgsIDB4MDAwMDAwQTgsIDB4MCB9LAorCXsgMHgwMDAwNDAxMywgMHgwMDAwMDBBOSwgMHgw IH0sCisJeyAweDAwMDA3MDExLCAweDAwMDAwMEEyLCAweDAgfSwKKwl7IDB4MDAwMDkwMTAsIDB4 MDAwMDAwOUMsIDB4MCB9LAorCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBBOSwgMHgwIH0sCisJeyAw eDAwMDA2MDEzLCAweDAwMDAwMEEyLCAweDAgfSwKKwl7IDB4MDAwMDcwMTEsIDB4MDAwMDAwQTYs IDB4MCB9LAorCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBBQiwgMHgwIH0sCisJeyAweDAwMDA3MDEz LCAweDAwMDAwMDlGLCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwREYsIDB4MCB9LAor fTsKKworLyoKKyAqIFNreWxha2UgVQorICogZURQIDEuNCBsb3cgdnN3aW5nIHRyYW5zbGF0aW9u IHBhcmFtZXRlcnMKKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIHNrbF91 X2RkaV90cmFuc2xhdGlvbnNfZWRwW10gPSB7CisJeyAweDAwMDAwMDE4LCAweDAwMDAwMEE4LCAw eDAgfSwKKwl7IDB4MDAwMDQwMTMsIDB4MDAwMDAwQTksIDB4MCB9LAorCXsgMHgwMDAwNzAxMSwg MHgwMDAwMDBBMiwgMHgwIH0sCisJeyAweDAwMDA5MDEwLCAweDAwMDAwMDlDLCAweDAgfSwKKwl7 IDB4MDAwMDAwMTgsIDB4MDAwMDAwQTksIDB4MCB9LAorCXsgMHgwMDAwNjAxMywgMHgwMDAwMDBB MiwgMHgwIH0sCisJeyAweDAwMDA3MDExLCAweDAwMDAwMEE2LCAweDAgfSwKKwl7IDB4MDAwMDIw MTYsIDB4MDAwMDAwQUIsIDB4MCB9LAorCXsgMHgwMDAwNTAxMywgMHgwMDAwMDA5RiwgMHgwIH0s CisJeyAweDAwMDAwMDE4LCAweDAwMDAwMERGLCAweDAgfSwKIH07CiAKKy8qCisgKiBTa3lsYWtl IFkgd2l0aCAwLjk1ViBWY2NJTworICogZURQIDEuNCBsb3cgdnN3aW5nIHRyYW5zbGF0aW9uIHBh cmFtZXRlcnMKKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIHNrbF95XzA4 NXZfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9IHsKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwQTgs IDB4MCB9LAorCXsgMHgwMDAwNDAxMywgMHgwMDAwMDBBQiwgMHgwIH0sCisJeyAweDAwMDA3MDEx LCAweDAwMDAwMEE0LCAweDAgfSwKKwl7IDB4MDAwMDkwMTAsIDB4MDAwMDAwREYsIDB4MCB9LAor CXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBBQSwgMHgwIH0sCisJeyAweDAwMDA2MDEzLCAweDAwMDAw MEE0LCAweDAgfSwKKwl7IDB4MDAwMDcwMTEsIDB4MDAwMDAwOUQsIDB4MCB9LAorCXsgMHgwMDAw MDAxOCwgMHgwMDAwMDBBMCwgMHgwIH0sCisJeyAweDAwMDA2MDEyLCAweDAwMDAwMERGLCAweDAg fSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOEEsIDB4MCB9LAorfTsKIAorLyogU2t5bGFrZSBI LCBTIGFuZCBVLCBhbmQgU2t5bGFrZSBZIHdpdGggMC45NVYgVmNjSU8gKi8KIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBza2xfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7Ci0J eyAweDAwMDAwMDE4LCAweDAwMDAwMGFjIH0sCi0JeyAweDAwMDA1MDEyLCAweDAwMDAwMDlkIH0s Ci0JeyAweDAwMDA3MDExLCAweDAwMDAwMDg4IH0sCi0JeyAweDAwMDAwMDE4LCAweDAwMDAwMGEx IH0sCi0JeyAweDAwMDAwMDE4LCAweDAwMDAwMDk4IH0sCi0JeyAweDAwMDA0MDEzLCAweDAwMDAw MDg4IH0sCi0JeyAweDAwMDA2MDEyLCAweDAwMDAwMDg3IH0sCi0JeyAweDAwMDAwMDE4LCAweDAw MDAwMGRmIH0sCi0JeyAweDAwMDAzMDE1LCAweDAwMDAwMDg3IH0sCi0JeyAweDAwMDAzMDE1LCAw eDAwMDAwMGM3IH0sCi0JeyAweDAwMDAwMDE4LCAweDAwMDAwMGM3IH0sCisJeyAweDAwMDAwMDE4 LCAweDAwMDAwMEFDLCAweDAgfSwKKwl7IDB4MDAwMDUwMTIsIDB4MDAwMDAwOUQsIDB4MCB9LAor CXsgMHgwMDAwNzAxMSwgMHgwMDAwMDA4OCwgMHgwIH0sCisJeyAweDAwMDAwMDE4LCAweDAwMDAw MEExLCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOTgsIDB4MCB9LAorCXsgMHgwMDAw NDAxMywgMHgwMDAwMDA4OCwgMHgwIH0sCisJeyAweDAwMDA2MDEyLCAweDAwMDAwMDg3LCAweDAg fSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwREYsIDB4MCB9LAorCXsgMHgwMDAwMzAxNSwgMHgw MDAwMDA4NywgMHgwIH0sCS8qIERlZmF1bHQgKi8KKwl7IDB4MDAwMDMwMTUsIDB4MDAwMDAwQzcs IDB4MCB9LAorCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBDNywgMHgwIH0sCit9OworCisvKiBTa3ls YWtlIFkgd2l0aCAwLjg1ViBWY2NJTyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3Ry YW5zIHNrbF95XzA4NXZfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7CisJeyAweDAwMDAwMDE4 LCAweDAwMDAwMEExLCAweDAgfSwKKwl7IDB4MDAwMDUwMTIsIDB4MDAwMDAwREYsIDB4MCB9LAor CXsgMHgwMDAwNzAxMSwgMHgwMDAwMDA4NCwgMHgwIH0sCisJeyAweDAwMDAwMDE4LCAweDAwMDAw MEE0LCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOUQsIDB4MCB9LAorCXsgMHgwMDAw NDAxMywgMHgwMDAwMDA4MCwgMHgwIH0sCisJeyAweDAwMDA2MDEzLCAweDAwMDAwMEM3LCAweDAg fSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOEEsIDB4MCB9LAorCXsgMHgwMDAwMzAxNSwgMHgw MDAwMDBDNywgMHgwIH0sCS8qIERlZmF1bHQgKi8KKwl7IDB4ODAwMDMwMTUsIDB4MDAwMDAwQzcs IDB4NyB9LAkvKiBVc2VzIElfYm9vc3QgKi8KKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwQzcsIDB4 MCB9LAogfTsKIAogc3RydWN0IGJ4dF9kZGlfYnVmX3RyYW5zIHsKQEAgLTE5MCw3ICsyNzAsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGJ4dF9kZGlfYnVmX3RyYW5zIGJ4dF9kZGlfdHJhbnNsYXRp b25zX2RwW10gPSB7CiAJeyAxNTQsIDB4OUEsIDAsIDY0LCAgZmFsc2UgfSwJLyogNjoJNjAwCQk2 ICAgKi8KIAl7IDEwMiwgMHg5QSwgMCwgMTI4LCBmYWxzZSB9LAkvKiA3Ogk4MDAJCTAgICAqLwog CXsgMTU0LCAweDlBLCAwLCA4NSwgIGZhbHNlIH0sCS8qIDg6CTgwMAkJMy41ICovCi0JeyAxNTQs IDB4OUEsIDEsIDEyOCwgZmFsc2UgfSwgIC8qIDk6CTEyMDAJCTAgICAqLworCXsgMTU0LCAweDlB LCAxLCAxMjgsIGZhbHNlIH0sCS8qIDk6CTEyMDAJCTAgICAqLwogfTsKIAogLyogQlNwZWMgaGFz IDIgcmVjb21tZW5kZWQgdmFsdWVzIC0gZW50cmllcyAwIGFuZCA4LgpAQCAtMjEwLDYgKzI5MCw5 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYnh0X2RkaV9idWZfdHJhbnMgYnh0X2RkaV90cmFuc2xh dGlvbnNfaGRtaVtdID0gewogCXsgMTU0LCAweDlBLCAxLCAxMjgsIHRydWUgfSwJLyogOToJMTIw MAkJMCAgICovCiB9OwogCitzdGF0aWMgdm9pZCBieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgbGV2ZWwsCisJCQkJICAgIGVudW0gcG9ydCBwb3J0LCBp bnQgdHlwZSk7CisKIHN0YXRpYyB2b2lkIGRkaV9nZXRfZW5jb2Rlcl9wb3J0KHN0cnVjdCBpbnRl bF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAogCQkJCSBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICoqZGlnX3BvcnQsCiAJCQkJIGVudW0gcG9ydCAqcG9ydCkKQEAgLTI0OSw2ICszMzIsOTkgQEAg aW50ZWxfZGlnX3BvcnRfc3VwcG9ydHNfaGRtaShjb25zdCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICppbnRlbF9kaWdfcG9ydCkKIAlyZXR1cm4gaW50ZWxfZGlnX3BvcnQtPmhkbWkuaGRtaV9y ZWc7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqc2tsX2dldF9idWZf dHJhbnNfZHAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkJCQlpbnQgKm5fZW50cmllcykK K3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl OworCWNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRpb25zOworCXN0YXRp YyBpbnQgaXNfMDk1diA9IC0xOworCisJaWYgKGlzXzA5NXYgPT0gLTEpIHsKKwkJdTMyIHNwcjEg PSBJOTE1X1JFQUQoVUFJTUlfU1BSMSk7CisJCWlzXzA5NXYgPSBzcHIxICYgU0tMX1ZDQ0lPX01B U0s7CisJfQorCisJaWYgKElTX1NLTF9VTFgoZGV2KSAmJiAhaXNfMDk1dikgeworCQlkZGlfdHJh bnNsYXRpb25zID0gc2tsX3lfMDg1dl9kZGlfdHJhbnNsYXRpb25zX2RwOworCQkqbl9lbnRyaWVz ID0gQVJSQVlfU0laRShza2xfeV8wODV2X2RkaV90cmFuc2xhdGlvbnNfZHApOworCX0gZWxzZSBp ZiAoSVNfU0tMX1VMVChkZXYpKSB7CisJCWRkaV90cmFuc2xhdGlvbnMgPSBza2xfdV9kZGlfdHJh bnNsYXRpb25zX2RwOworCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShza2xfdV9kZGlfdHJhbnNs YXRpb25zX2RwKTsKKwl9IGVsc2UgeworCQlkZGlfdHJhbnNsYXRpb25zID0gc2tsX2RkaV90cmFu c2xhdGlvbnNfZHA7CisJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHNrbF9kZGlfdHJhbnNsYXRp b25zX2RwKTsKKwl9CisKKwlyZXR1cm4gZGRpX3RyYW5zbGF0aW9uczsKK30KKworc3RhdGljIGNv bnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICpza2xfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKKwkJCQkJCQkgaW50ICpuX2VudHJpZXMpCit7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwljb25zdCBzdHJ1Y3Qg ZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9uczsKKwlzdGF0aWMgaW50IGlzXzA5NXYgPSAt MTsKKworCWlmIChpc18wOTV2ID09IC0xKSB7CisJCXUzMiBzcHIxID0gSTkxNV9SRUFEKFVBSU1J X1NQUjEpOworCQlpc18wOTV2ID0gc3ByMSAmIFNLTF9WQ0NJT19NQVNLOworCX0KKworCWlmIChJ U19TS0xfVUxYKGRldikgJiYgIWlzXzA5NXYpIHsKKwkJaWYgKGRldl9wcml2LT5lZHBfbG93X3Zz d2luZykgeworCQkJZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF95XzA4NXZfZGRpX3RyYW5zbGF0aW9u c19lZHA7CisJCQkqbl9lbnRyaWVzID0KKwkJCQlBUlJBWV9TSVpFKHNrbF95XzA4NXZfZGRpX3Ry YW5zbGF0aW9uc19lZHApOworCQl9IGVsc2UgeworCQkJZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF95 XzA4NXZfZGRpX3RyYW5zbGF0aW9uc19kcDsKKwkJCSpuX2VudHJpZXMgPQorCQkJCUFSUkFZX1NJ WkUoc2tsX3lfMDg1dl9kZGlfdHJhbnNsYXRpb25zX2RwKTsKKwkJfQorCX0gZWxzZSBpZiAoSVNf U0tMX1VMVChkZXYpKSB7CisJCWlmIChkZXZfcHJpdi0+ZWRwX2xvd192c3dpbmcpIHsKKwkJCWRk aV90cmFuc2xhdGlvbnMgPSBza2xfdV9kZGlfdHJhbnNsYXRpb25zX2VkcDsKKwkJCSpuX2VudHJp ZXMgPSBBUlJBWV9TSVpFKHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZWRwKTsKKwkJfSBlbHNlIHsK KwkJCWRkaV90cmFuc2xhdGlvbnMgPSBza2xfdV9kZGlfdHJhbnNsYXRpb25zX2RwOworCQkJKm5f ZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX3VfZGRpX3RyYW5zbGF0aW9uc19kcCk7CisJCX0KKwl9 IGVsc2UgeworCQlpZiAoZGV2X3ByaXYtPmVkcF9sb3dfdnN3aW5nKSB7CisJCQlkZGlfdHJhbnNs YXRpb25zID0gc2tsX2RkaV90cmFuc2xhdGlvbnNfZWRwOworCQkJKm5fZW50cmllcyA9IEFSUkFZ X1NJWkUoc2tsX2RkaV90cmFuc2xhdGlvbnNfZWRwKTsKKwkJfSBlbHNlIHsKKwkJCWRkaV90cmFu c2xhdGlvbnMgPSBza2xfZGRpX3RyYW5zbGF0aW9uc19kcDsKKwkJCSpuX2VudHJpZXMgPSBBUlJB WV9TSVpFKHNrbF9kZGlfdHJhbnNsYXRpb25zX2RwKTsKKwkJfQorCX0KKworCXJldHVybiBkZGlf dHJhbnNsYXRpb25zOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgKgor c2tsX2dldF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkgICAgICAg aW50ICpuX2VudHJpZXMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKKwljb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5z bGF0aW9uczsKKwlzdGF0aWMgaW50IGlzXzA5NXYgPSAtMTsKKworCWlmIChpc18wOTV2ID09IC0x KSB7CisJCXUzMiBzcHIxID0gSTkxNV9SRUFEKFVBSU1JX1NQUjEpOworCQlpc18wOTV2ID0gc3By MSAmIFNLTF9WQ0NJT19NQVNLOworCX0KKworCWlmIChJU19TS0xfVUxYKGRldikgJiYgIWlzXzA5 NXYpIHsKKwkJZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF95XzA4NXZfZGRpX3RyYW5zbGF0aW9uc19o ZG1pOworCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShza2xfeV8wODV2X2RkaV90cmFuc2xhdGlv bnNfaGRtaSk7CisJfSBlbHNlIHsKKwkJZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF9kZGlfdHJhbnNs YXRpb25zX2hkbWk7CisJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHNrbF9kZGlfdHJhbnNsYXRp b25zX2hkbWkpOworCX0KKworCXJldHVybiBkZGlfdHJhbnNsYXRpb25zOworfQorCiAvKgogICog U3RhcnRpbmcgd2l0aCBIYXN3ZWxsLCBEREkgcG9ydCBidWZmZXJzIG11c3QgYmUgcHJvZ3JhbW1l ZCB3aXRoIGNvcnJlY3QKICAqIHZhbHVlcyBpbiBhZHZhbmNlLiBUaGUgYnVmZmVyIHZhbHVlcyBh cmUgZGlmZmVyZW50IGZvciBGREkgYW5kIERQIG1vZGVzLApAQCAtMjc5LDIwICs0NTUsMTMgQEAg c3RhdGljIHZvaWQgaW50ZWxfcHJlcGFyZV9kZGlfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBlbnVtIHBvcnQgcG9ydCwKIAkJCQkJSU5URUxfT1VUUFVUX0hETUkpOwogCQlyZXR1cm47 CiAJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldikpIHsKLQkJZGRpX3RyYW5zbGF0aW9uc19mZGkg PSBOVUxMOwotCQlkZGlfdHJhbnNsYXRpb25zX2RwID0gc2tsX2RkaV90cmFuc2xhdGlvbnNfZHA7 Ci0JCW5fZHBfZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX2RkaV90cmFuc2xhdGlvbnNfZHApOwot CQlpZiAoZGV2X3ByaXYtPmVkcF9sb3dfdnN3aW5nKSB7Ci0JCQlkZGlfdHJhbnNsYXRpb25zX2Vk cCA9IHNrbF9kZGlfdHJhbnNsYXRpb25zX2VkcDsKLQkJCW5fZWRwX2VudHJpZXMgPSBBUlJBWV9T SVpFKHNrbF9kZGlfdHJhbnNsYXRpb25zX2VkcCk7Ci0JCX0gZWxzZSB7Ci0JCQlkZGlfdHJhbnNs YXRpb25zX2VkcCA9IHNrbF9kZGlfdHJhbnNsYXRpb25zX2RwOwotCQkJbl9lZHBfZW50cmllcyA9 IEFSUkFZX1NJWkUoc2tsX2RkaV90cmFuc2xhdGlvbnNfZHApOwotCQl9Ci0KLQkJZGRpX3RyYW5z bGF0aW9uc19oZG1pID0gc2tsX2RkaV90cmFuc2xhdGlvbnNfaGRtaTsKLQkJbl9oZG1pX2VudHJp ZXMgPSBBUlJBWV9TSVpFKHNrbF9kZGlfdHJhbnNsYXRpb25zX2hkbWkpOwotCQloZG1pX2RlZmF1 bHRfZW50cnkgPSA3OworCQlkZGlfdHJhbnNsYXRpb25zX2RwID0KKwkJCQlza2xfZ2V0X2J1Zl90 cmFuc19kcChkZXYsICZuX2RwX2VudHJpZXMpOworCQlkZGlfdHJhbnNsYXRpb25zX2VkcCA9CisJ CQkJc2tsX2dldF9idWZfdHJhbnNfZWRwKGRldiwgJm5fZWRwX2VudHJpZXMpOworCQlkZGlfdHJh bnNsYXRpb25zX2hkbWkgPQorCQkJCXNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoZGV2LCAmbl9oZG1p X2VudHJpZXMpOworCQloZG1pX2RlZmF1bHRfZW50cnkgPSA4OwogCX0gZWxzZSBpZiAoSVNfQlJP QURXRUxMKGRldikpIHsKIAkJZGRpX3RyYW5zbGF0aW9uc19mZGkgPSBiZHdfZGRpX3RyYW5zbGF0 aW9uc19mZGk7CiAJCWRkaV90cmFuc2xhdGlvbnNfZHAgPSBiZHdfZGRpX3RyYW5zbGF0aW9uc19k cDsKQEAgLTE4MDYsOCArMTk3NSw0OSBAQCB2b2lkIGludGVsX2RkaV9kaXNhYmxlX3BpcGVfY2xv Y2soc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMpCiAJCQkgICBUUkFOU19DTEtfU0VMX0RJ U0FCTEVEKTsKIH0KIAotdm9pZCBieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1MzIgbGV2ZWwsCi0JCQkgICAgIGVudW0gcG9ydCBwb3J0LCBpbnQgdHlwZSkK K3N0YXRpYyB2b2lkIHNrbF9kZGlfc2V0X2lib29zdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 MzIgbGV2ZWwsCisJCQkgICAgICAgZW51bSBwb3J0IHBvcnQsIGludCB0eXBlKQoreworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJY29uc3Qg c3RydWN0IGRkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlvbnM7CisJdWludDhfdCBpYm9vc3Q7 CisJaW50IG5fZW50cmllczsKKwl1MzIgcmVnOworCisJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVU X0RJU1BMQVlQT1JUKSB7CisJCWRkaV90cmFuc2xhdGlvbnMgPSBza2xfZ2V0X2J1Zl90cmFuc19k cChkZXYsICZuX2VudHJpZXMpOworCQlpYm9vc3QgPSBkZGlfdHJhbnNsYXRpb25zW3BvcnRdLmlf Ym9vc3Q7CisJfSBlbHNlIGlmICh0eXBlID09IElOVEVMX09VVFBVVF9FRFApIHsKKwkJZGRpX3Ry YW5zbGF0aW9ucyA9IHNrbF9nZXRfYnVmX3RyYW5zX2VkcChkZXYsICZuX2VudHJpZXMpOworCQlp Ym9vc3QgPSBkZGlfdHJhbnNsYXRpb25zW3BvcnRdLmlfYm9vc3Q7CisJfSBlbHNlIGlmICh0eXBl ID09IElOVEVMX09VVFBVVF9IRE1JKSB7CisJCWRkaV90cmFuc2xhdGlvbnMgPSBza2xfZ2V0X2J1 Zl90cmFuc19oZG1pKGRldiwgJm5fZW50cmllcyk7CisJCWlib29zdCA9IGRkaV90cmFuc2xhdGlv bnNbcG9ydF0uaV9ib29zdDsKKwl9IGVsc2UgeworCQlyZXR1cm47CisJfQorCisJLyogTWFrZSBz dXJlIHRoYXQgdGhlIHJlcXVlc3RlZCBJX2Jvb3N0IGlzIHZhbGlkICovCisJaWYgKGlib29zdCAm JiBpYm9vc3QgIT0gMHgxICYmIGlib29zdCAhPSAweDMgJiYgaWJvb3N0ICE9IDB4NykgeworCQlE Uk1fRVJST1IoIkludmFsaWQgSV9ib29zdCB2YWx1ZSAldVxuIiwgaWJvb3N0KTsKKwkJcmV0dXJu OworCX0KKworCXJlZyA9IEk5MTVfUkVBRChESVNQSU9fQ1JfVFhfQk1VX0NSMCk7CisJcmVnICY9 IH5CQUxBTkNFX0xFR19NQVNLKHBvcnQpOworCXJlZyAmPSB+KDEgPDwgKEJBTEFOQ0VfTEVHX0RJ U0FCTEVfU0hJRlQgKyBwb3J0KSk7CisKKwlpZiAoaWJvb3N0KSB7CisJCXJlZyB8PSBpYm9vc3Qg PDwgQkFMQU5DRV9MRUdfU0hJRlQocG9ydCk7CisJfSBlbHNlIHsKKwkJcmVnIHw9IDEgPDwgKEJB TEFOQ0VfTEVHX0RJU0FCTEVfU0hJRlQgKyBwb3J0KTsKKwl9CisKKwlJOTE1X1dSSVRFKERJU1BJ T19DUl9UWF9CTVVfQ1IwLCByZWcpOworfQorCitzdGF0aWMgdm9pZCBieHRfZGRpX3Zzd2luZ19z ZXF1ZW5jZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgbGV2ZWwsCisJCQkJICAgIGVudW0g cG9ydCBwb3J0LCBpbnQgdHlwZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwogCWNvbnN0IHN0cnVjdCBieHRfZGRpX2J1Zl90cmFucyAq ZGRpX3RyYW5zbGF0aW9uczsKQEAgLTE4NjcsNiArMjA3Nyw3MyBAQCB2b2lkIGJ4dF9kZGlfdnN3 aW5nX3NlcXVlbmNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBsZXZlbCwKIAlJOTE1X1dS SVRFKEJYVF9QT1JUX1BDU19EVzEwX0dSUChwb3J0KSwgdmFsKTsKIH0KIAorc3RhdGljIHVpbnQz Ml90IHRyYW5zbGF0ZV9zaWduYWxfbGV2ZWwoaW50IHNpZ25hbF9sZXZlbHMpCit7CisJdWludDMy X3QgbGV2ZWw7CisKKwlzd2l0Y2ggKHNpZ25hbF9sZXZlbHMpIHsKKwlkZWZhdWx0OgorCQlEUk1f REVCVUdfS01TKCJVbnN1cHBvcnRlZCB2b2x0YWdlIHN3aW5nL3ByZS1lbXBoYXNpcyBsZXZlbDog IgorCQkJICAgICAgIjB4JXhcbiIsIHNpZ25hbF9sZXZlbHMpOworCWNhc2UgRFBfVFJBSU5fVk9M VEFHRV9TV0lOR19MRVZFTF8wIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDoKKwkJbGV2ZWwg PSAwOworCQlicmVhazsKKwljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMCB8IERQ X1RSQUlOX1BSRV9FTVBIX0xFVkVMXzE6CisJCWxldmVsID0gMTsKKwkJYnJlYWs7CisJY2FzZSBE UF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzAgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8y OgorCQlsZXZlbCA9IDI7CisJCWJyZWFrOworCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19M RVZFTF8wIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMzoKKwkJbGV2ZWwgPSAzOworCQlicmVh azsKKworCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8xIHwgRFBfVFJBSU5fUFJF X0VNUEhfTEVWRUxfMDoKKwkJbGV2ZWwgPSA0OworCQlicmVhazsKKwljYXNlIERQX1RSQUlOX1ZP TFRBR0VfU1dJTkdfTEVWRUxfMSB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzE6CisJCWxldmVs ID0gNTsKKwkJYnJlYWs7CisJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzEgfCBE UF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8yOgorCQlsZXZlbCA9IDY7CisJCWJyZWFrOworCisJY2Fz ZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzIgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZF TF8wOgorCQlsZXZlbCA9IDc7CisJCWJyZWFrOworCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lO R19MRVZFTF8yIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMToKKwkJbGV2ZWwgPSA4OworCQli cmVhazsKKworCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zIHwgRFBfVFJBSU5f UFJFX0VNUEhfTEVWRUxfMDoKKwkJbGV2ZWwgPSA5OworCQlicmVhazsKKwl9CisKKwlyZXR1cm4g bGV2ZWw7Cit9CisKK3VpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBkcF90b19k aWdfcG9ydChpbnRlbF9kcCk7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRwb3J0LT5iYXNl LmJhc2UuZGV2OworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gJmRwb3J0LT5iYXNl OworCXVpbnQ4X3QgdHJhaW5fc2V0ID0gaW50ZWxfZHAtPnRyYWluX3NldFswXTsKKwlpbnQgc2ln bmFsX2xldmVscyA9IHRyYWluX3NldCAmIChEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX01BU0sgfAor CQkJCQkgRFBfVFJBSU5fUFJFX0VNUEhBU0lTX01BU0spOworCWVudW0gcG9ydCBwb3J0ID0gZHBv cnQtPnBvcnQ7CisJdWludDMyX3QgbGV2ZWw7CisKKwlsZXZlbCA9IHRyYW5zbGF0ZV9zaWduYWxf bGV2ZWwoc2lnbmFsX2xldmVscyk7CisKKwlpZiAoSVNfU0tZTEFLRShkZXYpKQorCQlza2xfZGRp X3NldF9pYm9vc3QoZGV2LCBsZXZlbCwgcG9ydCwgZW5jb2Rlci0+dHlwZSk7CisJZWxzZSBpZiAo SVNfQlJPWFRPTihkZXYpKQorCQlieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShkZXYsIGxldmVsLCBw b3J0LCBlbmNvZGVyLT50eXBlKTsKKworCXJldHVybiBERElfQlVGX1RSQU5TX1NFTEVDVChsZXZl bCk7Cit9CisKIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyKQogewogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9 ICZpbnRlbF9lbmNvZGVyLT5iYXNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggZjUyZWVm MTM4MjQ3Li4wNDFlMmQ2ZGNjNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtMzQxNyw5 MiArMzQxNyw2IEBAIGdlbjdfZWRwX3NpZ25hbF9sZXZlbHModWludDhfdCB0cmFpbl9zZXQpCiAJ fQogfQogCi0vKiBHZW43LjUncyAoSFNXKSBEUCB2b2x0YWdlIHN3aW5nIGFuZCBwcmUtZW1waGFz aXMgY29udHJvbCAqLwotc3RhdGljIHVpbnQzMl90Ci1oc3dfc2lnbmFsX2xldmVscyh1aW50OF90 IHRyYWluX3NldCkKLXsKLQlpbnQgc2lnbmFsX2xldmVscyA9IHRyYWluX3NldCAmIChEUF9UUkFJ Tl9WT0xUQUdFX1NXSU5HX01BU0sgfAotCQkJCQkgRFBfVFJBSU5fUFJFX0VNUEhBU0lTX01BU0sp OwotCXN3aXRjaCAoc2lnbmFsX2xldmVscykgewotCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lO R19MRVZFTF8wIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDoKLQkJcmV0dXJuIERESV9CVUZf VFJBTlNfU0VMRUNUKDApOwotCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wIHwg RFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMToKLQkJcmV0dXJuIERESV9CVUZfVFJBTlNfU0VMRUNU KDEpOwotCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wIHwgRFBfVFJBSU5fUFJF X0VNUEhfTEVWRUxfMjoKLQkJcmV0dXJuIERESV9CVUZfVFJBTlNfU0VMRUNUKDIpOwotCWNhc2Ug RFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxf MzoKLQkJcmV0dXJuIERESV9CVUZfVFJBTlNfU0VMRUNUKDMpOwotCi0JY2FzZSBEUF9UUkFJTl9W T0xUQUdFX1NXSU5HX0xFVkVMXzEgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8wOgotCQlyZXR1 cm4gRERJX0JVRl9UUkFOU19TRUxFQ1QoNCk7Ci0JY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5H X0xFVkVMXzEgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8xOgotCQlyZXR1cm4gRERJX0JVRl9U UkFOU19TRUxFQ1QoNSk7Ci0JY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzEgfCBE UF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8yOgotCQlyZXR1cm4gRERJX0JVRl9UUkFOU19TRUxFQ1Qo Nik7Ci0KLQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMiB8IERQX1RSQUlOX1BS RV9FTVBIX0xFVkVMXzA6Ci0JCXJldHVybiBERElfQlVGX1RSQU5TX1NFTEVDVCg3KTsKLQljYXNl IERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMiB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVM XzE6Ci0JCXJldHVybiBERElfQlVGX1RSQU5TX1NFTEVDVCg4KTsKLQotCWNhc2UgRFBfVFJBSU5f Vk9MVEFHRV9TV0lOR19MRVZFTF8zIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDoKLQkJcmV0 dXJuIERESV9CVUZfVFJBTlNfU0VMRUNUKDkpOwotCWRlZmF1bHQ6Ci0JCURSTV9ERUJVR19LTVMo IlVuc3VwcG9ydGVkIHZvbHRhZ2Ugc3dpbmcvcHJlLWVtcGhhc2lzIGxldmVsOiIKLQkJCSAgICAg ICIweCV4XG4iLCBzaWduYWxfbGV2ZWxzKTsKLQkJcmV0dXJuIERESV9CVUZfVFJBTlNfU0VMRUNU KDApOwotCX0KLX0KLQotc3RhdGljIHZvaWQgYnh0X3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKLXsKLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRw X3RvX2RpZ19wb3J0KGludGVsX2RwKTsKLQllbnVtIHBvcnQgcG9ydCA9IGRwb3J0LT5wb3J0Owot CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkcG9ydC0+YmFzZS5iYXNlLmRldjsKLQlzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZkcG9ydC0+YmFzZTsKLQl1aW50OF90IHRyYWluX3Nl dCA9IGludGVsX2RwLT50cmFpbl9zZXRbMF07Ci0JdWludDMyX3QgbGV2ZWwgPSAwOwotCi0JaW50 IHNpZ25hbF9sZXZlbHMgPSB0cmFpbl9zZXQgJiAoRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19NQVNL IHwKLQkJCQkJIERQX1RSQUlOX1BSRV9FTVBIQVNJU19NQVNLKTsKLQlzd2l0Y2ggKHNpZ25hbF9s ZXZlbHMpIHsKLQlkZWZhdWx0OgotCQlEUk1fREVCVUdfS01TKCJVbnN1cHBvcnRlZCB2b2x0YWdl IHN3aW5nL3ByZS1lbXBoIGxldmVsXG4iKTsKLQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdf TEVWRUxfMCB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA6Ci0JCWxldmVsID0gMDsKLQkJYnJl YWs7Ci0JY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzAgfCBEUF9UUkFJTl9QUkVf RU1QSF9MRVZFTF8xOgotCQlsZXZlbCA9IDE7Ci0JCWJyZWFrOwotCWNhc2UgRFBfVFJBSU5fVk9M VEFHRV9TV0lOR19MRVZFTF8wIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMjoKLQkJbGV2ZWwg PSAyOwotCQlicmVhazsKLQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMCB8IERQ X1RSQUlOX1BSRV9FTVBIX0xFVkVMXzM6Ci0JCWxldmVsID0gMzsKLQkJYnJlYWs7Ci0JY2FzZSBE UF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzEgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8w OgotCQlsZXZlbCA9IDQ7Ci0JCWJyZWFrOwotCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19M RVZFTF8xIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMToKLQkJbGV2ZWwgPSA1OwotCQlicmVh azsKLQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMSB8IERQX1RSQUlOX1BSRV9F TVBIX0xFVkVMXzI6Ci0JCWxldmVsID0gNjsKLQkJYnJlYWs7Ci0JY2FzZSBEUF9UUkFJTl9WT0xU QUdFX1NXSU5HX0xFVkVMXzIgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8wOgotCQlsZXZlbCA9 IDc7Ci0JCWJyZWFrOwotCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yIHwgRFBf VFJBSU5fUFJFX0VNUEhfTEVWRUxfMToKLQkJbGV2ZWwgPSA4OwotCQlicmVhazsKLQljYXNlIERQ X1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMyB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA6 Ci0JCWxldmVsID0gOTsKLQkJYnJlYWs7Ci0JfQotCi0JYnh0X2RkaV92c3dpbmdfc2VxdWVuY2Uo ZGV2LCBsZXZlbCwgcG9ydCwgZW5jb2Rlci0+dHlwZSk7Ci19Ci0KIC8qIFByb3Blcmx5IHVwZGF0 ZXMgIkRQIiB3aXRoIHRoZSBjb3JyZWN0IHNpZ25hbCBsZXZlbHMuICovCiBzdGF0aWMgdm9pZAog aW50ZWxfZHBfc2V0X3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWlu dDMyX3QgKkRQKQpAQCAtMzUxMCwyMiArMzQyNCwyMCBAQCBpbnRlbF9kcF9zZXRfc2lnbmFsX2xl dmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1aW50MzJfdCAqRFApCiAJc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9k cCk7CiAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsKIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7Ci0JdWludDMyX3Qg c2lnbmFsX2xldmVscywgbWFzazsKKwl1aW50MzJfdCBzaWduYWxfbGV2ZWxzLCBtYXNrID0gMDsK IAl1aW50OF90IHRyYWluX3NldCA9IGludGVsX2RwLT50cmFpbl9zZXRbMF07CiAKLQlpZiAoSVNf QlJPWFRPTihkZXYpKSB7Ci0JCXNpZ25hbF9sZXZlbHMgPSAwOwotCQlieHRfc2lnbmFsX2xldmVs cyhpbnRlbF9kcCk7Ci0JCW1hc2sgPSAwOwotCX0gZWxzZSBpZiAoSEFTX0RESShkZXYpKSB7Ci0J CXNpZ25hbF9sZXZlbHMgPSBoc3dfc2lnbmFsX2xldmVscyh0cmFpbl9zZXQpOwotCQltYXNrID0g RERJX0JVRl9FTVBfTUFTSzsKKwlpZiAoSEFTX0RESShkZXYpKSB7CisJCXNpZ25hbF9sZXZlbHMg PSBkZGlfc2lnbmFsX2xldmVscyhpbnRlbF9kcCk7CisKKwkJaWYgKElTX0JST1hUT04oZGV2KSkK KwkJCXNpZ25hbF9sZXZlbHMgPSAwOworCQllbHNlCisJCQltYXNrID0gRERJX0JVRl9FTVBfTUFT SzsKIAl9IGVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewogCQlzaWduYWxfbGV2ZWxzID0g Y2h2X3NpZ25hbF9sZXZlbHMoaW50ZWxfZHApOwotCQltYXNrID0gMDsKIAl9IGVsc2UgaWYgKElT X1ZBTExFWVZJRVcoZGV2KSkgewogCQlzaWduYWxfbGV2ZWxzID0gdmx2X3NpZ25hbF9sZXZlbHMo aW50ZWxfZHApOwotCQltYXNrID0gMDsKIAl9IGVsc2UgaWYgKElTX0dFTjcoZGV2KSAmJiBwb3J0 ID09IFBPUlRfQSkgewogCQlzaWduYWxfbGV2ZWxzID0gZ2VuN19lZHBfc2lnbmFsX2xldmVscyh0 cmFpbl9zZXQpOwogCQltYXNrID0gRURQX0xJTktfVFJBSU5fVk9MX0VNUF9NQVNLX0lWQjsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggYmNhZmVmY2YwNDhiLi5jNmNiZThjNjAyZjkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC05NTAsOCArOTUwLDcgQEAgdm9pZCBpbnRlbF9k ZGlfaW5pdF9kcF9idWZfcmVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKIHZvaWQg aW50ZWxfZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwogdm9pZCBpbnRlbF9kZGlfc2V0 X3ZjX3BheWxvYWRfYWxsb2Moc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sIHN0YXRlKTsKLXZv aWQgYnh0X2RkaV92c3dpbmdfc2VxdWVuY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGxl dmVsLAotCQkJCWVudW0gcG9ydCBwb3J0LCBpbnQgdHlwZSk7Cit1aW50MzJfdCBkZGlfc2lnbmFs X2xldmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKIAogLyogaW50ZWxfZnJvbnRidWZm ZXIuYyAqLwogdm9pZCBpbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAotLSAKMi4xLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==