From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keith Packard Subject: [PATCH 7/7] radv: add VK_EXT_display_control to radv driver [v3] Date: Thu, 14 Jun 2018 19:52:56 -0700 Message-ID: <20180615025256.10657-8-keithp@keithp.com> References: <20180615025256.10657-1-keithp@keithp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180615025256.10657-1-keithp@keithp.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: mesa-dev@lists.freedesktop.org Cc: Keith Packard , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhpcyBleHRlbnNpb24gcHJvdmlkZXMgZmVuY2VzIGFuZCBmcmFtZSBjb3VudCBpbmZvcm1hdGlv biB0byBkaXJlY3QKZGlzcGxheSBjb250ZXh0cy4gSXQgdXNlcyBuZXcga2VybmVsIGlvY3RscyB0 byBwcm92aWRlIDY0LWJpdHMgb2YKdmJsYW5rIHNlcXVlbmNlIGFuZCBuYW5vc2Vjb25kIHJlc29s dXRpb24uCgp2MjoKCVJld29yayBmZW5jZSBpbnRlZ3JhdGlvbiBpbnRvIHRoZSBkcml2ZXIgc28g dGhhdCB3YWl0aW5nIGZvcgoJYW55IG9mIGEgbWl4dHVyZSBvZiBmZW5jZSB0eXBlcyAod3NpLCBk cml2ZXIgb3Igc3luY29ianMpCgljYXVzZXMgdGhlIGRyaXZlciB0byBwb2xsLCB3aGlsZSBhIGxp c3Qgb2YganVzdCBzeW5jb2JqcyBvcgoJanVzdCBkcml2ZXIgZmVuY2VzIHdpbGwgYmxvY2suIFdo ZW4gd2UgZ2V0IHN5bmNvYmpzIGZvciB3c2kKCWZlbmNlcywgd2UnbGwgYWRhcHQgdG8gdXNlIHRo ZW0uCgp2MzoJQWRvcHQgSmFzb24gRWtzdHJhbmQncyBjb2RpbmcgY29udmVudGlvbnMKCglEZWNs YXJlIHZhcmlhYmxlcyBhdCBmaXJzdCB1c2UsIGVsaW1pbmF0ZSBleHRyYSB3aGl0ZXNwYWNlIGJl dHdlZW4KCXR5cGVzIGFuZCBuYW1lcy4gV3JhcCBsaW5lcyB0byA4MCBjb2x1bW5zLgoKCVN1Z2dl c3RlZC1ieTogSmFzb24gRWtzdHJhbmQgPGphc29uLmVrc3RyYW5kQGludGVsLmNvbT4KClNpZ25l ZC1vZmYtYnk6IEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgotLS0KIHNyYy9hbWQv dnVsa2FuL3JhZHZfZGV2aWNlLmMgICAgICB8ICA2OCArKysrKysrKysrKysrLS0tLS0KIHNyYy9h bWQvdnVsa2FuL3JhZHZfZXh0ZW5zaW9ucy5weSB8ICAgMSArCiBzcmMvYW1kL3Z1bGthbi9yYWR2 X3ByaXZhdGUuaCAgICAgfCAgIDEgKwogc3JjL2FtZC92dWxrYW4vcmFkdl93c2lfZGlzcGxheS5j IHwgMTEzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAx NjcgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2FtZC92 dWxrYW4vcmFkdl9kZXZpY2UuYyBiL3NyYy9hbWQvdnVsa2FuL3JhZHZfZGV2aWNlLmMKaW5kZXgg NTllZTUwM2M4YzIuLmZkODBkYjFjOWI0IDEwMDY0NAotLS0gYS9zcmMvYW1kL3Z1bGthbi9yYWR2 X2RldmljZS5jCisrKyBiL3NyYy9hbWQvdnVsa2FuL3JhZHZfZGV2aWNlLmMKQEAgLTMyNDAsNiAr MzI0MCw3IEBAIFZrUmVzdWx0IHJhZHZfQ3JlYXRlRmVuY2UoCiAJaWYgKCFmZW5jZSkKIAkJcmV0 dXJuIHZrX2Vycm9yKGRldmljZS0+aW5zdGFuY2UsIFZLX0VSUk9SX09VVF9PRl9IT1NUX01FTU9S WSk7CiAKKwlmZW5jZS0+ZmVuY2Vfd3NpID0gTlVMTDsKIAlmZW5jZS0+c3VibWl0dGVkID0gZmFs c2U7CiAJZmVuY2UtPnNpZ25hbGxlZCA9ICEhKHBDcmVhdGVJbmZvLT5mbGFncyAmIFZLX0ZFTkNF X0NSRUFURV9TSUdOQUxFRF9CSVQpOwogCWZlbmNlLT50ZW1wX3N5bmNvYmogPSAwOwpAQCAtMzI4 NCw2ICszMjg1LDggQEAgdm9pZCByYWR2X0Rlc3Ryb3lGZW5jZSgKIAkJZGV2aWNlLT53cy0+ZGVz dHJveV9zeW5jb2JqKGRldmljZS0+d3MsIGZlbmNlLT5zeW5jb2JqKTsKIAlpZiAoZmVuY2UtPmZl bmNlKQogCQlkZXZpY2UtPndzLT5kZXN0cm95X2ZlbmNlKGZlbmNlLT5mZW5jZSk7CisJaWYgKGZl bmNlLT5mZW5jZV93c2kpCisJCWZlbmNlLT5mZW5jZV93c2ktPmRlc3Ryb3koZmVuY2UtPmZlbmNl X3dzaSk7CiAJdmtfZnJlZTIoJmRldmljZS0+YWxsb2MsIHBBbGxvY2F0b3IsIGZlbmNlKTsKIH0K IApAQCAtMzMwOSw3ICszMzEyLDE5IEBAIHN0YXRpYyBib29sIHJhZHZfYWxsX2ZlbmNlc19wbGFp bl9hbmRfc3VibWl0dGVkKHVpbnQzMl90IGZlbmNlQ291bnQsIGNvbnN0IFZrRmVuCiB7CiAJZm9y ICh1aW50MzJfdCBpID0gMDsgaSA8IGZlbmNlQ291bnQ7ICsraSkgewogCQlSQURWX0ZST01fSEFO RExFKHJhZHZfZmVuY2UsIGZlbmNlLCBwRmVuY2VzW2ldKTsKLQkJaWYgKGZlbmNlLT5zeW5jb2Jq IHx8IGZlbmNlLT50ZW1wX3N5bmNvYmogfHwgKCFmZW5jZS0+c2lnbmFsbGVkICYmICFmZW5jZS0+ c3VibWl0dGVkKSkKKwkJaWYgKGZlbmNlLT5mZW5jZSA9PSBOVUxMIHx8IGZlbmNlLT5zeW5jb2Jq IHx8CisJCSAgICBmZW5jZS0+dGVtcF9zeW5jb2JqIHx8CisJCSAgICAoIWZlbmNlLT5zaWduYWxs ZWQgJiYgIWZlbmNlLT5zdWJtaXR0ZWQpKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKwlyZXR1cm4g dHJ1ZTsKK30KKworc3RhdGljIGJvb2wgcmFkdl9hbGxfZmVuY2VzX3N5bmNvYmoodWludDMyX3Qg ZmVuY2VDb3VudCwgY29uc3QgVmtGZW5jZSAqcEZlbmNlcykKK3sKKwlmb3IgKHVpbnQzMl90IGkg PSAwOyBpIDwgZmVuY2VDb3VudDsgKytpKSB7CisJCVJBRFZfRlJPTV9IQU5ETEUocmFkdl9mZW5j ZSwgZmVuY2UsIHBGZW5jZXNbaV0pOworCQlpZiAoZmVuY2UtPnN5bmNvYmogPT0gMCAmJiBmZW5j ZS0+dGVtcF9zeW5jb2JqID09IDApCiAJCQlyZXR1cm4gZmFsc2U7CiAJfQogCXJldHVybiB0cnVl OwpAQCAtMzMyNSw3ICszMzQwLDkgQEAgVmtSZXN1bHQgcmFkdl9XYWl0Rm9yRmVuY2VzKAogCVJB RFZfRlJPTV9IQU5ETEUocmFkdl9kZXZpY2UsIGRldmljZSwgX2RldmljZSk7CiAJdGltZW91dCA9 IHJhZHZfZ2V0X2Fic29sdXRlX3RpbWVvdXQodGltZW91dCk7CiAKLQlpZiAoZGV2aWNlLT5hbHdh eXNfdXNlX3N5bmNvYmopIHsKKwlpZiAoZGV2aWNlLT5hbHdheXNfdXNlX3N5bmNvYmogJiYKKwkg ICAgcmFkdl9hbGxfZmVuY2VzX3N5bmNvYmooZmVuY2VDb3VudCwgcEZlbmNlcykpCisJewogCQl1 aW50MzJfdCAqaGFuZGxlcyA9IG1hbGxvYyhzaXplb2YodWludDMyX3QpICogZmVuY2VDb3VudCk7 CiAJCWlmICghaGFuZGxlcykKIAkJCXJldHVybiB2a19lcnJvcihkZXZpY2UtPmluc3RhbmNlLCBW S19FUlJPUl9PVVRfT0ZfSE9TVF9NRU1PUlkpOwpAQCAtMzM5NSwyMSArMzQxMiwzNSBAQCBWa1Jl c3VsdCByYWR2X1dhaXRGb3JGZW5jZXMoCiAJCWlmIChmZW5jZS0+c2lnbmFsbGVkKQogCQkJY29u dGludWU7CiAKLQkJaWYgKCFmZW5jZS0+c3VibWl0dGVkKSB7Ci0JCQl3aGlsZShyYWR2X2dldF9j dXJyZW50X3RpbWUoKSA8PSB0aW1lb3V0ICYmICFmZW5jZS0+c3VibWl0dGVkKQotCQkJCS8qIERv IG5vdGhpbmcgKi87CisJCWlmIChmZW5jZS0+ZmVuY2UpIHsKKwkJCWlmICghZmVuY2UtPnN1Ym1p dHRlZCkgeworCQkJCXdoaWxlKHJhZHZfZ2V0X2N1cnJlbnRfdGltZSgpIDw9IHRpbWVvdXQgJiYK KwkJCQkgICAgICAhZmVuY2UtPnN1Ym1pdHRlZCkKKwkJCQkJLyogRG8gbm90aGluZyAqLzsKIAot CQkJaWYgKCFmZW5jZS0+c3VibWl0dGVkKQotCQkJCXJldHVybiBWS19USU1FT1VUOworCQkJCWlm ICghZmVuY2UtPnN1Ym1pdHRlZCkKKwkJCQkJcmV0dXJuIFZLX1RJTUVPVVQ7CiAKLQkJCS8qIFJl Y2hlY2sgYXMgaXQgbWF5IGhhdmUgYmVlbiBzZXQgYnkgc3VibWl0dGluZyBvcGVyYXRpb25zLiAq LwotCQkJaWYgKGZlbmNlLT5zaWduYWxsZWQpCi0JCQkJY29udGludWU7CisJCQkJLyogUmVjaGVj ayBhcyBpdCBtYXkgaGF2ZSBiZWVuIHNldCBieQorCQkJCSAqIHN1Ym1pdHRpbmcgb3BlcmF0aW9u cy4gKi8KKworCQkJCWlmIChmZW5jZS0+c2lnbmFsbGVkKQorCQkJCQljb250aW51ZTsKKwkJCX0K KworCQkJZXhwaXJlZCA9IGRldmljZS0+d3MtPmZlbmNlX3dhaXQoZGV2aWNlLT53cywKKwkJCQkJ CQkgZmVuY2UtPmZlbmNlLAorCQkJCQkJCSB0cnVlLCB0aW1lb3V0KTsKKwkJCWlmICghZXhwaXJl ZCkKKwkJCQlyZXR1cm4gVktfVElNRU9VVDsKIAkJfQogCi0JCWV4cGlyZWQgPSBkZXZpY2UtPndz LT5mZW5jZV93YWl0KGRldmljZS0+d3MsIGZlbmNlLT5mZW5jZSwgdHJ1ZSwgdGltZW91dCk7Ci0J CWlmICghZXhwaXJlZCkKLQkJCXJldHVybiBWS19USU1FT1VUOworCQlpZiAoZmVuY2UtPmZlbmNl X3dzaSkgeworCQkJZXhwaXJlZCA9IGZlbmNlLT5mZW5jZV93c2ktPndhaXQoZmVuY2UtPmZlbmNl X3dzaSwKKwkJCQkJCQkgdHJ1ZSwgdGltZW91dCk7CisJCQlpZiAoIWV4cGlyZWQpCisJCQkJcmV0 dXJuIFZLX1RJTUVPVVQ7CisJCX0KIAogCQlmZW5jZS0+c2lnbmFsbGVkID0gdHJ1ZTsKIAl9CkBA IC0zNDYxLDkgKzM0OTIsMTQgQEAgVmtSZXN1bHQgcmFkdl9HZXRGZW5jZVN0YXR1cyhWa0Rldmlj ZSBfZGV2aWNlLCBWa0ZlbmNlIF9mZW5jZSkKIAkJcmV0dXJuIFZLX1NVQ0NFU1M7CiAJaWYgKCFm ZW5jZS0+c3VibWl0dGVkKQogCQlyZXR1cm4gVktfTk9UX1JFQURZOwotCWlmICghZGV2aWNlLT53 cy0+ZmVuY2Vfd2FpdChkZXZpY2UtPndzLCBmZW5jZS0+ZmVuY2UsIGZhbHNlLCAwKSkKLQkJcmV0 dXJuIFZLX05PVF9SRUFEWTsKLQorCWlmIChmZW5jZS0+ZmVuY2UpIHsKKwkJaWYgKCFkZXZpY2Ut PndzLT5mZW5jZV93YWl0KGRldmljZS0+d3MsIGZlbmNlLT5mZW5jZSwgZmFsc2UsIDApKQorCQkJ cmV0dXJuIFZLX05PVF9SRUFEWTsKKwl9CisJaWYgKGZlbmNlLT5mZW5jZV93c2kpIHsKKwkJaWYg KCFmZW5jZS0+ZmVuY2Vfd3NpLT53YWl0KGZlbmNlLT5mZW5jZV93c2ksIGZhbHNlLCAwKSkKKwkJ CXJldHVybiBWS19OT1RfUkVBRFk7CisJfQogCXJldHVybiBWS19TVUNDRVNTOwogfQogCmRpZmYg LS1naXQgYS9zcmMvYW1kL3Z1bGthbi9yYWR2X2V4dGVuc2lvbnMucHkgYi9zcmMvYW1kL3Z1bGth bi9yYWR2X2V4dGVuc2lvbnMucHkKaW5kZXggNjAxYTM0NWIxMTQuLmViYzNmNmJjMmI1IDEwMDY0 NAotLS0gYS9zcmMvYW1kL3Z1bGthbi9yYWR2X2V4dGVuc2lvbnMucHkKKysrIGIvc3JjL2FtZC92 dWxrYW4vcmFkdl9leHRlbnNpb25zLnB5CkBAIC05MCw2ICs5MCw3IEBAIEVYVEVOU0lPTlMgPSBb CiAgICAgRXh0ZW5zaW9uKCdWS19FWFRfZGlyZWN0X21vZGVfZGlzcGxheScsICAgICAgICAgICAg ICAgMSwgJ1ZLX1VTRV9QTEFURk9STV9ESVNQTEFZX0tIUicpLAogICAgIEV4dGVuc2lvbignVktf RVhUX2FjcXVpcmVfeGxpYl9kaXNwbGF5JywgICAgICAgICAgICAgIDEsICdWS19VU0VfUExBVEZP Uk1fWExJQl9YUkFORFJfRVhUJyksCiAgICAgRXh0ZW5zaW9uKCdWS19FWFRfZGlzcGxheV9zdXJm YWNlX2NvdW50ZXInLCAgICAgICAgICAgMSwgJ1ZLX1VTRV9QTEFURk9STV9ESVNQTEFZX0tIUicp LAorICAgIEV4dGVuc2lvbignVktfRVhUX2Rpc3BsYXlfY29udHJvbCcsICAgICAgICAgICAgICAg ICAgIDEsICdWS19VU0VfUExBVEZPUk1fRElTUExBWV9LSFInKSwKICAgICBFeHRlbnNpb24oJ1ZL X0VYVF9kZWJ1Z19yZXBvcnQnLCAgICAgICAgICAgICAgICAgICAgICA5LCBUcnVlKSwKICAgICBF eHRlbnNpb24oJ1ZLX0VYVF9kZXB0aF9yYW5nZV91bnJlc3RyaWN0ZWQnLCAgICAgICAgICAxLCBU cnVlKSwKICAgICBFeHRlbnNpb24oJ1ZLX0VYVF9kZXNjcmlwdG9yX2luZGV4aW5nJywgICAgICAg ICAgICAgICAyLCBUcnVlKSwKZGlmZiAtLWdpdCBhL3NyYy9hbWQvdnVsa2FuL3JhZHZfcHJpdmF0 ZS5oIGIvc3JjL2FtZC92dWxrYW4vcmFkdl9wcml2YXRlLmgKaW5kZXggM2Q3MWQzYmRiMDMuLjFl ODgxYTYxMDE4IDEwMDY0NAotLS0gYS9zcmMvYW1kL3Z1bGthbi9yYWR2X3ByaXZhdGUuaAorKysg Yi9zcmMvYW1kL3Z1bGthbi9yYWR2X3ByaXZhdGUuaApAQCAtMTc3OCw2ICsxNzc4LDcgQEAgdm9p ZCByYWR2X2luaXRpYWxpemVfZGNjKHN0cnVjdCByYWR2X2NtZF9idWZmZXIgKmNtZF9idWZmZXIs CiAKIHN0cnVjdCByYWR2X2ZlbmNlIHsKIAlzdHJ1Y3QgcmFkZW9uX3dpbnN5c19mZW5jZSAqZmVu Y2U7CisJc3RydWN0IHdzaV9mZW5jZSAqZmVuY2Vfd3NpOwogCWJvb2wgc3VibWl0dGVkOwogCWJv b2wgc2lnbmFsbGVkOwogCmRpZmYgLS1naXQgYS9zcmMvYW1kL3Z1bGthbi9yYWR2X3dzaV9kaXNw bGF5LmMgYi9zcmMvYW1kL3Z1bGthbi9yYWR2X3dzaV9kaXNwbGF5LmMKaW5kZXggMGY4OGNlMTM5 NDIuLjVjMDQ2MDM3OGFmIDEwMDY0NAotLS0gYS9zcmMvYW1kL3Z1bGthbi9yYWR2X3dzaV9kaXNw bGF5LmMKKysrIGIvc3JjL2FtZC92dWxrYW4vcmFkdl93c2lfZGlzcGxheS5jCkBAIC0xODgsMyAr MTg4LDExNiBAQCByYWR2X0dldFJhbmRST3V0cHV0RGlzcGxheUVYVChWa1BoeXNpY2FsRGV2aWNl ICBwaHlzaWNhbF9kZXZpY2UsCiAJCQkJCSAgICBkaXNwbGF5KTsKIH0KICNlbmRpZiAvKiBWS19V U0VfUExBVEZPUk1fWExJQl9YUkFORFJfRVhUICovCisKKy8qIFZLX0VYVF9kaXNwbGF5X2NvbnRy b2wgKi8KKworVmtSZXN1bHQKK3JhZHZfRGlzcGxheVBvd2VyQ29udHJvbEVYVChWa0RldmljZSAg ICAgICAgICAgICAgICAgICAgX2RldmljZSwKKwkJCSAgICBWa0Rpc3BsYXlLSFIgICAgICAgICAg ICAgICAgZGlzcGxheSwKKwkJCSAgICBjb25zdCBWa0Rpc3BsYXlQb3dlckluZm9FWFQgKmRpc3Bs YXlfcG93ZXJfaW5mbykKK3sKKwlSQURWX0ZST01fSEFORExFKHJhZHZfZGV2aWNlLCBkZXZpY2Us IF9kZXZpY2UpOworCisJcmV0dXJuIHdzaV9kaXNwbGF5X3Bvd2VyX2NvbnRyb2woX2RldmljZSwK KwkJCQkJICZkZXZpY2UtPnBoeXNpY2FsX2RldmljZS0+d3NpX2RldmljZSwKKwkJCQkJIGRpc3Bs YXksCisJCQkJCSBkaXNwbGF5X3Bvd2VyX2luZm8pOworfQorCitWa1Jlc3VsdAorcmFkdl9SZWdp c3RlckRldmljZUV2ZW50RVhUKFZrRGV2aWNlICAgICAgICAgICAgICAgICAgICBfZGV2aWNlLAor CQkJICAgIGNvbnN0IFZrRGV2aWNlRXZlbnRJbmZvRVhUICAqZGV2aWNlX2V2ZW50X2luZm8sCisJ CQkgICAgY29uc3QgVmtBbGxvY2F0aW9uQ2FsbGJhY2tzICphbGxvY2F0b3IsCisJCQkgICAgVmtG ZW5jZSAgICAgICAgICAgICAgICAgICAgICpfZmVuY2UpCit7CisJUkFEVl9GUk9NX0hBTkRMRShy YWR2X2RldmljZSwgZGV2aWNlLCBfZGV2aWNlKTsKKwljb25zdCBWa0FsbG9jYXRpb25DYWxsYmFj a3MgICphbGxvYzsKKwlzdHJ1Y3QgcmFkdl9mZW5jZSAgICAgICAgICAgICpmZW5jZTsKKwlWa1Jl c3VsdCAgICAgICAgICAgICAgICAgICAgIHJldDsKKworCWlmIChhbGxvY2F0b3IpCisJCWFsbG9j ID0gYWxsb2NhdG9yOworCWVsc2UKKwkJYWxsb2MgPSAmZGV2aWNlLT5pbnN0YW5jZS0+YWxsb2M7 CisKKwlmZW5jZSA9IHZrX2FsbG9jKGFsbG9jLCBzaXplb2YgKCpmZW5jZSksIDgsCisJCQkgVktf U1lTVEVNX0FMTE9DQVRJT05fU0NPUEVfT0JKRUNUKTsKKwlpZiAoIWZlbmNlKQorCQlyZXR1cm4g VktfRVJST1JfT1VUX09GX0hPU1RfTUVNT1JZOworCisJZmVuY2UtPmZlbmNlID0gTlVMTDsKKwlm ZW5jZS0+c3VibWl0dGVkID0gdHJ1ZTsKKwlmZW5jZS0+c2lnbmFsbGVkID0gZmFsc2U7CisJZmVu Y2UtPnN5bmNvYmogPSAwOworCWZlbmNlLT50ZW1wX3N5bmNvYmogPSAwOworCisJcmV0ID0gd3Np X3JlZ2lzdGVyX2RldmljZV9ldmVudChfZGV2aWNlLAorCQkJCQkmZGV2aWNlLT5waHlzaWNhbF9k ZXZpY2UtPndzaV9kZXZpY2UsCisJCQkJCWRldmljZV9ldmVudF9pbmZvLAorCQkJCQlhbGxvYywK KwkJCQkJJmZlbmNlLT5mZW5jZV93c2kpOworCWlmIChyZXQgPT0gVktfU1VDQ0VTUykKKwkJKl9m ZW5jZSA9IHJhZHZfZmVuY2VfdG9faGFuZGxlKGZlbmNlKTsKKwllbHNlCisJCXZrX2ZyZWUoYWxs b2MsIGZlbmNlKTsKKwlyZXR1cm4gcmV0OworfQorCitWa1Jlc3VsdAorcmFkdl9SZWdpc3RlckRp c3BsYXlFdmVudEVYVChWa0RldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kZXZpY2Us CisJCQkgICAgIFZrRGlzcGxheUtIUiAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSwKKwkJ CSAgICAgY29uc3QgVmtEaXNwbGF5RXZlbnRJbmZvRVhUICAgICAgICAqZGlzcGxheV9ldmVudF9p bmZvLAorCQkJICAgICBjb25zdCBWa0FsbG9jYXRpb25DYWxsYmFja3MgICAgICAgICphbGxvY2F0 b3IsCisJCQkgICAgIFZrRmVuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgKl9mZW5jZSkK K3sKKwlSQURWX0ZST01fSEFORExFKHJhZHZfZGV2aWNlLCBkZXZpY2UsIF9kZXZpY2UpOworCisJ Y29uc3QgVmtBbGxvY2F0aW9uQ2FsbGJhY2tzICAqYWxsb2M7CisJc3RydWN0IHJhZHZfZmVuY2Ug ICAgICAgICAgICAqZmVuY2U7CisJVmtSZXN1bHQgICAgICAgICAgICAgICAgICAgICByZXQ7CisK KwlpZiAoYWxsb2NhdG9yKQorCQlhbGxvYyA9IGFsbG9jYXRvcjsKKwllbHNlCisJCWFsbG9jID0g JmRldmljZS0+aW5zdGFuY2UtPmFsbG9jOworCisJZmVuY2UgPSB2a19hbGxvYyhhbGxvYywgc2l6 ZW9mICgqZmVuY2UpLCA4LAorCQkJIFZLX1NZU1RFTV9BTExPQ0FUSU9OX1NDT1BFX09CSkVDVCk7 CisJaWYgKCFmZW5jZSkKKwkJcmV0dXJuIFZLX0VSUk9SX09VVF9PRl9IT1NUX01FTU9SWTsKKwor CWZlbmNlLT5mZW5jZSA9IE5VTEw7CisJZmVuY2UtPnN1Ym1pdHRlZCA9IHRydWU7CisJZmVuY2Ut PnNpZ25hbGxlZCA9IGZhbHNlOworCWZlbmNlLT5zeW5jb2JqID0gMDsKKwlmZW5jZS0+dGVtcF9z eW5jb2JqID0gMDsKKworCXJldCA9IHdzaV9yZWdpc3Rlcl9kaXNwbGF5X2V2ZW50KF9kZXZpY2Us CisJCQkJCSAmZGV2aWNlLT5waHlzaWNhbF9kZXZpY2UtPndzaV9kZXZpY2UsCisJCQkJCSBkaXNw bGF5LAorCQkJCQkgZGlzcGxheV9ldmVudF9pbmZvLAorCQkJCQkgYWxsb2MsCisJCQkJCSAmKGZl bmNlLT5mZW5jZV93c2kpKTsKKworCWlmIChyZXQgPT0gVktfU1VDQ0VTUykKKwkJKl9mZW5jZSA9 IHJhZHZfZmVuY2VfdG9faGFuZGxlKGZlbmNlKTsKKwllbHNlCisJCXZrX2ZyZWUoYWxsb2MsIGZl bmNlKTsKKwlyZXR1cm4gcmV0OworfQorCitWa1Jlc3VsdAorcmFkdl9HZXRTd2FwY2hhaW5Db3Vu dGVyRVhUKFZrRGV2aWNlICAgICAgICAgICAgICAgICAgICBfZGV2aWNlLAorCQkJICAgIFZrU3dh cGNoYWluS0hSICAgICAgICAgICAgICBzd2FwY2hhaW4sCisJCQkgICAgVmtTdXJmYWNlQ291bnRl ckZsYWdCaXRzRVhUIGZsYWdfYml0cywKKwkJCSAgICB1aW50NjRfdCAgICAgICAgICAgICAgICAg ICAgKnZhbHVlKQoreworCVJBRFZfRlJPTV9IQU5ETEUocmFkdl9kZXZpY2UsIGRldmljZSwgX2Rl dmljZSk7CisKKwlyZXR1cm4gd3NpX2dldF9zd2FwY2hhaW5fY291bnRlcihfZGV2aWNlLAorCQkJ CQkgJmRldmljZS0+cGh5c2ljYWxfZGV2aWNlLT53c2lfZGV2aWNlLAorCQkJCQkgc3dhcGNoYWlu LAorCQkJCQkgZmxhZ19iaXRzLAorCQkJCQkgdmFsdWUpOworfQorCi0tIAoyLjE3LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=