From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert Bragg Subject: [PATCH v9 10/11] drm/i915: Add more Haswell OA metric sets Date: Mon, 7 Nov 2016 19:49:56 +0000 Message-ID: <20161107194957.3385-11-robert@sixbynine.org> References: <20161107194957.3385-1-robert@sixbynine.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161107194957.3385-1-robert@sixbynine.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org, Matthew Auld , Sourab Gupta , Daniel Vetter , Robert Bragg List-Id: dri-devel@lists.freedesktop.org VGhpcyBhZGRzICdjb21wdXRlJywgJ2NvbXB1dGUgZXh0ZW5kZWQnLCAnbWVtb3J5IHJlYWRzJywg J21lbW9yeSB3cml0ZXMnCmFuZCAnc2FtcGxlciBiYWxhbmNlJyBtZXRyaWMgc2V0cyBmb3IgSGFz d2VsbC4KClRoZSBjb2RlIGlzIGF1dG8gZ2VuZXJhdGVkIGZyb20gYW4gWE1MIGRlc2NyaXB0aW9u IG9mIG1ldHJpYyBzZXRzLApjdXJyZW50bHkgbWFpbnRhaW5lZCBpbiBncHV0b3AsIHJlZjoKCiBo dHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAogPiBncHV0b3AtZGF0YS9vYS0qLnhtbAogPiBz Y3JpcHRzL2k5MTUtcGVyZi1rZXJuZWxnZW4ucHkKCiAkIG1ha2UgLUMgZ3B1dG9wLWRhdGEgLWYg TWFrZWZpbGUueG1sCgpTaWduZWQtb2ZmLWJ5OiBSb2JlcnQgQnJhZ2cgPHJvYmVydEBzaXhieW5p bmUub3JnPgpSZXZpZXdlZC1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfaHN3LmMgfCA1NTkgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDU1OCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9vYV9oc3cuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfaHN3LmMKaW5kZXgg NmFmMjVjZi4uNGRkZjc1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9v YV9oc3cuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2hzdy5jCkBAIC0zMSw5 ICszMSwxNCBAQAogCiBlbnVtIG1ldHJpY19zZXRfaWQgewogCU1FVFJJQ19TRVRfSURfUkVOREVS X0JBU0lDID0gMSwKKwlNRVRSSUNfU0VUX0lEX0NPTVBVVEVfQkFTSUMsCisJTUVUUklDX1NFVF9J RF9DT01QVVRFX0VYVEVOREVELAorCU1FVFJJQ19TRVRfSURfTUVNT1JZX1JFQURTLAorCU1FVFJJ Q19TRVRfSURfTUVNT1JZX1dSSVRFUywKKwlNRVRSSUNfU0VUX0lEX1NBTVBMRVJfQkFMQU5DRSwK IH07CiAKLWludCBpOTE1X29hX25fYnVpbHRpbl9tZXRyaWNfc2V0c19oc3cgPSAxOworaW50IGk5 MTVfb2Ffbl9idWlsdGluX21ldHJpY19zZXRzX2hzdyA9IDY7CiAKIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWNbXSA9IHsKIAl7IF9N TUlPKDB4MjcyNCksIDB4MDA4MDAwMDAgfSwKQEAgLTExMiw2ICsxMTcsMjk4IEBAIGdldF9yZW5k ZXJfYmFzaWNfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ cmV0dXJuIG11eF9jb25maWdfcmVuZGVyX2Jhc2ljOwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfY29tcHV0ZV9iYXNpY1tdID0geworCXsgX01N SU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHgwMDgwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzE4KSwgMHhhYWFhYWFhYSB9LAorCXsgX01NSU8oMHgyNzFjKSwgMHhh YWFhYWFhYSB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgy NzI0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI4KSwgMHhhYWFhYWFhYSB9LAorCXsg X01NSU8oMHgyNzJjKSwgMHhhYWFhYWFhYSB9LAorCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAw MCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ4KSwg MHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzRjKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8o MHgyNzUwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzU0KSwgMHgwMDAwMDAwMCB9LAor CXsgX01NSU8oMHgyNzU4KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzVjKSwgMHgwMDAw MDAwMCB9LAorCXsgX01NSU8oMHgyMzZjKSwgMHgwMDAwMDAwMCB9LAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2NvbXB1dGVfYmFzaWNbXSA9IHsKKwl7 IF9NTUlPKDB4MjUzYTQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI2ODFjKSwgMHgwMWYw MDgwMCB9LAorCXsgX01NSU8oMHgyNjgyMCksIDB4MDAwMDEwMDAgfSwKKwl7IF9NTUlPKDB4Mjc4 MWMpLCAweDAxZjAwODAwIH0sCisJeyBfTU1JTygweDI2NTIwKSwgMHgwMDAwMDAwNyB9LAorCXsg X01NSU8oMHgyNjVhMCksIDB4MDAwMDAwMDcgfSwKKwl7IF9NTUlPKDB4MjUzODApLCAweDAwMDAw MDEwIH0sCisJeyBfTU1JTygweDI1MzhjKSwgMHgwMDMwMDAwMCB9LAorCXsgX01NSU8oMHgyNTM4 NCksIDB4YWE4YWFhYWEgfSwKKwl7IF9NTUlPKDB4MjU0MDQpLCAweGZmZmZmZmZmIH0sCisJeyBf TU1JTygweDI2ODAwKSwgMHgwMDAwNDIwMiB9LAorCXsgX01NSU8oMHgyNjgwOCksIDB4MDA2MDU4 MTcgfSwKKwl7IF9NTUlPKDB4MjY4MGMpLCAweDEwMDAxMDA1IH0sCisJeyBfTU1JTygweDI2ODA0 KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzgwMCksIDB4MDAwMDAxMDIgfSwKKwl7IF9N TUlPKDB4Mjc4MDgpLCAweDBjMDcwMWUwIH0sCisJeyBfTU1JTygweDI3ODBjKSwgMHgwMDAyMDBh MCB9LAorCXsgX01NSU8oMHgyNzgwNCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjY0ODQp LCAweDQ0MDAwMDAwIH0sCisJeyBfTU1JTygweDI2NzA0KSwgMHg0NDAwMDAwMCB9LAorCXsgX01N SU8oMHgyNjUwMCksIDB4MDAwMDAwMDYgfSwKKwl7IF9NTUlPKDB4MjY1MTApLCAweDAwMDAwMDAx IH0sCisJeyBfTU1JTygweDI2NTA0KSwgMHg4ODAwMDAwMCB9LAorCXsgX01NSU8oMHgyNjU4MCks IDB4MDAwMDAwMDYgfSwKKwl7IF9NTUlPKDB4MjY1OTApLCAweDAwMDAwMDIwIH0sCisJeyBfTU1J TygweDI2NTg0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNjEwNCksIDB4NTU4MjIyMjIg fSwKKwl7IF9NTUlPKDB4MjYxODQpLCAweGFhODY2NjY2IH0sCisJeyBfTU1JTygweDI1NDIwKSwg MHgwODMyMGM4MyB9LAorCXsgX01NSU8oMHgyNTQyNCksIDB4MDY4MjBjODMgfSwKKwl7IF9NTUlP KDB4MjU0MWMpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI1NDI4KSwgMHgwMDAwMGMwMyB9 LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfY29tcHV0ZV9i YXNpY19tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAg ICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19jb21wdXRlX2Jh c2ljKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19jb21wdXRlX2Jhc2ljOworfQorCitzdGF0aWMgY29u c3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfY29tcHV0ZV9leHRlbmRlZFtd ID0geworCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwg MHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8o MHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDA3ZmUyYSB9LAor CXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwZmYwMCB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDA3 ZmU2YSB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwZmYwMCB9LAorCXsgX01NSU8oMHgyNzgw KSwgMHgwMDA3ZmU5MiB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwZmYwMCB9LAorCXsgX01N SU8oMHgyNzg4KSwgMHgwMDA3ZmVhMiB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmYwMCB9 LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDA3ZmUzMiB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgw MDAwZmYwMCB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDA3ZmU5YSB9LAorCXsgX01NSU8oMHgy NzljKSwgMHgwMDAwZmYwMCB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgwMDA3ZmYyMyB9LAorCXsg X01NSU8oMHgyN2E0KSwgMHgwMDAwZmYwMCB9LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDA3ZmZm MyB9LAorCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZmZSB9LAorfTsKKworc3RhdGljIGNvbnN0 IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWRbXSA9IHsKKwl7 IF9NTUlPKDB4MjY4MWMpLCAweDNlYjAwODAwIH0sCisJeyBfTU1JTygweDI2ODIwKSwgMHgwMDkw MDAwMCB9LAorCXsgX01NSU8oMHgyNTM4NCksIDB4MDJhYWFhYWEgfSwKKwl7IF9NTUlPKDB4MjU0 MDQpLCAweDAzZmZmZmZmIH0sCisJeyBfTU1JTygweDI2ODAwKSwgMHgwMDE0MjI4NCB9LAorCXsg X01NSU8oMHgyNjgwOCksIDB4MGU2MjkwNjIgfSwKKwl7IF9NTUlPKDB4MjY4MGMpLCAweDNmNmY1 NWNiIH0sCisJeyBfTU1JTygweDI2ODEwKSwgMHgwMDAwMDAxNCB9LAorCXsgX01NSU8oMHgyNjgw NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjYxMDQpLCAweDAyYWFhYWFhIH0sCisJeyBf TU1JTygweDI2MTg0KSwgMHgwMmFhYWFhYSB9LAorCXsgX01NSU8oMHgyNTQyMCksIDB4MDAwMDAw MDAgfSwKKwl7IF9NTUlPKDB4MjU0MjQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI1NDFj KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNTQyOCksIDB4MDAwMDAwMDAgfSwKK307CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2NvbXB1dGVfZXh0ZW5kZWRf bXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJaW50ICps ZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkKTsK KwlyZXR1cm4gbXV4X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkOworfQorCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfbWVtb3J5X3JlYWRzW10gPSB7CisJ eyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAw MDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTAp LCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NGMpLCAweDc2NTQzMjk4IH0sCisJeyBfTU1J TygweDI3NDgpLCAweDk4OTg5ODk4IH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwMDAwMGU0IH0s CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NWMpLCAweDk4 YTk4YTk4IH0sCisJeyBfTU1JTygweDI3NTgpLCAweDg4ODg4ODg4IH0sCisJeyBfTU1JTygweDI3 NTQpLCAweDAwMGM1NTAwIH0sCisJeyBfTU1JTygweDI3NTApLCAweDAwMDAwMDAwIH0sCisJeyBf TU1JTygweDI3NzApLCAweDAwMDdmODFhIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBmYzAw IH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDdmODJhIH0sCisJeyBfTU1JTygweDI3N2MpLCAw eDAwMDBmYzAwIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDdmODcyIH0sCisJeyBfTU1JTygw eDI3ODQpLCAweDAwMDBmYzAwIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDdmOGJhIH0sCisJ eyBfTU1JTygweDI3OGMpLCAweDAwMDBmYzAwIH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDdm ODdhIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmYzAwIH0sCisJeyBfTU1JTygweDI3OTgp LCAweDAwMDdmOGVhIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmYzAwIH0sCisJeyBfTU1J TygweDI3YTApLCAweDAwMDdmOGUyIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBmYzAwIH0s CisJeyBfTU1JTygweDI3YTgpLCAweDAwMDdmOGYyIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAw MDBmYzAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25m aWdfbWVtb3J5X3JlYWRzW10gPSB7CisJeyBfTU1JTygweDI1M2E0KSwgMHgzNDMwMDAwMCB9LAor CXsgX01NSU8oMHgyNTQ0MCksIDB4MmQ4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjU0NDQpLCAweDAw MDAwMDA4IH0sCisJeyBfTU1JTygweDI1MTI4KSwgMHgwZTYwMDAwMCB9LAorCXsgX01NSU8oMHgy NTM4MCksIDB4MDAwMDA0NTAgfSwKKwl7IF9NTUlPKDB4MjUzOTApLCAweDAwMDUyYzQzIH0sCisJ eyBfTU1JTygweDI1Mzg0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNTQwMCksIDB4MDAw MDYxNDQgfSwKKwl7IF9NTUlPKDB4MjU0MDgpLCAweDBhNDE4ODIwIH0sCisJeyBfTU1JTygweDI1 NDBjKSwgMHgwMDA4MjBlNiB9LAorCXsgX01NSU8oMHgyNTQwNCksIDB4ZmY1MDAwMDAgfSwKKwl7 IF9NTUlPKDB4MjUxMDApLCAweDAwMDAwNWQ2IH0sCisJeyBfTU1JTygweDI1MTBjKSwgMHgwZWYw MDAwMCB9LAorCXsgX01NSU8oMHgyNTEwNCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjU0 MjApLCAweDAyMTA4NDIxIH0sCisJeyBfTU1JTygweDI1NDI0KSwgMHgwMDAwODQyMSB9LAorCXsg X01NSU8oMHgyNTQxYyksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjU0MjgpLCAweDAwMDAw MDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9tZW1v cnlfcmVhZHNfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJ CQkgICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19tZW1vcnlf cmVhZHMpOworCXJldHVybiBtdXhfY29uZmlnX21lbW9yeV9yZWFkczsKK30KKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX21lbW9yeV93cml0ZXNbXSA9 IHsKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4 MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0YyksIDB4NzY1NDMyOTggfSwKKwl7 IF9NTUlPKDB4Mjc0OCksIDB4OTg5ODk4OTggfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDAwMDAw ZTQgfSwKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc1Yyks IDB4YmFiYWJhYmEgfSwKKwl7IF9NTUlPKDB4Mjc1OCksIDB4ODg4ODg4ODggfSwKKwl7IF9NTUlP KDB4Mjc1NCksIDB4MDAwYzU1MDAgfSwKKwl7IF9NTUlPKDB4Mjc1MCksIDB4MDAwMDAwMDAgfSwK Kwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwN2Y4MWEgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAw MGZjMDAgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwN2Y4MmEgfSwKKwl7IF9NTUlPKDB4Mjc3 YyksIDB4MDAwMGZjMDAgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwN2Y4MjIgfSwKKwl7IF9N TUlPKDB4Mjc4NCksIDB4MDAwMGZjMDAgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwN2Y4YmEg fSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZjMDAgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4 MDAwN2Y4N2EgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZjMDAgfSwKKwl7IF9NTUlPKDB4 Mjc5OCksIDB4MDAwN2Y4ZWEgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZjMDAgfSwKKwl7 IF9NTUlPKDB4MjdhMCksIDB4MDAwN2Y4ZTIgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZj MDAgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAwN2Y4ZjIgfSwKKwl7IF9NTUlPKDB4MjdhYyks IDB4MDAwMGZjMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4 X2NvbmZpZ19tZW1vcnlfd3JpdGVzW10gPSB7CisJeyBfTU1JTygweDI1M2E0KSwgMHgzNDMwMDAw MCB9LAorCXsgX01NSU8oMHgyNTQ0MCksIDB4MDE1MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjU0NDQp LCAweDAwMDAwMTIwIH0sCisJeyBfTU1JTygweDI1MTI4KSwgMHgwYzIwMDAwMCB9LAorCXsgX01N SU8oMHgyNTM4MCksIDB4MDAwMDA0NTAgfSwKKwl7IF9NTUlPKDB4MjUzOTApLCAweDAwMDUyYzQz IH0sCisJeyBfTU1JTygweDI1Mzg0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNTQwMCks IDB4MDAwMDcxODQgfSwKKwl7IF9NTUlPKDB4MjU0MDgpLCAweDBhNDE4ODIwIH0sCisJeyBfTU1J TygweDI1NDBjKSwgMHgwMDA4MjBlNiB9LAorCXsgX01NSU8oMHgyNTQwNCksIDB4ZmY1MDAwMDAg fSwKKwl7IF9NTUlPKDB4MjUxMDApLCAweDAwMDAwNWQ2IH0sCisJeyBfTU1JTygweDI1MTBjKSwg MHgxZTcwMDAwMCB9LAorCXsgX01NSU8oMHgyNTEwNCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlP KDB4MjU0MjApLCAweDAyMTA4NDIxIH0sCisJeyBfTU1JTygweDI1NDI0KSwgMHgwMDAwODQyMSB9 LAorCXsgX01NSU8oMHgyNTQxYyksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjU0MjgpLCAw eDAwMDAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dl dF9tZW1vcnlfd3JpdGVzX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAorCQkJICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmln X21lbW9yeV93cml0ZXMpOworCXJldHVybiBtdXhfY29uZmlnX21lbW9yeV93cml0ZXM7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19zYW1wbGVy X2JhbGFuY2VbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlP KDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwK Kwl7IF9NTUlPKDB4MjcxNCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAw MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MDA4MDAwMDAgfSwKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19zYW1wbGVyX2JhbGFuY2VbXSA9IHsK Kwl7IF9NTUlPKDB4MmViOWMpLCAweDAxOTA2NDAwIH0sCisJeyBfTU1JTygweDJmYjljKSwgMHgw MTkwNjQwMCB9LAorCXsgX01NSU8oMHgyNTNhNCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjZiOWMpLCAweDAxOTA2NDAwIH0sCisJeyBfTU1JTygweDI3YjljKSwgMHgwMTkwNjQwMCB9LAor CXsgX01NSU8oMHgyNzEwNCksIDB4MDBhMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxODQpLCAweDAw YTUwMDAwIH0sCisJeyBfTU1JTygweDJlODA0KSwgMHgwMDUwMDAwMCB9LAorCXsgX01NSU8oMHgy ZTk4NCksIDB4MDA1MDAwMDAgfSwKKwl7IF9NTUlPKDB4MmViMDQpLCAweDAwNTAwMDAwIH0sCisJ eyBfTU1JTygweDJlYjgwKSwgMHgwMDAwMDA4NCB9LAorCXsgX01NSU8oMHgyZWI4YyksIDB4MTQy MDAwMDAgfSwKKwl7IF9NTUlPKDB4MmViODQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDJm ODA0KSwgMHgwMDA1MDAwMCB9LAorCXsgX01NSU8oMHgyZjk4NCksIDB4MDAwNTAwMDAgfSwKKwl7 IF9NTUlPKDB4MmZiMDQpLCAweDAwMDUwMDAwIH0sCisJeyBfTU1JTygweDJmYjgwKSwgMHgwMDAw MDA4NCB9LAorCXsgX01NSU8oMHgyZmI4YyksIDB4MDAwNTA4MDAgfSwKKwl7IF9NTUlPKDB4MmZi ODQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI1MzgwKSwgMHgwMDAwMDAxMCB9LAorCXsg X01NSU8oMHgyNTM4YyksIDB4MDAwMDAwYzAgfSwKKwl7IF9NTUlPKDB4MjUzODQpLCAweGFhNTUw MDAwIH0sCisJeyBfTU1JTygweDI1NDA0KSwgMHhmZmZmYzAwMCB9LAorCXsgX01NSU8oMHgyNjgw NCksIDB4NTAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjY5ODQpLCAweDUwMDAwMDAwIH0sCisJeyBf TU1JTygweDI2YjA0KSwgMHg1MDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNmI4MCksIDB4MDAwMDAw ODQgfSwKKwl7IF9NTUlPKDB4MjZiOTApLCAweDAwMDUwODAwIH0sCisJeyBfTU1JTygweDI2Yjg0 KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzgwNCksIDB4MDUwMDAwMDAgfSwKKwl7IF9N TUlPKDB4Mjc5ODQpLCAweDA1MDAwMDAwIH0sCisJeyBfTU1JTygweDI3YjA0KSwgMHgwNTAwMDAw MCB9LAorCXsgX01NSU8oMHgyN2I4MCksIDB4MDAwMDAwODQgfSwKKwl7IF9NTUlPKDB4MjdiOTAp LCAweDAwMDAwMTQyIH0sCisJeyBfTU1JTygweDI3Yjg0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01N SU8oMHgyNjEwNCksIDB4YTAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjYxODQpLCAweGE1MDAwMDAw IH0sCisJeyBfTU1JTygweDI1NDI0KSwgMHgwMDAwODYyMCB9LAorCXsgX01NSU8oMHgyNTQxYyks IDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjU0MjgpLCAweDAwMDRhNTRhIH0sCit9OworCitz dGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9zYW1wbGVyX2JhbGFuY2VfbXV4 X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICAgICAgaW50 ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19zYW1wbGVyX2JhbGFuY2Up OworCXJldHVybiBtdXhfY29uZmlnX3NhbXBsZXJfYmFsYW5jZTsKK30KKwogaW50IGk5MTVfb2Ff c2VsZWN0X21ldHJpY19zZXRfaHN3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IHsKIAlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9IE5VTEw7CkBAIC0xNDAsNiArNDM3LDEw NiBAQCBpbnQgaTkxNV9vYV9zZWxlY3RfbWV0cmljX3NldF9oc3coc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9i YXNpYyk7CiAKIAkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX0NPTVBVVEVfQkFTSUM6 CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9jb21wdXRlX2Jhc2ljX211 eF9jb25maWcoZGV2X3ByaXYsCisJCQkJCQkgICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVn c19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVC VUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIkNPTVBVVEVfQkFTSUNcIiBt ZXRyaWMgc2V0Iik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxy ZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2 ZXJ0aXNlZCBzbyB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJl cXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5w ZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfY29tcHV0ZV9iYXNp YzsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJ WkUoYl9jb3VudGVyX2NvbmZpZ19jb21wdXRlX2Jhc2ljKTsKKworCQlyZXR1cm4gMDsKKwljYXNl IE1FVFJJQ19TRVRfSURfQ09NUFVURV9FWFRFTkRFRDoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4 X3JlZ3MgPQorCQkJZ2V0X2NvbXB1dGVfZXh0ZW5kZWRfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJ CQkJCQkmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+ cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVY IGNvbmZpZyBmb3IgXCJDT01QVVRFX0VYVEVOREVEXCIgbWV0cmljIHNldCIpOworCisJCQkvKiBF SU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkg KiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgc28gdXNlcnNwYWNlIGFu ZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0 dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9 CisJCQliX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWQ7CisJCWRldl9wcml2LT5wZXJm Lm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdf Y29tcHV0ZV9leHRlbmRlZCk7CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX01F TU9SWV9SRUFEUzoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X21lbW9y eV9yZWFkc19tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkJICAgICZkZXZfcHJpdi0+cGVyZi5v YS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJ CQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIk1FTU9SWV9S RUFEU1wiIG1ldHJpYyBzZXQiKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9z eXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUg YmVlbiBhZHZlcnRpc2VkIHNvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZl IGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2 X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19tZW1v cnlfcmVhZHM7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlB UlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfbWVtb3J5X3JlYWRzKTsKKworCQlyZXR1cm4gMDsK KwljYXNlIE1FVFJJQ19TRVRfSURfTUVNT1JZX1dSSVRFUzoKKwkJZGV2X3ByaXYtPnBlcmYub2Eu bXV4X3JlZ3MgPQorCQkJZ2V0X21lbW9yeV93cml0ZXNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJ CQkJCSAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3By aXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxl IE1VWCBjb25maWcgZm9yIFwiTUVNT1JZX1dSSVRFU1wiIG1ldHJpYyBzZXQiKTsKKworCQkJLyog RUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJ ICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHNvIHVzZXJzcGFjZSBh bmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJl dHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3Mg PQorCQkJYl9jb3VudGVyX2NvbmZpZ19tZW1vcnlfd3JpdGVzOworCQlkZXZfcHJpdi0+cGVyZi5v YS5iX2NvdW50ZXJfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX21l bW9yeV93cml0ZXMpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9TQU1QTEVS X0JBTEFOQ0U6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9zYW1wbGVy X2JhbGFuY2VfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAgICAgICAmZGV2X3ByaXYtPnBl cmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykg eworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJTQU1Q TEVSX0JBTEFOQ0VcIiBtZXRyaWMgc2V0Iik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVn aXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4n dCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCBzbyB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRu J3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQor CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25m aWdfc2FtcGxlcl9iYWxhbmNlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19s ZW4gPQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3NhbXBsZXJfYmFsYW5jZSk7CisK KwkJcmV0dXJuIDA7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQpAQCAtMTY3LDYg KzU2NCwxMTYgQEAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfcmVuZGVyX2Jh c2ljID0gewogCS5hdHRycyA9ICBhdHRyc19yZW5kZXJfYmFzaWMsCiB9OwogCitzdGF0aWMgc3Np emVfdAorc2hvd19jb21wdXRlX2Jhc2ljX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBk ZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVm LCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfQ09NUFVURV9CQVNJQyk7Cit9CisKK3N0YXRpYyBzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9jb21wdXRlX2Jhc2ljX2lkID0geworCS5hdHRy ID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd19jb21wdXRl X2Jhc2ljX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0 ZSAqYXR0cnNfY29tcHV0ZV9iYXNpY1tdID0geworCSZkZXZfYXR0cl9jb21wdXRlX2Jhc2ljX2lk LmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3Vw X2NvbXB1dGVfYmFzaWMgPSB7CisJLm5hbWUgPSAiMzlhZDE0YmMtMjM4MC00NWM0LTkxZWItZmJj YjNhYTdhZTdiIiwKKwkuYXR0cnMgPSAgYXR0cnNfY29tcHV0ZV9iYXNpYywKK307CisKK3N0YXRp YyBzc2l6ZV90CitzaG93X2NvbXB1dGVfZXh0ZW5kZWRfaWQoc3RydWN0IGRldmljZSAqa2Rldiwg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3By aW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9DT01QVVRFX0VYVEVOREVEKTsKK30KKwor c3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2NvbXB1dGVfZXh0ZW5kZWRf aWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cg PSBzaG93X2NvbXB1dGVfZXh0ZW5kZWRfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRp YyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19jb21wdXRlX2V4dGVuZGVkW10gPSB7CisJJmRldl9h dHRyX2NvbXB1dGVfZXh0ZW5kZWRfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVj dCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfY29tcHV0ZV9leHRlbmRlZCA9IHsKKwkubmFtZSA9ICIz ODY1YmUyOC02OTgyLTQ5ZmUtOTQ5NC1lNGQxYjQ3OTU0MTMiLAorCS5hdHRycyA9ICBhdHRyc19j b21wdXRlX2V4dGVuZGVkLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfbWVtb3J5X3JlYWRz X2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBj aGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURf TUVNT1JZX1JFQURTKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9h dHRyX21lbW9yeV9yZWFkc19pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9 IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfbWVtb3J5X3JlYWRzX2lkLAorCS5zdG9yZSA9IE5VTEws Cit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfbWVtb3J5X3JlYWRzW10gPSB7 CisJJmRldl9hdHRyX21lbW9yeV9yZWFkc19pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMg c3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9tZW1vcnlfcmVhZHMgPSB7CisJLm5hbWUgPSAi YmI1ZWQ0OWItMjQ5Ny00MDk1LTk0ZjYtMjZiYTI5NGRiODhhIiwKKwkuYXR0cnMgPSAgYXR0cnNf bWVtb3J5X3JlYWRzLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfbWVtb3J5X3dyaXRlc19p ZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hh ciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX01F TU9SWV9XUklURVMpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0 dHJfbWVtb3J5X3dyaXRlc19pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9 IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfbWVtb3J5X3dyaXRlc19pZCwKKwkuc3RvcmUgPSBOVUxM LAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX21lbW9yeV93cml0ZXNbXSA9 IHsKKwkmZGV2X2F0dHJfbWVtb3J5X3dyaXRlc19pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0 aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9tZW1vcnlfd3JpdGVzID0geworCS5uYW1l ID0gIjMzNThkNjM5LTliNWYtNDVhYi05NzZkLTliMDhjYmZjNjI0MCIsCisJLmF0dHJzID0gIGF0 dHJzX21lbW9yeV93cml0ZXMsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19zYW1wbGVyX2Jh bGFuY2VfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0 dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NF VF9JRF9TQU1QTEVSX0JBTEFOQ0UpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUgZGV2X2F0dHJfc2FtcGxlcl9iYWxhbmNlX2lkID0geworCS5hdHRyID0geyAubmFtZSA9ICJp ZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd19zYW1wbGVyX2JhbGFuY2VfaWQsCisJ LnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19zYW1w bGVyX2JhbGFuY2VbXSA9IHsKKwkmZGV2X2F0dHJfc2FtcGxlcl9iYWxhbmNlX2lkLmF0dHIsCisJ TlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3NhbXBsZXJf YmFsYW5jZSA9IHsKKwkubmFtZSA9ICJiYzI3NDQ4OC1iNGI2LTQwYzctOTBkYS1iNzdkN2FkMTYx ODkiLAorCS5hdHRycyA9ICBhdHRyc19zYW1wbGVyX2JhbGFuY2UsCit9OworCiBpbnQKIGk5MTVf cGVyZl9yZWdpc3Rlcl9zeXNmc19oc3coc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogewpAQCAtMTc4LDkgKzY4NSw0OSBAQCBpOTE1X3BlcmZfcmVnaXN0ZXJfc3lzZnNfaHN3KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJaWYgKHJldCkKIAkJCWdvdG8gZXJy b3JfcmVuZGVyX2Jhc2ljOwogCX0KKwlpZiAoZ2V0X2NvbXB1dGVfYmFzaWNfbXV4X2NvbmZpZyhk ZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJp di0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2Jhc2ljKTsKKwkJaWYgKHJldCkK KwkJCWdvdG8gZXJyb3JfY29tcHV0ZV9iYXNpYzsKKwl9CisJaWYgKGdldF9jb21wdXRlX2V4dGVu ZGVkX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVh dGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9leHRl bmRlZCk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2NvbXB1dGVfZXh0ZW5kZWQ7CisJfQor CWlmIChnZXRfbWVtb3J5X3JlYWRzX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgewor CQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAm Z3JvdXBfbWVtb3J5X3JlYWRzKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfbWVtb3J5X3Jl YWRzOworCX0KKwlpZiAoZ2V0X21lbW9yeV93cml0ZXNfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11 eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRy aWNzX2tvYmosICZncm91cF9tZW1vcnlfd3JpdGVzKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJy b3JfbWVtb3J5X3dyaXRlczsKKwl9CisJaWYgKGdldF9zYW1wbGVyX2JhbGFuY2VfbXV4X2NvbmZp ZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZf cHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9zYW1wbGVyX2JhbGFuY2UpOworCQlpZiAo cmV0KQorCQkJZ290byBlcnJvcl9zYW1wbGVyX2JhbGFuY2U7CisJfQogCiAJcmV0dXJuIDA7CiAK K2Vycm9yX3NhbXBsZXJfYmFsYW5jZToKKwlpZiAoZ2V0X3NhbXBsZXJfYmFsYW5jZV9tdXhfY29u ZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+ cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9tZW1vcnlfd3JpdGVzKTsKK2Vycm9yX21lbW9yeV93 cml0ZXM6CisJaWYgKGdldF9zYW1wbGVyX2JhbGFuY2VfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11 eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2Jq LCAmZ3JvdXBfbWVtb3J5X3JlYWRzKTsKK2Vycm9yX21lbW9yeV9yZWFkczoKKwlpZiAoZ2V0X3Nh bXBsZXJfYmFsYW5jZV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3Jl bW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2V4 dGVuZGVkKTsKK2Vycm9yX2NvbXB1dGVfZXh0ZW5kZWQ6CisJaWYgKGdldF9zYW1wbGVyX2JhbGFu Y2VfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAo ZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9iYXNpYyk7CitlcnJv cl9jb21wdXRlX2Jhc2ljOgorCWlmIChnZXRfc2FtcGxlcl9iYWxhbmNlX211eF9jb25maWcoZGV2 X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1l dHJpY3Nfa29iaiwgJmdyb3VwX3JlbmRlcl9iYXNpYyk7CiBlcnJvcl9yZW5kZXJfYmFzaWM6CiAJ cmV0dXJuIHJldDsKIH0KQEAgLTE5Miw0ICs3MzksMTQgQEAgaTkxNV9wZXJmX3VucmVnaXN0ZXJf c3lzZnNfaHN3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCWlmIChnZXRf cmVuZGVyX2Jhc2ljX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKIAkJc3lzZnNfcmVt b3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3JlbmRlcl9iYXNp Yyk7CisJaWYgKGdldF9jb21wdXRlX2Jhc2ljX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVu KSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdy b3VwX2NvbXB1dGVfYmFzaWMpOworCWlmIChnZXRfY29tcHV0ZV9leHRlbmRlZF9tdXhfY29uZmln KGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVy Zi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2V4dGVuZGVkKTsKKwlpZiAoZ2V0X21lbW9y eV9yZWFkc19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9n cm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9tZW1vcnlfcmVhZHMpOwor CWlmIChnZXRfbWVtb3J5X3dyaXRlc19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJ CXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9t ZW1vcnlfd3JpdGVzKTsKKwlpZiAoZ2V0X3NhbXBsZXJfYmFsYW5jZV9tdXhfY29uZmlnKGRldl9w cml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRy aWNzX2tvYmosICZncm91cF9zYW1wbGVyX2JhbGFuY2UpOwogfQotLSAKMi4xMC4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK