From mboxrd@z Thu Jan 1 00:00:00 1970 From: Monk Liu Subject: [PATCH] drm/amdgpu:implement CONTEXT_CONTROL (v3) Date: Wed, 31 Aug 2016 11:49:01 +0800 Message-ID: <1472615341-3847-1-git-send-email-Monk.Liu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Monk Liu djE6CmZvciBnZng4LCB1c2UgQ09OVEVYVF9DT05UUk9MIHBhY2thZ2UgdG8gZHluYW1pY2FsbHkK c2tpcCBwcmVhbWJsZSBDRUlCIGFuZCBvdGhlciBsb2FkX3h4eCBjb21tYW5kIGluIHNlcXVlbmNl LgoKdjI6CnN1cHBvcnQgR0ZYNyBhcyB3ZWxsLCBhbmQgYnVtcCB1cCB2ZXJzaW9uLgpyZW1vdmUg Y250eGNudGwgaW4gY29tcHV0ZSByaW5nIGZ1bmNzIGJlY2F1c2UgQ1BDIGRvZXNuJ3QKc3VwcG9y dCB0aGlzIHBhY2tldC4KCnYzOiBmaXggcmVkdW50YW50IGp1ZGdlbWVudCBpbiBjbnR4Y250bC4K CkNoYW5nZS1JZDogSTRiODdjYTg0ZWE4YzExYmE0ZjdmYjRjMGU4YTViZTUzN2NjZGU4NTEKU2ln bmVkLW9mZi1ieTogTW9uayBMaXUgPE1vbmsuTGl1QGFtZC5jb20+CgpDaGFuZ2UtSWQ6IEk1ZDI0 YzFiYjVjMTQxOTBjZTRhZGViNmEzMzFlZTNkOTJiM2Q1YzgzClNpZ25lZC1vZmYtYnk6IE1vbmsg TGl1IDxNb25rLkxpdUBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdS5oICAgICB8ICA5ICsrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2NzLmMgIHwgMTIgKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZHJ2LmMgfCAgMyArKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9p Yi5jICB8IDE2ICsrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dm eF92N18wLmMgICB8IDIwICsrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nZnhfdjhfMC5jICAgfCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IDYgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCmluZGV4IDEyNTQ0MTAuLjBkZTVmMDggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCkBAIC0zMjEsNiArMzIxLDcgQEAgc3RydWN0IGFtZGdw dV9yaW5nX2Z1bmNzIHsKIAl2b2lkICgqYmVnaW5fdXNlKShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcpOwogCXZvaWQgKCplbmRfdXNlKShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOwogCXZvaWQg KCplbWl0X3N3aXRjaF9idWZmZXIpIChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOworCXZvaWQg KCplbWl0X2NudHhjbnRsKSAoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBmbGFn cyk7CiB9OwogCiAvKgpAQCAtOTY1LDYgKzk2Niw3IEBAIHN0cnVjdCBhbWRncHVfY3R4IHsKIAlz cGlubG9ja190CQlyaW5nX2xvY2s7CiAJc3RydWN0IGZlbmNlICAgICAgICAgICAgKipmZW5jZXM7 CiAJc3RydWN0IGFtZGdwdV9jdHhfcmluZwlyaW5nc1tBTURHUFVfTUFYX1JJTkdTXTsKKwlib29s IHByZWFtYmxlX3ByZXNlbnRlZDsKIH07CiAKIHN0cnVjdCBhbWRncHVfY3R4X21nciB7CkBAIC0x MjI3LDggKzEyMjksMTMgQEAgc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgewogCiAJLyogdXNlciBm ZW5jZSAqLwogCXN0cnVjdCBhbWRncHVfYm9fbGlzdF9lbnRyeQl1Zl9lbnRyeTsKKwlib29sIHBy ZWFtYmxlX3ByZXNlbnQ7IC8qIFRydWUgbWVhbnMgdGhpcyBjb21tYW5kIHN1Ym1pdCBpbnZvbHZl cyBhIHByZWFtYmxlIElCICovCiB9OwogCisjZGVmaW5lIFBSRUFNQkxFX0lCX1BSRVNFTlQgCQko MSA8PCAwKSAvKiBiaXQgc2V0IG1lYW5zIGNvbW1hbmQgc3VibWl0IGludm9sdmVzIGEgcHJlYW1i bGUgSUIgKi8KKyNkZWZpbmUgUFJFQU1CTEVfSUJfUFJFU0VOVF9GSVJTVAkoMSA8PCAxKSAvKiBi aXQgc2V0IG1lYW5zIHByZWFtYmxlIElCIGlzIGZpcnN0IHByZXNlbnRlZCBpbiBiZWxvbmdpbmcg Y29udGV4dCAqLworI2RlZmluZSBIQVZFX0NUWF9TV0lUQ0gJCSgxIDw8IDIpIC8qIGJpdCBzZXQg bWVhbnMgY29udGV4dCBzd2l0Y2ggb2NjdXJlZCAqLworCiBzdHJ1Y3QgYW1kZ3B1X2pvYiB7CiAJ c3RydWN0IGFtZF9zY2hlZF9qb2IgICAgYmFzZTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZQkqYWRl djsKQEAgLTEyMzcsNiArMTI0NCw3IEBAIHN0cnVjdCBhbWRncHVfam9iIHsKIAlzdHJ1Y3QgYW1k Z3B1X3N5bmMJc3luYzsKIAlzdHJ1Y3QgYW1kZ3B1X2liCSppYnM7CiAJc3RydWN0IGZlbmNlCQkq ZmVuY2U7IC8qIHRoZSBodyBmZW5jZSAqLworCXVpbnQzMl90CQlwcmVhbWJsZV9zdGF0dXM7CiAJ dWludDMyX3QJCW51bV9pYnM7CiAJdm9pZAkJCSpvd25lcjsKIAl1aW50NjRfdAkJZmVuY2VfY3R4 OyAvKiB0aGUgZmVuY2VfY29udGV4dCB0aGlzIGpvYiB1c2VzICovCkBAIC0yMjY0LDYgKzIyNzIs NyBAQCBhbWRncHVfZ2V0X3NkbWFfaW5zdGFuY2Uoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQog I2RlZmluZSBhbWRncHVfcmluZ19lbWl0X2hkcF9mbHVzaChyKSAociktPmZ1bmNzLT5lbWl0X2hk cF9mbHVzaCgocikpCiAjZGVmaW5lIGFtZGdwdV9yaW5nX2VtaXRfaGRwX2ludmFsaWRhdGUocikg KHIpLT5mdW5jcy0+ZW1pdF9oZHBfaW52YWxpZGF0ZSgocikpCiAjZGVmaW5lIGFtZGdwdV9yaW5n X2VtaXRfc3dpdGNoX2J1ZmZlcihyKSAociktPmZ1bmNzLT5lbWl0X3N3aXRjaF9idWZmZXIoKHIp KQorI2RlZmluZSBhbWRncHVfcmluZ19lbWl0X2NudHhjbnRsKHIsIGQpIChyKS0+ZnVuY3MtPmVt aXRfY250eGNudGwoKHIpLCAoZCkpCiAjZGVmaW5lIGFtZGdwdV9yaW5nX3BhZF9pYihyLCBpYikg KChyKS0+ZnVuY3MtPnBhZF9pYigociksIChpYikpKQogI2RlZmluZSBhbWRncHVfcmluZ19pbml0 X2NvbmRfZXhlYyhyKSAociktPmZ1bmNzLT5pbml0X2NvbmRfZXhlYygocikpCiAjZGVmaW5lIGFt ZGdwdV9yaW5nX3BhdGNoX2NvbmRfZXhlYyhyLG8pIChyKS0+ZnVuY3MtPnBhdGNoX2NvbmRfZXhl YygociksKG8pKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwppbmRleCAyZDRl MDA1Li42ZDhjMDUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwpAQCAt NzkyLDYgKzc5Miw5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX2liX2ZpbGwoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCiAJCWlmIChyKQogCQkJcmV0dXJuIHI7CiAKKwkJaWYgKGliLT5mbGFn cyAmIEFNREdQVV9JQl9GTEFHX1BSRUFNQkxFKQorCQkJcGFyc2VyLT5wcmVhbWJsZV9wcmVzZW50 ID0gdHJ1ZTsKKwogCQlpZiAocGFyc2VyLT5qb2ItPnJpbmcgJiYgcGFyc2VyLT5qb2ItPnJpbmcg IT0gcmluZykKIAkJCXJldHVybiAtRUlOVkFMOwogCkBAIC05MzAsNiArOTMzLDEyIEBAIHN0YXRp YyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKIAkJcmV0 dXJuIHI7CiAJfQogCisJaWYgKHAtPnByZWFtYmxlX3ByZXNlbnQpIHsKKwkJam9iLT5wcmVhbWJs ZV9zdGF0dXMgfD0gUFJFQU1CTEVfSUJfUFJFU0VOVDsKKwkJaWYgKCFwLT5jdHgtPnByZWFtYmxl X3ByZXNlbnRlZCkKKwkJCWpvYi0+cHJlYW1ibGVfc3RhdHVzIHw9IFBSRUFNQkxFX0lCX1BSRVNF TlRfRklSU1Q7CisJfQorCiAJam9iLT5vd25lciA9IHAtPmZpbHA7CiAJam9iLT5mZW5jZV9jdHgg PSBlbnRpdHktPmZlbmNlX2NvbnRleHQ7CiAJcC0+ZmVuY2UgPSBmZW5jZV9nZXQoJmpvYi0+YmFz ZS5zX2ZlbmNlLT5maW5pc2hlZCk7CkBAIC05NDAsNiArOTQ5LDkgQEAgc3RhdGljIGludCBhbWRn cHVfY3Nfc3VibWl0KHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAogCXRyYWNlX2FtZGdwdV9j c19pb2N0bChqb2IpOwogCWFtZF9zY2hlZF9lbnRpdHlfcHVzaF9qb2IoJmpvYi0+YmFzZSk7CiAK KwlpZiAocC0+cHJlYW1ibGVfcHJlc2VudCkKKwkJcC0+Y3R4LT5wcmVhbWJsZV9wcmVzZW50ZWQg PSB0cnVlOworCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kcnYuYwppbmRleCA1NmM4NWU2Li40NGRiMGFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2Rydi5jCkBAIC01NSw5ICs1NSwxMCBAQAogICogLSAzLjMuMCAtIEFkZCBWTSBz dXBwb3J0IGZvciBVVkQgb24gc3VwcG9ydGVkIGhhcmR3YXJlLgogICogLSAzLjQuMCAtIEFkZCBB TURHUFVfSU5GT19OVU1fRVZJQ1RJT05TLgogICogLSAzLjUuMCAtIEFkZCBzdXBwb3J0IGZvciBu ZXcgVVZEX05PX09QIHJlZ2lzdGVyLgorICogLSAzLjYuMCAtIFVNRCBkb2Vzbid0L3Nob3VsZG4n dCBuZWVkIHRvIHVzZSBDT05URVhUX0NPTlRST0wgaW4gSUIsIEtNRCBzaG91bGQgZG8gaXQKICAq LwogI2RlZmluZSBLTVNfRFJJVkVSX01BSk9SCTMKLSNkZWZpbmUgS01TX0RSSVZFUl9NSU5PUgk1 CisjZGVmaW5lIEtNU19EUklWRVJfTUlOT1IJNgogI2RlZmluZSBLTVNfRFJJVkVSX1BBVENITEVW RUwJMAogCiBpbnQgYW1kZ3B1X3ZyYW1fbGltaXQgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfaWIuYwppbmRleCAwNDI2M2YwLi5iMTJiNWJhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfaWIuYwpAQCAtMTIxLDEwICsxMjEsMTEgQEAgaW50IGFtZGdwdV9pYl9z Y2hlZHVsZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVuc2lnbmVkIG51bV9pYnMsCiB7CiAJ c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OwogCXN0cnVjdCBhbWRncHVf aWIgKmliID0gJmlic1swXTsKLQlib29sIHNraXBfcHJlYW1ibGUsIG5lZWRfY3R4X3N3aXRjaDsK Kwlib29sIG5lZWRfY3R4X3N3aXRjaDsKIAl1bnNpZ25lZCBwYXRjaF9vZmZzZXQgPSB+MDsKIAlz dHJ1Y3QgYW1kZ3B1X3ZtICp2bTsKIAl1aW50NjRfdCBmZW5jZV9jdHg7CisJdWludDMyX3Qgc3Rh dHVzID0gMDsKIAogCXVuc2lnbmVkIGk7CiAJaW50IHIgPSAwOwpAQCAtMTc0LDE1ICsxNzUsMTYg QEAgaW50IGFtZGdwdV9pYl9zY2hlZHVsZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVuc2ln bmVkIG51bV9pYnMsCiAJLyogYWx3YXlzIHNldCBjb25kX2V4ZWNfcG9sbGluZyB0byBDT05USU5V RSAqLwogCSpyaW5nLT5jb25kX2V4ZV9jcHVfYWRkciA9IDE7CiAKLQlza2lwX3ByZWFtYmxlID0g cmluZy0+Y3VycmVudF9jdHggPT0gZmVuY2VfY3R4OwogCW5lZWRfY3R4X3N3aXRjaCA9IHJpbmct PmN1cnJlbnRfY3R4ICE9IGZlbmNlX2N0eDsKKwlpZiAoam9iICYmIHJpbmctPmZ1bmNzLT5lbWl0 X2NudHhjbnRsKSB7CisJCWlmIChuZWVkX2N0eF9zd2l0Y2gpCisJCQlzdGF0dXMgfD0gSEFWRV9D VFhfU1dJVENIOworCQlzdGF0dXMgfD0gam9iLT5wcmVhbWJsZV9zdGF0dXM7CisJCWFtZGdwdV9y aW5nX2VtaXRfY250eGNudGwocmluZywgc3RhdHVzKTsKKwl9CisKIAlmb3IgKGkgPSAwOyBpIDwg bnVtX2liczsgKytpKSB7CiAJCWliID0gJmlic1tpXTsKLQotCQkvKiBkcm9wIHByZWFtYmxlIElC cyBpZiB3ZSBkb24ndCBoYXZlIGEgY29udGV4dCBzd2l0Y2ggKi8KLQkJaWYgKChpYi0+ZmxhZ3Mg JiBBTURHUFVfSUJfRkxBR19QUkVBTUJMRSkgJiYgc2tpcF9wcmVhbWJsZSkKLQkJCWNvbnRpbnVl OwotCiAJCWFtZGdwdV9yaW5nX2VtaXRfaWIocmluZywgaWIsIGpvYiA/IGpvYi0+dm1faWQgOiAw LAogCQkJCSAgICBuZWVkX2N0eF9zd2l0Y2gpOwogCQluZWVkX2N0eF9zd2l0Y2ggPSBmYWxzZTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jCmluZGV4IGYwNTVkNDkuLjBkNWFkZGIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYwpAQCAtMjA5Niw2ICsyMDk2LDI1 IEBAIHN0YXRpYyB2b2lkIGdmeF92N18wX3JpbmdfZW1pdF9pYl9jb21wdXRlKHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBjb250cm9sKTsKIH0KIAor c3RhdGljIHZvaWQgZ2Z4X3Y3X3JpbmdfZW1pdF9jbnR4Y250bChzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcsIHVpbnQzMl90IGZsYWdzKQoreworCXVpbnQzMl90IGR3MiA9IDA7CisKKwlkdzIgfD0g MHg4MDAwMDAwMDsgLyogc2V0IGxvYWRfZW5hYmxlIG90aGVyd2lzZSB0aGlzIHBhY2thZ2UgaXMg anVzdCBOT1BzICovCisJaWYgKGZsYWdzICYgSEFWRV9DVFhfU1dJVENIKSB7CisJCS8qIHNldCBs b2FkX2dsb2JhbF9jb25maWcgJiBsb2FkX2dsb2JhbF91Y29uZmlnICovCisJCWR3MiB8PSAweDgw MDE7CisJCS8qIHNldCBsb2FkX2NzX3NoX3JlZ3MgKi8KKwkJZHcyIHw9IDB4MDEwMDAwMDA7CisJ CS8qIHNldCBsb2FkX3Blcl9jb250ZXh0X3N0YXRlICYgbG9hZF9nZnhfc2hfcmVncyAqLworCQlk dzIgfD0gMHgxMDAwMjsKKwl9CisKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQzKFBB Q0tFVDNfQ09OVEVYVF9DT05UUk9MLCAxKSk7CisJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgZHcy KTsKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLCAwKTsKK30KKwogLyoqCiAgKiBnZnhfdjdfMF9y aW5nX3Rlc3RfaWIgLSBiYXNpYyByaW5nIElCIHRlc3QKICAqCkBAIC00OTI5LDYgKzQ5NDgsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIGdmeF92N18wX3JpbmdfZnVu Y3NfZ2Z4ID0gewogCS50ZXN0X2liID0gZ2Z4X3Y3XzBfcmluZ190ZXN0X2liLAogCS5pbnNlcnRf bm9wID0gYW1kZ3B1X3JpbmdfaW5zZXJ0X25vcCwKIAkucGFkX2liID0gYW1kZ3B1X3JpbmdfZ2Vu ZXJpY19wYWRfaWIsCisJLmVtaXRfY250eGNudGwgPSBnZnhfdjdfcmluZ19lbWl0X2NudHhjbnRs LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyBnZnhfdjdfMF9y aW5nX2Z1bmNzX2NvbXB1dGUgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nZnhfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYwpp bmRleCA4YmE4ZTQyLi43M2Y2ZmZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nZnhfdjhfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8w LmMKQEAgLTYwODUsNiArNjA4NSwzNSBAQCBzdGF0aWMgdm9pZCBnZnhfdjhfcmluZ19lbWl0X3Ni KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCAwKTsK IH0KIAorc3RhdGljIHZvaWQgZ2Z4X3Y4X3JpbmdfZW1pdF9jbnR4Y250bChzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcsIHVpbnQzMl90IGZsYWdzKQoreworCXVpbnQzMl90IGR3MiA9IDA7CisKKwlk dzIgfD0gMHg4MDAwMDAwMDsgLyogc2V0IGxvYWRfZW5hYmxlIG90aGVyd2lzZSB0aGlzIHBhY2th Z2UgaXMganVzdCBOT1BzICovCisJaWYgKGZsYWdzICYgSEFWRV9DVFhfU1dJVENIKSB7CisJCS8q IHNldCBsb2FkX2dsb2JhbF9jb25maWcgJiBsb2FkX2dsb2JhbF91Y29uZmlnICovCisJCWR3MiB8 PSAweDgwMDE7CisJCS8qIHNldCBsb2FkX2NzX3NoX3JlZ3MgKi8KKwkJZHcyIHw9IDB4MDEwMDAw MDA7CisJCS8qIHNldCBsb2FkX3Blcl9jb250ZXh0X3N0YXRlICYgbG9hZF9nZnhfc2hfcmVncyBm b3IgR0ZYICovCisJCWR3MiB8PSAweDEwMDAyOworCisJCS8qIHNldCBsb2FkX2NlX3JhbSBpZiBw cmVhbWJsZSBwcmVzZW50ZWQgKi8KKwkJaWYgKFBSRUFNQkxFX0lCX1BSRVNFTlQgJiBmbGFncykK KwkJCWR3MiB8PSAweDEwMDAwMDAwOworCX0gZWxzZSB7CisJCS8qIHN0aWxsIGxvYWRfY2VfcmFt IGlmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgcHJlYW1ibGUgcHJlc2VudGVkCisJCSAqIGFsdGhv dWdoIHRoZXJlIGlzIG5vIGNvbnRleHQgc3dpdGNoIGhhcHBlbnMuCisJCSAqLworCQlpZiAoUFJF QU1CTEVfSUJfUFJFU0VOVF9GSVJTVCAmIGZsYWdzKQorCQkJZHcyIHw9IDB4MTAwMDAwMDA7CisJ fQorCisJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMyhQQUNLRVQzX0NPTlRFWFRfQ09O VFJPTCwgMSkpOworCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIGR3Mik7CisJYW1kZ3B1X3Jpbmdf d3JpdGUocmluZywgMCk7Cit9CisKIHN0YXRpYyB2b2lkIGdmeF92OF8wX3NldF9nZnhfZW9wX2lu dGVycnVwdF9zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkJCSBlbnVtIGFt ZGdwdV9pbnRlcnJ1cHRfc3RhdGUgc3RhdGUpCiB7CkBAIC02MjY3LDYgKzYyOTYsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIGdmeF92OF8wX3JpbmdfZnVuY3NfZ2Z4 ID0gewogCS5pbnNlcnRfbm9wID0gYW1kZ3B1X3JpbmdfaW5zZXJ0X25vcCwKIAkucGFkX2liID0g YW1kZ3B1X3JpbmdfZ2VuZXJpY19wYWRfaWIsCiAJLmVtaXRfc3dpdGNoX2J1ZmZlciA9IGdmeF92 OF9yaW5nX2VtaXRfc2IsCisJLmVtaXRfY250eGNudGwgPSBnZnhfdjhfcmluZ19lbWl0X2NudHhj bnRsLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyBnZnhfdjhf MF9yaW5nX2Z1bmNzX2NvbXB1dGUgPSB7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9hbWQtZ2Z4Cg==