From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: [PATCH] drm/i915/skl: Buffer translation improvements Date: Thu, 18 Jun 2015 12:50:33 +0300 Message-ID: <20150618095033.GH14570@boom> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 5A3E46ECAC for ; Thu, 18 Jun 2015 02:51:30 -0700 (PDT) Content-Disposition: inline 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 dCBmb3IgSV9ib29zdCBmb3IgdGhlIGVudHJpZXMgdGhhdCBuZWVkcyB0aGlzLgoKSXNzdWU6IFZJ Wi01Njc3ClNpZ25lZC1vZmYtYnk6IERhdmlkIFdlaW5laGFsbCA8ZGF2aWQud2VpbmVoYWxsQGxp bnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICB8ICAg OCArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICB8ICAxMiArKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgfCA0MzMgKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICB8ICA0NiArKysr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgIDIgKwogNSBmaWxlcyBjaGFu Z2VkLCAzNzkgaW5zZXJ0aW9ucygrKSwgMTIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCmluZGV4IDQ5MWVmMGNmY2IwYi4uMDlhNTdhNTg0ZjVmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKQEAgLTI0MTUsNiArMjQxNSwxNCBAQCBzdHJ1Y3QgZHJtX2k5MTVfY21kX3RhYmxl IHsKIC8qIFVMWCBtYWNoaW5lcyBhcmUgYWxzbyBjb25zaWRlcmVkIFVMVC4gKi8KICNkZWZpbmUg SVNfSFNXX1VMWChkZXYpCQkoSU5URUxfREVWSUQoZGV2KSA9PSAweDBBMEUgfHwgXAogCQkJCSBJ TlRFTF9ERVZJRChkZXYpID09IDB4MEExRSkKKyNkZWZpbmUgSVNfU0tMX1VMVChkZXYpCQkoSU5U RUxfREVWSUQoZGV2KSA9PSAweDE5MDYgfHwgXAorCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4 MTkxMyB8fCBcCisJCQkJIElOVEVMX0RFVklEKGRldikgPT0gMHgxOTE2IHx8IFwKKwkJCQkgSU5U RUxfREVWSUQoZGV2KSA9PSAweDE5MjEgfHwgXAorCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4 MTkyNikKKyNkZWZpbmUgSVNfU0tMX1VMWChkZXYpCQkoSU5URUxfREVWSUQoZGV2KSA9PSAweDE5 MEUgfHwgXAorCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4MTkxNSB8fCBcCisJCQkJIElOVEVM X0RFVklEKGRldikgPT0gMHgxOTFFKQogI2RlZmluZSBJU19QUkVMSU1JTkFSWV9IVyhpbnRlbF9p bmZvKSAoKGludGVsX2luZm8pLT5pc19wcmVsaW1pbmFyeSkKIAogI2RlZmluZSBTS0xfUkVWSURf QTAJCSgweDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCAwYjk3OWFkMTZkNDEuLmZiNjNl YWQyYjhlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC0xMzgyLDYgKzEzODIsMTggQEAg ZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7CiAJCQkJCQkJX1BPUlRfVFhfRFcxNF9MTjBfQykg KyBcCiAJCQkJCSBfQlhUX0xBTkVfT0ZGU0VUKGxhbmUpKQogCisvKiBVQUlNSSBzY3JhdGNoIHBh ZCByZWdpc3RlciAxICovCisjZGVmaW5lIFVBSU1JX1NQUjEJCQkweDRGMDc0CisvKiBTS0wgVmNj SU8gbWFzayAqLworI2RlZmluZSBTS0xfVkNDSU9fTUFTSwkJCTB4MQorLyogU0tMIGJhbGFuY2Ug bGVnIHJlZ2lzdGVyICovCisjZGVmaW5lIERJU1BJT19DUl9UWF9CTVVfQ1IwCQkweDZDMDBDCisv KiBJX2Jvb3N0IHZhbHVlcyAqLworI2RlZmluZSBCQUxBTkNFX0xFR19TSElGVChwb3J0KQkJKDgr MyoocG9ydCkpCisjZGVmaW5lIEJBTEFOQ0VfTEVHX01BU0socG9ydCkJCSg3PDwoOCszKihwb3J0 KSkpCisvKiBCYWxhbmNlIGxlZyBkaXNhYmxlIGJpdHMgKi8KKyNkZWZpbmUgQkFMQU5DRV9MRUdf RElTQUJMRV9TSElGVAkyMworCiAvKgogICogRmVuY2UgcmVnaXN0ZXJzCiAgKi8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMKaW5kZXggMzFiMjllODc4MWFjLi4zYWJjYjQzYmVjOGIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RkaS5jCkBAIC0zMSw2ICszMSw3IEBACiBzdHJ1Y3QgZGRpX2J1Zl90cmFu cyB7CiAJdTMyIHRyYW5zMTsJLyogYmFsYW5jZSBsZWcgZW5hYmxlLCBkZS1lbXBoIGxldmVsICov CiAJdTMyIHRyYW5zMjsJLyogdnJlZiBzZWwsIHZzd2luZyAqLworCXU4IGlfYm9vc3Q7CS8qIFNL TDogSV9ib29zdDsgdmFsaWQ6IDB4MCwgMHgxLCAweDMsIDB4NyAqLwogfTsKIAogLyogSERNSS9E VkkgbW9kZXMgaWdub3JlIGV2ZXJ5dGhpbmcgYnV0IHRoZSBsYXN0IDIgaXRlbXMuIFNvIHdlIHNo YXJlCkBAIC0zOCwxMzQgKzM5LDIxMyBAQCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyB7CiAgKiBhdXRv bWF0aWNhbGx5IGFkYXB0IHRvIEhETUkgY29ubmVjdGlvbnMgYXMgd2VsbAogICovCiBzdGF0aWMg Y29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgaHN3X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsK LQl7IDB4MDBGRkZGRkYsIDB4MDAwNjAwMEUgfSwKLQl7IDB4MDBENzVGRkYsIDB4MDAwNTAwMEEg fSwKLQl7IDB4MDBDMzBGRkYsIDB4MDAwNDAwMDYgfSwKLQl7IDB4ODBBQUFGRkYsIDB4MDAwQjAw MDAgfSwKLQl7IDB4MDBGRkZGRkYsIDB4MDAwNTAwMEEgfSwKLQl7IDB4MDBENzVGRkYsIDB4MDAw QzAwMDQgfSwKLQl7IDB4ODBDMzBGRkYsIDB4MDAwQjAwMDAgfSwKLQl7IDB4MDBGRkZGRkYsIDB4 MDAwNDAwMDYgfSwKLQl7IDB4ODBENzVGRkYsIDB4MDAwQjAwMDAgfSwKKwl7IDB4MDBGRkZGRkYs IDB4MDAwNjAwMEUsIDB4MCB9LAorCXsgMHgwMEQ3NUZGRiwgMHgwMDA1MDAwQSwgMHgwIH0sCisJ eyAweDAwQzMwRkZGLCAweDAwMDQwMDA2LCAweDAgfSwKKwl7IDB4ODBBQUFGRkYsIDB4MDAwQjAw MDAsIDB4MCB9LAorCXsgMHgwMEZGRkZGRiwgMHgwMDA1MDAwQSwgMHgwIH0sCisJeyAweDAwRDc1 RkZGLCAweDAwMEMwMDA0LCAweDAgfSwKKwl7IDB4ODBDMzBGRkYsIDB4MDAwQjAwMDAsIDB4MCB9 LAorCXsgMHgwMEZGRkZGRiwgMHgwMDA0MDAwNiwgMHgwIH0sCisJeyAweDgwRDc1RkZGLCAweDAw MEIwMDAwLCAweDAgfSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBo c3dfZGRpX3RyYW5zbGF0aW9uc19mZGlbXSA9IHsKLQl7IDB4MDBGRkZGRkYsIDB4MDAwNzAwMEUg fSwKLQl7IDB4MDBENzVGRkYsIDB4MDAwRjAwMEEgfSwKLQl7IDB4MDBDMzBGRkYsIDB4MDAwNjAw MDYgfSwKLQl7IDB4MDBBQUFGRkYsIDB4MDAxRTAwMDAgfSwKLQl7IDB4MDBGRkZGRkYsIDB4MDAw RjAwMEEgfSwKLQl7IDB4MDBENzVGRkYsIDB4MDAxNjAwMDQgfSwKLQl7IDB4MDBDMzBGRkYsIDB4 MDAxRTAwMDAgfSwKLQl7IDB4MDBGRkZGRkYsIDB4MDAwNjAwMDYgfSwKLQl7IDB4MDBENzVGRkYs IDB4MDAxRTAwMDAgfSwKKwl7IDB4MDBGRkZGRkYsIDB4MDAwNzAwMEUsIDB4MCB9LAorCXsgMHgw MEQ3NUZGRiwgMHgwMDBGMDAwQSwgMHgwIH0sCisJeyAweDAwQzMwRkZGLCAweDAwMDYwMDA2LCAw eDAgfSwKKwl7IDB4MDBBQUFGRkYsIDB4MDAxRTAwMDAsIDB4MCB9LAorCXsgMHgwMEZGRkZGRiwg MHgwMDBGMDAwQSwgMHgwIH0sCisJeyAweDAwRDc1RkZGLCAweDAwMTYwMDA0LCAweDAgfSwKKwl7 IDB4MDBDMzBGRkYsIDB4MDAxRTAwMDAsIDB4MCB9LAorCXsgMHgwMEZGRkZGRiwgMHgwMDA2MDAw NiwgMHgwIH0sCisJeyAweDAwRDc1RkZGLCAweDAwMUUwMDAwLCAweDAgfSwKIH07CiAKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBoc3dfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10g PSB7CiAJCQkJCS8qIElkeAlOVCBtViBkCVQgbVYgZAlkYgkqLwotCXsgMHgwMEZGRkZGRiwgMHgw MDA2MDAwRSB9LAkvKiAwOgk0MDAJNDAwCTAJKi8KLQl7IDB4MDBFNzlGRkYsIDB4MDAwRTAwMEMg fSwJLyogMToJNDAwCTUwMAkyCSovCi0JeyAweDAwRDc1RkZGLCAweDAwMDUwMDBBIH0sCS8qIDI6 CTQwMAk2MDAJMy41CSovCi0JeyAweDAwRkZGRkZGLCAweDAwMDUwMDBBIH0sCS8qIDM6CTYwMAk2 MDAJMAkqLwotCXsgMHgwMEU3OUZGRiwgMHgwMDFEMDAwNyB9LAkvKiA0Ogk2MDAJNzUwCTIJKi8K LQl7IDB4MDBENzVGRkYsIDB4MDAwQzAwMDQgfSwJLyogNToJNjAwCTkwMAkzLjUJKi8KLQl7IDB4 MDBGRkZGRkYsIDB4MDAwNDAwMDYgfSwJLyogNjoJODAwCTgwMAkwCSovCi0JeyAweDgwRTc5RkZG LCAweDAwMDMwMDAyIH0sCS8qIDc6CTgwMAkxMDAwCTIJKi8KLQl7IDB4MDBGRkZGRkYsIDB4MDAx NDAwMDUgfSwJLyogODoJODUwCTg1MAkwCSovCi0JeyAweDAwRkZGRkZGLCAweDAwMEMwMDA0IH0s CS8qIDk6CTkwMAk5MDAJMAkqLwotCXsgMHgwMEZGRkZGRiwgMHgwMDFDMDAwMyB9LAkvKiAxMDoJ OTUwCTk1MAkwCSovCi0JeyAweDgwRkZGRkZGLCAweDAwMDMwMDAyIH0sCS8qIDExOgkxMDAwCTEw MDAJMAkqLworCXsgMHgwMEZGRkZGRiwgMHgwMDA2MDAwRSwgMHgwIH0sLyogMDoJNDAwCTQwMAkw CSovCisJeyAweDAwRTc5RkZGLCAweDAwMEUwMDBDLCAweDAgfSwvKiAxOgk0MDAJNTAwCTIJKi8K Kwl7IDB4MDBENzVGRkYsIDB4MDAwNTAwMEEsIDB4MCB9LC8qIDI6CTQwMAk2MDAJMy41CSovCisJ eyAweDAwRkZGRkZGLCAweDAwMDUwMDBBLCAweDAgfSwvKiAzOgk2MDAJNjAwCTAJKi8KKwl7IDB4 MDBFNzlGRkYsIDB4MDAxRDAwMDcsIDB4MCB9LC8qIDQ6CTYwMAk3NTAJMgkqLworCXsgMHgwMEQ3 NUZGRiwgMHgwMDBDMDAwNCwgMHgwIH0sLyogNToJNjAwCTkwMAkzLjUJKi8KKwl7IDB4MDBGRkZG RkYsIDB4MDAwNDAwMDYsIDB4MCB9LC8qIDY6CTgwMAk4MDAJMAkqLworCXsgMHg4MEU3OUZGRiwg MHgwMDAzMDAwMiwgMHgwIH0sLyogNzoJODAwCTEwMDAJMgkqLworCXsgMHgwMEZGRkZGRiwgMHgw MDE0MDAwNSwgMHgwIH0sLyogODoJODUwCTg1MAkwCSovCisJeyAweDAwRkZGRkZGLCAweDAwMEMw MDA0LCAweDAgfSwvKiA5Ogk5MDAJOTAwCTAJKi8KKwl7IDB4MDBGRkZGRkYsIDB4MDAxQzAwMDMs IDB4MCB9LC8qIDEwOgk5NTAJOTUwCTAJKi8KKwl7IDB4ODBGRkZGRkYsIDB4MDAwMzAwMDIsIDB4 MCB9LC8qIDExOgkxMDAwCTEwMDAJMAkqLwogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlf YnVmX3RyYW5zIGJkd19kZGlfdHJhbnNsYXRpb25zX2VkcFtdID0gewotCXsgMHgwMEZGRkZGRiwg MHgwMDAwMDAxMiB9LAotCXsgMHgwMEVCQUZGRiwgMHgwMDAyMDAxMSB9LAotCXsgMHgwMEM3MUZG RiwgMHgwMDA2MDAwRiB9LAotCXsgMHgwMEFBQUZGRiwgMHgwMDBFMDAwQSB9LAotCXsgMHgwMEZG RkZGRiwgMHgwMDAyMDAxMSB9LAotCXsgMHgwMERCNkZGRiwgMHgwMDA1MDAwRiB9LAotCXsgMHgw MEJFRUZGRiwgMHgwMDBBMDAwQyB9LAotCXsgMHgwMEZGRkZGRiwgMHgwMDA1MDAwRiB9LAotCXsg MHgwMERCNkZGRiwgMHgwMDBBMDAwQyB9LAorCXsgMHgwMEZGRkZGRiwgMHgwMDAwMDAxMiwgMHgw IH0sCisJeyAweDAwRUJBRkZGLCAweDAwMDIwMDExLCAweDAgfSwKKwl7IDB4MDBDNzFGRkYsIDB4 MDAwNjAwMEYsIDB4MCB9LAorCXsgMHgwMEFBQUZGRiwgMHgwMDBFMDAwQSwgMHgwIH0sCisJeyAw eDAwRkZGRkZGLCAweDAwMDIwMDExLCAweDAgfSwKKwl7IDB4MDBEQjZGRkYsIDB4MDAwNTAwMEYs IDB4MCB9LAorCXsgMHgwMEJFRUZGRiwgMHgwMDBBMDAwQywgMHgwIH0sCisJeyAweDAwRkZGRkZG LCAweDAwMDUwMDBGLCAweDAgfSwKKwl7IDB4MDBEQjZGRkYsIDB4MDAwQTAwMEMsIDB4MCB9LAog fTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIGJkd19kZGlfdHJhbnNsYXRp b25zX2RwW10gPSB7Ci0JeyAweDAwRkZGRkZGLCAweDAwMDcwMDBFIH0sCi0JeyAweDAwRDc1RkZG LCAweDAwMEUwMDBBIH0sCi0JeyAweDAwQkVGRkZGLCAweDAwMTQwMDA2IH0sCi0JeyAweDgwQjJD RkZGLCAweDAwMUIwMDAyIH0sCi0JeyAweDAwRkZGRkZGLCAweDAwMEUwMDBBIH0sCi0JeyAweDAw REI2RkZGLCAweDAwMTYwMDA1IH0sCi0JeyAweDgwQzcxRkZGLCAweDAwMUEwMDAyIH0sCi0JeyAw eDAwRjdERkZGLCAweDAwMTgwMDA0IH0sCi0JeyAweDgwRDc1RkZGLCAweDAwMUIwMDAyIH0sCisJ eyAweDAwRkZGRkZGLCAweDAwMDcwMDBFLCAweDAgfSwKKwl7IDB4MDBENzVGRkYsIDB4MDAwRTAw MEEsIDB4MCB9LAorCXsgMHgwMEJFRkZGRiwgMHgwMDE0MDAwNiwgMHgwIH0sCisJeyAweDgwQjJD RkZGLCAweDAwMUIwMDAyLCAweDAgfSwKKwl7IDB4MDBGRkZGRkYsIDB4MDAwRTAwMEEsIDB4MCB9 LAorCXsgMHgwMERCNkZGRiwgMHgwMDE2MDAwNSwgMHgwIH0sCisJeyAweDgwQzcxRkZGLCAweDAw MUEwMDAyLCAweDAgfSwKKwl7IDB4MDBGN0RGRkYsIDB4MDAxODAwMDQsIDB4MCB9LAorCXsgMHg4 MEQ3NUZGRiwgMHgwMDFCMDAwMiwgMHgwIH0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRk aV9idWZfdHJhbnMgYmR3X2RkaV90cmFuc2xhdGlvbnNfZmRpW10gPSB7Ci0JeyAweDAwRkZGRkZG LCAweDAwMDEwMDBFIH0sCi0JeyAweDAwRDc1RkZGLCAweDAwMDQwMDBBIH0sCi0JeyAweDAwQzMw RkZGLCAweDAwMDcwMDA2IH0sCi0JeyAweDAwQUFBRkZGLCAweDAwMEMwMDAwIH0sCi0JeyAweDAw RkZGRkZGLCAweDAwMDQwMDBBIH0sCi0JeyAweDAwRDc1RkZGLCAweDAwMDkwMDA0IH0sCi0JeyAw eDAwQzMwRkZGLCAweDAwMEMwMDAwIH0sCi0JeyAweDAwRkZGRkZGLCAweDAwMDcwMDA2IH0sCi0J eyAweDAwRDc1RkZGLCAweDAwMEMwMDAwIH0sCisJeyAweDAwRkZGRkZGLCAweDAwMDEwMDBFLCAw eDAgfSwKKwl7IDB4MDBENzVGRkYsIDB4MDAwNDAwMEEsIDB4MCB9LAorCXsgMHgwMEMzMEZGRiwg MHgwMDA3MDAwNiwgMHgwIH0sCisJeyAweDAwQUFBRkZGLCAweDAwMEMwMDAwLCAweDAgfSwKKwl7 IDB4MDBGRkZGRkYsIDB4MDAwNDAwMEEsIDB4MCB9LAorCXsgMHgwMEQ3NUZGRiwgMHgwMDA5MDAw NCwgMHgwIH0sCisJeyAweDAwQzMwRkZGLCAweDAwMEMwMDAwLCAweDAgfSwKKwl7IDB4MDBGRkZG RkYsIDB4MDAwNzAwMDYsIDB4MCB9LAorCXsgMHgwMEQ3NUZGRiwgMHgwMDBDMDAwMCwgMHgwIH0s CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgYmR3X2RkaV90cmFuc2xh dGlvbnNfaGRtaVtdID0gewogCQkJCQkvKiBJZHgJTlQgbVYgZAlUIG1WIGRmCWRiCSovCi0JeyAw eDAwRkZGRkZGLCAweDAwMDcwMDBFIH0sCS8qIDA6CTQwMAk0MDAJMAkqLwotCXsgMHgwMEQ3NUZG RiwgMHgwMDBFMDAwQSB9LAkvKiAxOgk0MDAJNjAwCTMuNQkqLwotCXsgMHgwMEJFRkZGRiwgMHgw MDE0MDAwNiB9LAkvKiAyOgk0MDAJODAwCTYJKi8KLQl7IDB4MDBGRkZGRkYsIDB4MDAwOTAwMEQg fSwJLyogMzoJNDUwCTQ1MAkwCSovCi0JeyAweDAwRkZGRkZGLCAweDAwMEUwMDBBIH0sCS8qIDQ6 CTYwMAk2MDAJMAkqLwotCXsgMHgwMEQ3RkZGRiwgMHgwMDE0MDAwNiB9LAkvKiA1Ogk2MDAJODAw CTIuNQkqLwotCXsgMHg4MENCMkZGRiwgMHgwMDFCMDAwMiB9LAkvKiA2Ogk2MDAJMTAwMAk0LjUJ Ki8KLQl7IDB4MDBGRkZGRkYsIDB4MDAxNDAwMDYgfSwJLyogNzoJODAwCTgwMAkwCSovCi0JeyAw eDgwRTc5RkZGLCAweDAwMUIwMDAyIH0sCS8qIDg6CTgwMAkxMDAwCTIJKi8KLQl7IDB4ODBGRkZG RkYsIDB4MDAxQjAwMDIgfSwJLyogOToJMTAwMAkxMDAwCTAJKi8KKwl7IDB4MDBGRkZGRkYsIDB4 MDAwNzAwMEUsIDB4MCB9LC8qIDA6CTQwMAk0MDAJMAkqLworCXsgMHgwMEQ3NUZGRiwgMHgwMDBF MDAwQSwgMHgwIH0sLyogMToJNDAwCTYwMAkzLjUJKi8KKwl7IDB4MDBCRUZGRkYsIDB4MDAxNDAw MDYsIDB4MCB9LC8qIDI6CTQwMAk4MDAJNgkqLworCXsgMHgwMEZGRkZGRiwgMHgwMDA5MDAwRCwg MHgwIH0sLyogMzoJNDUwCTQ1MAkwCSovCisJeyAweDAwRkZGRkZGLCAweDAwMEUwMDBBLCAweDAg fSwvKiA0Ogk2MDAJNjAwCTAJKi8KKwl7IDB4MDBEN0ZGRkYsIDB4MDAxNDAwMDYsIDB4MCB9LC8q IDU6CTYwMAk4MDAJMi41CSovCisJeyAweDgwQ0IyRkZGLCAweDAwMUIwMDAyLCAweDAgfSwvKiA2 Ogk2MDAJMTAwMAk0LjUJKi8KKwl7IDB4MDBGRkZGRkYsIDB4MDAxNDAwMDYsIDB4MCB9LC8qIDc6 CTgwMAk4MDAJMAkqLworCXsgMHg4MEU3OUZGRiwgMHgwMDFCMDAwMiwgMHgwIH0sLyogODoJODAw CTEwMDAJMgkqLworCXsgMHg4MEZGRkZGRiwgMHgwMDFCMDAwMiwgMHgwIH0sLyogOToJMTAwMAkx MDAwCTAJKi8KIH07CiAKKy8qIFNreWxha2UgSCwgUywgYW5kIFNreWxha2UgWSB3aXRoIDAuOTVW IFZjY0lPICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgc2tsX2RkaV90cmFu c2xhdGlvbnNfZHBbXSA9IHsKLQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwYTIgfSwKLQl7IDB4MDAw MDQwMTQsIDB4MDAwMDAwOUIgfSwKLQl7IDB4MDAwMDYwMTIsIDB4MDAwMDAwODggfSwKLQl7IDB4 MDAwMDgwMTAsIDB4MDAwMDAwODcgfSwKLQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOUIgfSwKLQl7 IDB4MDAwMDQwMTQsIDB4MDAwMDAwODggfSwKLQl7IDB4MDAwMDYwMTIsIDB4MDAwMDAwODcgfSwK LQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwODggfSwKLQl7IDB4MDAwMDQwMTQsIDB4MDAwMDAwODcg fSwKKwl7IDB4MDAwMDIwMTYsIDB4MDAwMDAwQTAsIDB4MCB9LAorCXsgMHgwMDAwNTAxMiwgMHgw MDAwMDA5QiwgMHgwIH0sCisJeyAweDAwMDA3MDExLCAweDAwMDAwMDg4LCAweDAgfSwKKwl7IDB4 MDAwMDkwMTAsIDB4MDAwMDAwQzcsIDB4MCB9LAorCXsgMHgwMDAwMjAxNiwgMHgwMDAwMDA5Qiwg MHgwIH0sCisJeyAweDAwMDA1MDEyLCAweDAwMDAwMDg4LCAweDAgfSwKKwl7IDB4MDAwMDcwMTEs IDB4MDAwMDAwQzcsIDB4MCB9LAorCXsgMHgwMDAwMjAxNiwgMHgwMDAwMDBERiwgMHgwIH0sCisJ eyAweDAwMDA1MDEyLCAweDAwMDAwMEM3LCAweDAgfSwKIH07CiAKLS8qIGVEUCAxLjQgbG93IHZz d2luZyB0cmFuc2xhdGlvbiBwYXJhbWV0ZXJzICovCisvKiBTa3lsYWtlIFUgKi8KK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBza2xfdV9kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7 CisJeyAweDAwMDAyMDE2LCAweDAwMDAwMEEyLCAweDAgfSwKKwl7IDB4MDAwMDUwMTIsIDB4MDAw MDAwODgsIDB4MCB9LAorCXsgMHgwMDAwNzAxMSwgMHgwMDAwMDA4NywgMHgwIH0sCisJeyAweDgw MDA5MDEwLCAweDAwMDAwMEM3LCAweDEgfSwJLyogVXNlcyBJX2Jvb3N0ICovCisJeyAweDAwMDAy MDE2LCAweDAwMDAwMDlELCAweDAgfSwKKwl7IDB4MDAwMDUwMTIsIDB4MDAwMDAwQzcsIDB4MCB9 LAorCXsgMHgwMDAwNzAxMSwgMHgwMDAwMDBDNywgMHgwIH0sCisJeyAweDAwMDAyMDE2LCAweDAw MDAwMDg4LCAweDAgfSwKKwl7IDB4MDAwMDUwMTIsIDB4MDAwMDAwQzcsIDB4MCB9LAorfTsKKwor LyogU2t5bGFrZSBZIHdpdGggMC44NVYgVmNjSU8gKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGRp X2J1Zl90cmFucyBza2xfeV8wODV2X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKKwl7IDB4MDAw MDAwMTgsIDB4MDAwMDAwQTIsIDB4MCB9LAorCXsgMHgwMDAwNTAxMiwgMHgwMDAwMDA4OCwgMHgw IH0sCisJeyAweDAwMDA3MDExLCAweDAwMDAwMDg3LCAweDAgfSwKKwl7IDB4ODAwMDkwMTAsIDB4 MDAwMDAwQzcsIDB4MSB9LAkvKiBVc2VzIElfYm9vc3QgKi8KKwl7IDB4MDAwMDAwMTgsIDB4MDAw MDAwOUQsIDB4MCB9LAorCXsgMHgwMDAwNTAxMiwgMHgwMDAwMDBDNywgMHgwIH0sCisJeyAweDAw MDA3MDExLCAweDAwMDAwMEM3LCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwODgsIDB4 MCB9LAorCXsgMHgwMDAwNTAxMiwgMHgwMDAwMDBDNywgMHgwIH0sCit9OworCisvKgorICogU2t5 bGFrZSBIIGFuZCBTLCBhbmQgU2t5bGFrZSBZIHdpdGggMC45NVYgVmNjSU8KKyAqIGVEUCAxLjQg bG93IHZzd2luZyB0cmFuc2xhdGlvbiBwYXJhbWV0ZXJzCisgKi8KIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZGRpX2J1Zl90cmFucyBza2xfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9IHsKLQl7IDB4MDAw MDAwMTgsIDB4MDAwMDAwYTggfSwKLQl7IDB4MDAwMDIwMTYsIDB4MDAwMDAwYWIgfSwKLQl7IDB4 MDAwMDYwMTIsIDB4MDAwMDAwYTIgfSwKLQl7IDB4MDAwMDgwMTAsIDB4MDAwMDAwODggfSwKLQl7 IDB4MDAwMDAwMTgsIDB4MDAwMDAwYWIgfSwKLQl7IDB4MDAwMDQwMTQsIDB4MDAwMDAwYTIgfSwK LQl7IDB4MDAwMDYwMTIsIDB4MDAwMDAwYTYgfSwKLQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwYTIg fSwKLQl7IDB4MDAwMDUwMTMsIDB4MDAwMDAwOWMgfSwKLQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAw ODggfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwQTgsIDB4MCB9LAorCXsgMHgwMDAwNDAxMywg MHgwMDAwMDBBOSwgMHgwIH0sCisJeyAweDAwMDA3MDExLCAweDAwMDAwMEEyLCAweDAgfSwKKwl7 IDB4MDAwMDkwMTAsIDB4MDAwMDAwOUMsIDB4MCB9LAorCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBB OSwgMHgwIH0sCisJeyAweDAwMDA2MDEzLCAweDAwMDAwMEEyLCAweDAgfSwKKwl7IDB4MDAwMDcw MTEsIDB4MDAwMDAwQTYsIDB4MCB9LAorCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBBQiwgMHgwIH0s CisJeyAweDAwMDA3MDEzLCAweDAwMDAwMDlGLCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAw MDAwREYsIDB4MCB9LAogfTsKIAorLyoKKyAqIFNreWxha2UgVQorICogZURQIDEuNCBsb3cgdnN3 aW5nIHRyYW5zbGF0aW9uIHBhcmFtZXRlcnMKKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlf YnVmX3RyYW5zIHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZWRwW10gPSB7CisJeyAweDAwMDAwMDE4 LCAweDAwMDAwMEE4LCAweDAgfSwKKwl7IDB4MDAwMDQwMTMsIDB4MDAwMDAwQTksIDB4MCB9LAor CXsgMHgwMDAwNzAxMSwgMHgwMDAwMDBBMiwgMHgwIH0sCisJeyAweDAwMDA5MDEwLCAweDAwMDAw MDlDLCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwQTksIDB4MCB9LAorCXsgMHgwMDAw NjAxMywgMHgwMDAwMDBBMiwgMHgwIH0sCisJeyAweDAwMDA3MDExLCAweDAwMDAwMEE2LCAweDAg fSwKKwl7IDB4MDAwMDIwMTYsIDB4MDAwMDAwQUIsIDB4MCB9LAorCXsgMHgwMDAwNTAxMywgMHgw MDAwMDA5RiwgMHgwIH0sCisJeyAweDAwMDAwMDE4LCAweDAwMDAwMERGLCAweDAgfSwKK307CiAK Ky8qCisgKiBTa3lsYWtlIFkgd2l0aCAwLjk1ViBWY2NJTworICogZURQIDEuNCBsb3cgdnN3aW5n IHRyYW5zbGF0aW9uIHBhcmFtZXRlcnMKKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVm X3RyYW5zIHNrbF95XzA4NXZfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9IHsKKwl7IDB4MDAwMDAw MTgsIDB4MDAwMDAwQTgsIDB4MCB9LAorCXsgMHgwMDAwNDAxMywgMHgwMDAwMDBBQiwgMHgwIH0s CisJeyAweDAwMDA3MDExLCAweDAwMDAwMEE0LCAweDAgfSwKKwl7IDB4MDAwMDkwMTAsIDB4MDAw MDAwREYsIDB4MCB9LAorCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBBQSwgMHgwIH0sCisJeyAweDAw MDA2MDEzLCAweDAwMDAwMEE0LCAweDAgfSwKKwl7IDB4MDAwMDcwMTEsIDB4MDAwMDAwOUQsIDB4 MCB9LAorCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBBMCwgMHgwIH0sCisJeyAweDAwMDA2MDEyLCAw eDAwMDAwMERGLCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOEEsIDB4MCB9LAorfTsK KworLyogU2t5bGFrZSBILCBTIGFuZCBVLCBhbmQgU2t5bGFrZSBZIHdpdGggMC45NVYgVmNjSU8g Ki8KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBza2xfZGRpX3RyYW5zbGF0aW9u c19oZG1pW10gPSB7Ci0JeyAweDAwMDAwMDE4LCAweDAwMDAwMGFjIH0sCi0JeyAweDAwMDA1MDEy LCAweDAwMDAwMDlkIH0sCi0JeyAweDAwMDA3MDExLCAweDAwMDAwMDg4IH0sCi0JeyAweDAwMDAw MDE4LCAweDAwMDAwMGExIH0sCi0JeyAweDAwMDAwMDE4LCAweDAwMDAwMDk4IH0sCi0JeyAweDAw MDA0MDEzLCAweDAwMDAwMDg4IH0sCi0JeyAweDAwMDA2MDEyLCAweDAwMDAwMDg3IH0sCi0JeyAw eDAwMDAwMDE4LCAweDAwMDAwMGRmIH0sCi0JeyAweDAwMDAzMDE1LCAweDAwMDAwMDg3IH0sCi0J eyAweDAwMDAzMDE1LCAweDAwMDAwMGM3IH0sCi0JeyAweDAwMDAwMDE4LCAweDAwMDAwMGM3IH0s CisJeyAweDAwMDAwMDE4LCAweDAwMDAwMEFDLCAweDAgfSwKKwl7IDB4MDAwMDUwMTIsIDB4MDAw MDAwOUQsIDB4MCB9LAorCXsgMHgwMDAwNzAxMSwgMHgwMDAwMDA4OCwgMHgwIH0sCisJeyAweDAw MDAwMDE4LCAweDAwMDAwMEExLCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOTgsIDB4 MCB9LAorCXsgMHgwMDAwNDAxMywgMHgwMDAwMDA4OCwgMHgwIH0sCisJeyAweDAwMDA2MDEyLCAw eDAwMDAwMDg3LCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwREYsIDB4MCB9LAorCXsg MHgwMDAwMzAxNSwgMHgwMDAwMDA4NywgMHgwIH0sCS8qIERlZmF1bHQgKi8KKwl7IDB4MDAwMDMw MTUsIDB4MDAwMDAwQzcsIDB4MCB9LAorCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBDNywgMHgwIH0s Cit9OworCisvKiBTa3lsYWtlIFkgd2l0aCAwLjg1ViBWY2NJTyAqLworc3RhdGljIGNvbnN0IHN0 cnVjdCBkZGlfYnVmX3RyYW5zIHNrbF95XzA4NXZfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7 CisJeyAweDAwMDAwMDE4LCAweDAwMDAwMEExLCAweDAgfSwKKwl7IDB4MDAwMDUwMTIsIDB4MDAw MDAwREYsIDB4MCB9LAorCXsgMHgwMDAwNzAxMSwgMHgwMDAwMDA4NCwgMHgwIH0sCisJeyAweDAw MDAwMDE4LCAweDAwMDAwMEE0LCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOUQsIDB4 MCB9LAorCXsgMHgwMDAwNDAxMywgMHgwMDAwMDA4MCwgMHgwIH0sCisJeyAweDAwMDA2MDEzLCAw eDAwMDAwMEM3LCAweDAgfSwKKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOEEsIDB4MCB9LAorCXsg MHgwMDAwMzAxNSwgMHgwMDAwMDBDNywgMHgwIH0sCS8qIERlZmF1bHQgKi8KKwl7IDB4ODAwMDMw MTUsIDB4MDAwMDAwQzcsIDB4NyB9LAkvKiBVc2VzIElfYm9vc3QgKi8KKwl7IDB4MDAwMDAwMTgs IDB4MDAwMDAwQzcsIDB4MCB9LAogfTsKIAogc3RydWN0IGJ4dF9kZGlfYnVmX3RyYW5zIHsKQEAg LTE5MCw3ICsyNzAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJ4dF9kZGlfYnVmX3RyYW5zIGJ4 dF9kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7CiAJeyAxNTQsIDB4OUEsIDAsIDY0LCAgZmFsc2Ug fSwJLyogNjoJNjAwCQk2ICAgKi8KIAl7IDEwMiwgMHg5QSwgMCwgMTI4LCBmYWxzZSB9LAkvKiA3 Ogk4MDAJCTAgICAqLwogCXsgMTU0LCAweDlBLCAwLCA4NSwgIGZhbHNlIH0sCS8qIDg6CTgwMAkJ My41ICovCi0JeyAxNTQsIDB4OUEsIDEsIDEyOCwgZmFsc2UgfSwgIC8qIDk6CTEyMDAJCTAgICAq LworCXsgMTU0LCAweDlBLCAxLCAxMjgsIGZhbHNlIH0sCS8qIDk6CTEyMDAJCTAgICAqLwogfTsK IAogLyogQlNwZWMgaGFzIDIgcmVjb21tZW5kZWQgdmFsdWVzIC0gZW50cmllcyAwIGFuZCA4LgpA QCAtMjQ5LDYgKzMyOSw5OSBAQCBpbnRlbF9kaWdfcG9ydF9zdXBwb3J0c19oZG1pKGNvbnN0IHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQogCXJldHVybiBpbnRlbF9k aWdfcG9ydC0+aGRtaS5oZG1pX3JlZzsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVm X3RyYW5zICpza2xfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJ CQkJCWludCAqbl9lbnRyaWVzKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CisJY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgKmRkaV90 cmFuc2xhdGlvbnM7CisJc3RhdGljIGludCBpc18wOTV2ID0gLTE7CisKKwlpZiAoaXNfMDk1diA9 PSAtMSkgeworCQl1MzIgc3ByMSA9IEk5MTVfUkVBRChVQUlNSV9TUFIxKTsKKwkJaXNfMDk1diA9 IHNwcjEgJiBTS0xfVkNDSU9fTUFTSzsKKwl9CisKKwlpZiAoSVNfU0tMX1VMWChkZXYpICYmICFp c18wOTV2KSB7CisJCWRkaV90cmFuc2xhdGlvbnMgPSBza2xfeV8wODV2X2RkaV90cmFuc2xhdGlv bnNfZHA7CisJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHNrbF95XzA4NXZfZGRpX3RyYW5zbGF0 aW9uc19kcCk7CisJfSBlbHNlIGlmIChJU19TS0xfVUxUKGRldikpIHsKKwkJZGRpX3RyYW5zbGF0 aW9ucyA9IHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZHA7CisJCSpuX2VudHJpZXMgPSBBUlJBWV9T SVpFKHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZHApOworCX0gZWxzZSB7CisJCWRkaV90cmFuc2xh dGlvbnMgPSBza2xfZGRpX3RyYW5zbGF0aW9uc19kcDsKKwkJKm5fZW50cmllcyA9IEFSUkFZX1NJ WkUoc2tsX2RkaV90cmFuc2xhdGlvbnNfZHApOworCX0KKworCXJldHVybiBkZGlfdHJhbnNsYXRp b25zOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgKnNrbF9nZXRfYnVm X3RyYW5zX2VkcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQkJCSBpbnQgKm5fZW50cmll cykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOworCWNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRpb25zOworCXN0 YXRpYyBpbnQgaXNfMDk1diA9IC0xOworCisJaWYgKGlzXzA5NXYgPT0gLTEpIHsKKwkJdTMyIHNw cjEgPSBJOTE1X1JFQUQoVUFJTUlfU1BSMSk7CisJCWlzXzA5NXYgPSBzcHIxICYgU0tMX1ZDQ0lP X01BU0s7CisJfQorCisJaWYgKElTX1NLTF9VTFgoZGV2KSAmJiAhaXNfMDk1dikgeworCQlpZiAo ZGV2X3ByaXYtPmVkcF9sb3dfdnN3aW5nKSB7CisJCQlkZGlfdHJhbnNsYXRpb25zID0gc2tsX3lf MDg1dl9kZGlfdHJhbnNsYXRpb25zX2VkcDsKKwkJCSpuX2VudHJpZXMgPQorCQkJCUFSUkFZX1NJ WkUoc2tsX3lfMDg1dl9kZGlfdHJhbnNsYXRpb25zX2VkcCk7CisJCX0gZWxzZSB7CisJCQlkZGlf dHJhbnNsYXRpb25zID0gc2tsX3lfMDg1dl9kZGlfdHJhbnNsYXRpb25zX2RwOworCQkJKm5fZW50 cmllcyA9CisJCQkJQVJSQVlfU0laRShza2xfeV8wODV2X2RkaV90cmFuc2xhdGlvbnNfZHApOwor CQl9CisJfSBlbHNlIGlmIChJU19TS0xfVUxUKGRldikpIHsKKwkJaWYgKGRldl9wcml2LT5lZHBf bG93X3Zzd2luZykgeworCQkJZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF91X2RkaV90cmFuc2xhdGlv bnNfZWRwOworCQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX3VfZGRpX3RyYW5zbGF0aW9u c19lZHApOworCQl9IGVsc2UgeworCQkJZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF91X2RkaV90cmFu c2xhdGlvbnNfZHA7CisJCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShza2xfdV9kZGlfdHJhbnNs YXRpb25zX2RwKTsKKwkJfQorCX0gZWxzZSB7CisJCWlmIChkZXZfcHJpdi0+ZWRwX2xvd192c3dp bmcpIHsKKwkJCWRkaV90cmFuc2xhdGlvbnMgPSBza2xfZGRpX3RyYW5zbGF0aW9uc19lZHA7CisJ CQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShza2xfZGRpX3RyYW5zbGF0aW9uc19lZHApOworCQl9 IGVsc2UgeworCQkJZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF9kZGlfdHJhbnNsYXRpb25zX2RwOwor CQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX2RkaV90cmFuc2xhdGlvbnNfZHApOworCQl9 CisJfQorCisJcmV0dXJuIGRkaV90cmFuc2xhdGlvbnM7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZGRpX2J1Zl90cmFucyAqCitza2xfZ2V0X2J1Zl90cmFuc19oZG1pKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCisJCSAgICAgICBpbnQgKm5fZW50cmllcykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWNvbnN0IHN0cnVjdCBkZGlf YnVmX3RyYW5zICpkZGlfdHJhbnNsYXRpb25zOworCXN0YXRpYyBpbnQgaXNfMDk1diA9IC0xOwor CisJaWYgKGlzXzA5NXYgPT0gLTEpIHsKKwkJdTMyIHNwcjEgPSBJOTE1X1JFQUQoVUFJTUlfU1BS MSk7CisJCWlzXzA5NXYgPSBzcHIxICYgU0tMX1ZDQ0lPX01BU0s7CisJfQorCisJaWYgKElTX1NL TF9VTFgoZGV2KSAmJiAhaXNfMDk1dikgeworCQlkZGlfdHJhbnNsYXRpb25zID0gc2tsX3lfMDg1 dl9kZGlfdHJhbnNsYXRpb25zX2hkbWk7CisJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHNrbF95 XzA4NXZfZGRpX3RyYW5zbGF0aW9uc19oZG1pKTsKKwl9IGVsc2UgeworCQlkZGlfdHJhbnNsYXRp b25zID0gc2tsX2RkaV90cmFuc2xhdGlvbnNfaGRtaTsKKwkJKm5fZW50cmllcyA9IEFSUkFZX1NJ WkUoc2tsX2RkaV90cmFuc2xhdGlvbnNfaGRtaSk7CisJfQorCisJcmV0dXJuIGRkaV90cmFuc2xh dGlvbnM7Cit9CisKIC8qCiAgKiBTdGFydGluZyB3aXRoIEhhc3dlbGwsIERESSBwb3J0IGJ1ZmZl cnMgbXVzdCBiZSBwcm9ncmFtbWVkIHdpdGggY29ycmVjdAogICogdmFsdWVzIGluIGFkdmFuY2Uu IFRoZSBidWZmZXIgdmFsdWVzIGFyZSBkaWZmZXJlbnQgZm9yIEZESSBhbmQgRFAgbW9kZXMsCkBA IC0yNzksMjAgKzQ1MiwxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVwYXJlX2RkaV9idWZmZXJz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBwb3J0LAogCQkJCQlJTlRFTF9PVVRQ VVRfSERNSSk7CiAJCXJldHVybjsKIAl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2KSkgewotCQlk ZGlfdHJhbnNsYXRpb25zX2ZkaSA9IE5VTEw7Ci0JCWRkaV90cmFuc2xhdGlvbnNfZHAgPSBza2xf ZGRpX3RyYW5zbGF0aW9uc19kcDsKLQkJbl9kcF9lbnRyaWVzID0gQVJSQVlfU0laRShza2xfZGRp X3RyYW5zbGF0aW9uc19kcCk7Ci0JCWlmIChkZXZfcHJpdi0+ZWRwX2xvd192c3dpbmcpIHsKLQkJ CWRkaV90cmFuc2xhdGlvbnNfZWRwID0gc2tsX2RkaV90cmFuc2xhdGlvbnNfZWRwOwotCQkJbl9l ZHBfZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX2RkaV90cmFuc2xhdGlvbnNfZWRwKTsKLQkJfSBl bHNlIHsKLQkJCWRkaV90cmFuc2xhdGlvbnNfZWRwID0gc2tsX2RkaV90cmFuc2xhdGlvbnNfZHA7 Ci0JCQluX2VkcF9lbnRyaWVzID0gQVJSQVlfU0laRShza2xfZGRpX3RyYW5zbGF0aW9uc19kcCk7 Ci0JCX0KLQotCQlkZGlfdHJhbnNsYXRpb25zX2hkbWkgPSBza2xfZGRpX3RyYW5zbGF0aW9uc19o ZG1pOwotCQluX2hkbWlfZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX2RkaV90cmFuc2xhdGlvbnNf aGRtaSk7Ci0JCWhkbWlfZGVmYXVsdF9lbnRyeSA9IDc7CisJCWRkaV90cmFuc2xhdGlvbnNfZHAg PQorCQkJCXNrbF9nZXRfYnVmX3RyYW5zX2RwKGRldiwgJm5fZHBfZW50cmllcyk7CisJCWRkaV90 cmFuc2xhdGlvbnNfZWRwID0KKwkJCQlza2xfZ2V0X2J1Zl90cmFuc19lZHAoZGV2LCAmbl9lZHBf ZW50cmllcyk7CisJCWRkaV90cmFuc2xhdGlvbnNfaGRtaSA9CisJCQkJc2tsX2dldF9idWZfdHJh bnNfaGRtaShkZXYsICZuX2hkbWlfZW50cmllcyk7CisJCWhkbWlfZGVmYXVsdF9lbnRyeSA9IDg7 CiAJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2KSkgewogCQlkZGlfdHJhbnNsYXRpb25zX2Zk aSA9IGJkd19kZGlfdHJhbnNsYXRpb25zX2ZkaTsKIAkJZGRpX3RyYW5zbGF0aW9uc19kcCA9IGJk d19kZGlfdHJhbnNsYXRpb25zX2RwOwpAQCAtMTgwNiw2ICsxOTcyLDQ3IEBAIHZvaWQgaW50ZWxf ZGRpX2Rpc2FibGVfcGlwZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKIAkJ CSAgIFRSQU5TX0NMS19TRUxfRElTQUJMRUQpOwogfQogCit2b2lkIHNrbF9kZGlfc2V0X2lib29z dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgbGV2ZWwsCisJCQllbnVtIHBvcnQgcG9ydCwg aW50IHR5cGUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKKwljb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9u czsKKwl1aW50OF90IGlib29zdDsKKwlpbnQgbl9lbnRyaWVzOworCXUzMiByZWc7CisKKwlpZiAo dHlwZSA9PSBJTlRFTF9PVVRQVVRfRElTUExBWVBPUlQpIHsKKwkJZGRpX3RyYW5zbGF0aW9ucyA9 IHNrbF9nZXRfYnVmX3RyYW5zX2RwKGRldiwgJm5fZW50cmllcyk7CisJCWlib29zdCA9IGRkaV90 cmFuc2xhdGlvbnNbcG9ydF0uaV9ib29zdDsKKwl9IGVsc2UgaWYgKHR5cGUgPT0gSU5URUxfT1VU UFVUX0VEUCkgeworCQlkZGlfdHJhbnNsYXRpb25zID0gc2tsX2dldF9idWZfdHJhbnNfZWRwKGRl diwgJm5fZW50cmllcyk7CisJCWlib29zdCA9IGRkaV90cmFuc2xhdGlvbnNbcG9ydF0uaV9ib29z dDsKKwl9IGVsc2UgaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkpIHsKKwkJZGRpX3RyYW5z bGF0aW9ucyA9IHNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoZGV2LCAmbl9lbnRyaWVzKTsKKwkJaWJv b3N0ID0gZGRpX3RyYW5zbGF0aW9uc1twb3J0XS5pX2Jvb3N0OworCX0gZWxzZSB7CisJCXJldHVy bjsKKwl9CisKKwkvKiBNYWtlIHN1cmUgdGhhdCB0aGUgcmVxdWVzdGVkIElfYm9vc3QgaXMgdmFs aWQgKi8KKwlpZiAoaWJvb3N0ICYmIGlib29zdCAhPSAweDEgJiYgaWJvb3N0ICE9IDB4MyAmJiBp Ym9vc3QgIT0gMHg3KSB7CisJCURSTV9FUlJPUigiSW52YWxpZCBJX2Jvb3N0IHZhbHVlICV1XG4i LCBpYm9vc3QpOworCQlyZXR1cm47CisJfQorCisJcmVnID0gSTkxNV9SRUFEKERJU1BJT19DUl9U WF9CTVVfQ1IwKTsKKwlyZWcgJj0gfkJBTEFOQ0VfTEVHX01BU0socG9ydCk7CisJcmVnICY9IH4o MSA8PCAoQkFMQU5DRV9MRUdfRElTQUJMRV9TSElGVCArIHBvcnQpKTsKKworCWlmIChpYm9vc3Qp IHsKKwkJcmVnIHw9IGlib29zdCA8PCBCQUxBTkNFX0xFR19TSElGVChwb3J0KTsKKwl9IGVsc2Ug eworCQlyZWcgfD0gMSA8PCAoQkFMQU5DRV9MRUdfRElTQUJMRV9TSElGVCArIHBvcnQpOworCX0K KworCUk5MTVfV1JJVEUoRElTUElPX0NSX1RYX0JNVV9DUjAsIHJlZyk7Cit9CisKIHZvaWQgYnh0 X2RkaV92c3dpbmdfc2VxdWVuY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGxldmVsLAog CQkJICAgICBlbnVtIHBvcnQgcG9ydCwgaW50IHR5cGUpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YwppbmRleCBmNTJlZWYxMzgyNDcuLjgwN2M3N2Q4ZGFiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jCkBAIC0zNDU0LDE3ICszNDU0LDEwIEBAIGhzd19zaWduYWxfbGV2ZWxzKHVpbnQ4X3QgdHJh aW5fc2V0KQogCX0KIH0KIAotc3RhdGljIHZvaWQgYnh0X3NpZ25hbF9sZXZlbHMoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKK3N0YXRpYyB1aW50MzJfdCBnZXRfc2lnbmFsX2xldmVsKGludCBz aWduYWxfbGV2ZWxzKQogewotCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZHBf dG9fZGlnX3BvcnQoaW50ZWxfZHApOwotCWVudW0gcG9ydCBwb3J0ID0gZHBvcnQtPnBvcnQ7Ci0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRwb3J0LT5iYXNlLmJhc2UuZGV2OwotCXN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyID0gJmRwb3J0LT5iYXNlOwotCXVpbnQ4X3QgdHJhaW5fc2V0 ID0gaW50ZWxfZHAtPnRyYWluX3NldFswXTsKLQl1aW50MzJfdCBsZXZlbCA9IDA7CisJdWludDMy X3QgbGV2ZWw7CiAKLQlpbnQgc2lnbmFsX2xldmVscyA9IHRyYWluX3NldCAmIChEUF9UUkFJTl9W T0xUQUdFX1NXSU5HX01BU0sgfAotCQkJCQkgRFBfVFJBSU5fUFJFX0VNUEhBU0lTX01BU0spOwog CXN3aXRjaCAoc2lnbmFsX2xldmVscykgewogCWRlZmF1bHQ6CiAJCURSTV9ERUJVR19LTVMoIlVu c3VwcG9ydGVkIHZvbHRhZ2Ugc3dpbmcvcHJlLWVtcGggbGV2ZWxcbiIpOwpAQCAtMzUwMCw2ICsz NDkzLDM4IEBAIHN0YXRpYyB2b2lkIGJ4dF9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCiAJCWJyZWFrOwogCX0KIAorCXJldHVybiBsZXZlbDsKK30KKworc3RhdGljIHZv aWQgc2tsX3NldF9pYm9vc3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKK3sKKwlzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKKwll bnVtIHBvcnQgcG9ydCA9IGRwb3J0LT5wb3J0OworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBk cG9ydC0+YmFzZS5iYXNlLmRldjsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZk cG9ydC0+YmFzZTsKKwl1aW50OF90IHRyYWluX3NldCA9IGludGVsX2RwLT50cmFpbl9zZXRbMF07 CisJdWludDMyX3QgbGV2ZWw7CisKKwlpbnQgc2lnbmFsX2xldmVscyA9IHRyYWluX3NldCAmIChE UF9UUkFJTl9WT0xUQUdFX1NXSU5HX01BU0sgfAorCQkJCQkgRFBfVFJBSU5fUFJFX0VNUEhBU0lT X01BU0spOworCWxldmVsID0gZ2V0X3NpZ25hbF9sZXZlbChzaWduYWxfbGV2ZWxzKTsKKworCXNr bF9kZGlfc2V0X2lib29zdChkZXYsIGxldmVsLCBwb3J0LCBlbmNvZGVyLT50eXBlKTsKK30KKwor c3RhdGljIHZvaWQgYnh0X3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkK K3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGlu dGVsX2RwKTsKKwllbnVtIHBvcnQgcG9ydCA9IGRwb3J0LT5wb3J0OworCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBkcG9ydC0+YmFzZS5iYXNlLmRldjsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciA9ICZkcG9ydC0+YmFzZTsKKwl1aW50OF90IHRyYWluX3NldCA9IGludGVsX2RwLT50 cmFpbl9zZXRbMF07CisJdWludDMyX3QgbGV2ZWwgPSAwOworCisJaW50IHNpZ25hbF9sZXZlbHMg PSB0cmFpbl9zZXQgJiAoRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19NQVNLIHwKKwkJCQkJIERQX1RS QUlOX1BSRV9FTVBIQVNJU19NQVNLKTsKKwlsZXZlbCA9IGdldF9zaWduYWxfbGV2ZWwoc2lnbmFs X2xldmVscyk7CisKIAlieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShkZXYsIGxldmVsLCBwb3J0LCBl bmNvZGVyLT50eXBlKTsKIH0KIApAQCAtMzUyMCw2ICszNTQ1LDkgQEAgaW50ZWxfZHBfc2V0X3Np Z25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWludDMyX3QgKkRQKQogCX0g ZWxzZSBpZiAoSEFTX0RESShkZXYpKSB7CiAJCXNpZ25hbF9sZXZlbHMgPSBoc3dfc2lnbmFsX2xl dmVscyh0cmFpbl9zZXQpOwogCQltYXNrID0gRERJX0JVRl9FTVBfTUFTSzsKKworCQlpZiAoSVNf U0tZTEFLRShkZXYpKQorCQkJc2tsX3NldF9pYm9vc3QoaW50ZWxfZHApOwogCX0gZWxzZSBpZiAo SVNfQ0hFUlJZVklFVyhkZXYpKSB7CiAJCXNpZ25hbF9sZXZlbHMgPSBjaHZfc2lnbmFsX2xldmVs cyhpbnRlbF9kcCk7CiAJCW1hc2sgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCBi Y2FmZWZjZjA0OGIuLmIyZWJlY2VmNmRlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAg LTk1MCw2ICs5NTAsOCBAQCB2b2lkIGludGVsX2RkaV9pbml0X2RwX2J1Zl9yZWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpOwogdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZyk7CiB2b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhzdHJ1Y3QgZHJt X2NydGMgKmNydGMsIGJvb2wgc3RhdGUpOwordm9pZCBza2xfZGRpX3NldF9pYm9vc3Qoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdTMyIGxldmVsLAorCQkJZW51bSBwb3J0IHBvcnQsIGludCB0eXBl KTsKIHZvaWQgYnh0X2RkaV92c3dpbmdfc2VxdWVuY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dTMyIGxldmVsLAogCQkJCWVudW0gcG9ydCBwb3J0LCBpbnQgdHlwZSk7CiAKLS0gCjIuMS40Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=