drm: Branch 'master' - 3 commits

GitLab Mirror <[email protected]> Tue, 7 Jan 2020 19:45:19 +0000 (UTC)
Newsgroups gmane.comp.video.dri.patches
Message-ID <[email protected]>
IHRlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5jICAgfCAgICAyIAogdGVzdHMvYW1kZ3B1L2NzX3Rl
c3RzLmMgICAgICB8ICAgIDEgCiB0ZXN0cy9hbWRncHUvcmFzX3Rlc3RzLmMgICAgIHwgIDI4NSAr
KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB0ZXN0cy9hbWRncHUv
c3luY29ial90ZXN0cy5jIHwgICAgMiAKIDQgZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2VydGlvbnMo
KyksIDE0NiBkZWxldGlvbnMoLSkKCk5ldyBjb21taXRzOgpjb21taXQgOWViZmFjMTVhNWM0NDNl
ODQ3YjQzMjc2NWUzYjNhYTM1Zjc0YzZmMQpBdXRob3I6IE1hcmVrIE9sxaHDoWsgPG1hcmVrLm9s
c2FrQGFtZC5jb20+CkRhdGU6ICAgVHVlIEphbiA3IDE0OjQ0OjM1IDIwMjAgLTA1MDAKCiAgICBS
ZXZlcnQgInRlc3RzL2FtZGdwdTogRml4IHZhcmlvdXMgd2FybmluZ3MiCiAgICAKICAgIFRoaXMg
cmV2ZXJ0cyBjb21taXQgZmIxNjM0NTgzZjNiYTIyYzY3Y2FkMGRmNzAyMmI2YWM0OGE0MGM1Ni4K
CmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9i
YXNpY190ZXN0cy5jCmluZGV4IDFmNjg5MGUwLi44NGYzODI3ZCAxMDA2NDQKLS0tIGEvdGVzdHMv
YW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKKysrIGIvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKQEAg
LTMzMDYsNyArMzMwNiw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9tZW1jcHlfZHJhdyhhbWRncHVf
ZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLAogCWludCBib19jbWRfc2l6ZSA9IDQwOTY7CiAJ
c3RydWN0IGFtZGdwdV9jc19yZXF1ZXN0IGlic19yZXF1ZXN0ID0gezB9OwogCXN0cnVjdCBhbWRn
cHVfY3NfaWJfaW5mbyBpYl9pbmZvPSB7MH07Ci0JdWludDMyX3QgZXhwaXJlZDsKKwl1aW50MzJf
dCBoYW5nX3N0YXRlLCBoYW5ncywgZXhwaXJlZDsKIAlhbWRncHVfYm9fbGlzdF9oYW5kbGUgYm9f
bGlzdDsKIAlzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNlIGZlbmNlX3N0YXR1cyA9IHswfTsKIApkaWZm
IC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L2NzX3Rlc3RzLmMgYi90ZXN0cy9hbWRncHUvY3NfdGVzdHMu
YwppbmRleCBhZTRmNjVmNS4uN2FkMGYwZGMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9jc190
ZXN0cy5jCisrKyBiL3Rlc3RzL2FtZGdwdS9jc190ZXN0cy5jCkBAIC0zNTgsNyArMzU4LDYgQEAg
c3RhdGljIHZvaWQgYW1kZ3B1X2NzX3V2ZF9kZWNvZGUodm9pZCkKIAkJYnNfYWRkciA9IGZiX2Fk
ZHIgKyA0KjEwMjQ7CiAJZHBiX2FkZHIgPSBBTElHTihic19hZGRyICsgc2l6ZW9mKHV2ZF9iaXRz
dHJlYW0pLCA0KjEwMjQpOwogCi0JY3R4X2FkZHIgPSAwOwogCWlmIChmYW1pbHlfaWQgPj0gQU1E
R1BVX0ZBTUlMWV9WSSkgewogCQlpZiAoKGZhbWlseV9pZCA9PSBBTURHUFVfRkFNSUxZX0FJKSB8
fAogCQkgICAgKGNoaXBfaWQgPT0gY2hpcF9yZXYrMHg1MCB8fCBjaGlwX2lkID09IGNoaXBfcmV2
KzB4NUEgfHwKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9yYXNfdGVzdHMuYyBiL3Rlc3RzL2Ft
ZGdwdS9yYXNfdGVzdHMuYwppbmRleCBkNzE0YmU3My4uYzFjNTQzYzEgMTAwNjQ0Ci0tLSBhL3Rl
c3RzL2FtZGdwdS9yYXNfdGVzdHMuYworKysgYi90ZXN0cy9hbWRncHUvcmFzX3Rlc3RzLmMKQEAg
LTUyMiw2ICs1MjIsMTI0IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Jhc19sb29rdXBfaWQoZHJtRGV2
aWNlUHRyIGRldmljZSkKIAlyZXR1cm4gLTE7CiB9CiAKK0NVX0JPT0wgc3VpdGVfcmFzX3Rlc3Rz
X2VuYWJsZSh2b2lkKQoreworCWFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9oYW5kbGU7CisJ
dWludDMyX3QgIG1ham9yX3ZlcnNpb247CisJdWludDMyX3QgIG1pbm9yX3ZlcnNpb247CisJaW50
IGk7CisJZHJtRGV2aWNlUHRyIGRldmljZTsKKworCWZvciAoaSA9IDA7IGkgPCBNQVhfQ0FSRFNf
U1VQUE9SVEVEICYmIGRybV9hbWRncHVbaV0gPj0gMDsgaSsrKSB7CisJCWlmIChhbWRncHVfZGV2
aWNlX2luaXRpYWxpemUoZHJtX2FtZGdwdVtpXSwgJm1ham9yX3ZlcnNpb24sCisJCQkJCSZtaW5v
cl92ZXJzaW9uLCAmZGV2aWNlX2hhbmRsZSkpCisJCQljb250aW51ZTsKKworCQlpZiAoZHJtR2V0
RGV2aWNlMihkcm1fYW1kZ3B1W2ldLAorCQkJCQlEUk1fREVWSUNFX0dFVF9QQ0lfUkVWSVNJT04s
CisJCQkJCSZkZXZpY2UpKQorCQkJY29udGludWU7CisKKwkJaWYgKGRldmljZS0+YnVzdHlwZSA9
PSBEUk1fQlVTX1BDSSAmJgorCQkJCWFtZGdwdV9yYXNfbG9va3VwX2NhcGFiaWxpdHkoZGV2aWNl
X2hhbmRsZSkpIHsKKwkJCWFtZGdwdV9kZXZpY2VfZGVpbml0aWFsaXplKGRldmljZV9oYW5kbGUp
OworCQkJcmV0dXJuIENVX1RSVUU7CisJCX0KKworCQlpZiAoYW1kZ3B1X2RldmljZV9kZWluaXRp
YWxpemUoZGV2aWNlX2hhbmRsZSkpCisJCQljb250aW51ZTsKKwl9CisKKwlyZXR1cm4gQ1VfRkFM
U0U7Cit9CisKK2ludCBzdWl0ZV9yYXNfdGVzdHNfaW5pdCh2b2lkKQoreworCWRybURldmljZVB0
ciBkZXZpY2U7CisJYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZTsKKwl1aW50MzJf
dCAgbWFqb3JfdmVyc2lvbjsKKwl1aW50MzJfdCAgbWlub3JfdmVyc2lvbjsKKwl1aW50MzJfdCAg
Y2FwYWJpbGl0eTsKKwlzdHJ1Y3QgcmFzX3Rlc3RfbWFzayB0ZXN0X21hc2s7CisJaW50IGlkOwor
CWludCBpOworCWludCByOworCisJZm9yIChpID0gMDsgaSA8IE1BWF9DQVJEU19TVVBQT1JURUQg
JiYgZHJtX2FtZGdwdVtpXSA+PSAwOyBpKyspIHsKKwkJciA9IGFtZGdwdV9kZXZpY2VfaW5pdGlh
bGl6ZShkcm1fYW1kZ3B1W2ldLCAmbWFqb3JfdmVyc2lvbiwKKwkJCQkmbWlub3JfdmVyc2lvbiwg
JmRldmljZV9oYW5kbGUpOworCQlpZiAocikKKwkJCWNvbnRpbnVlOworCisJCWlmIChkcm1HZXRE
ZXZpY2UyKGRybV9hbWRncHVbaV0sCisJCQkJCURSTV9ERVZJQ0VfR0VUX1BDSV9SRVZJU0lPTiwK
KwkJCQkJJmRldmljZSkpIHsKKwkJCWFtZGdwdV9kZXZpY2VfZGVpbml0aWFsaXplKGRldmljZV9o
YW5kbGUpOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAoZGV2aWNlLT5idXN0eXBlICE9IERS
TV9CVVNfUENJKSB7CisJCQlhbWRncHVfZGV2aWNlX2RlaW5pdGlhbGl6ZShkZXZpY2VfaGFuZGxl
KTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJY2FwYWJpbGl0eSA9IGFtZGdwdV9yYXNfbG9va3Vw
X2NhcGFiaWxpdHkoZGV2aWNlX2hhbmRsZSk7CisJCWlmIChjYXBhYmlsaXR5ID09IDApIHsKKwkJ
CWFtZGdwdV9kZXZpY2VfZGVpbml0aWFsaXplKGRldmljZV9oYW5kbGUpOworCQkJY29udGludWU7
CisKKwkJfQorCisJCWlkID0gYW1kZ3B1X3Jhc19sb29rdXBfaWQoZGV2aWNlKTsKKwkJaWYgKGlk
ID09IC0xKSB7CisJCQlhbWRncHVfZGV2aWNlX2RlaW5pdGlhbGl6ZShkZXZpY2VfaGFuZGxlKTsK
KwkJCWNvbnRpbnVlOworCQl9CisKKwkJdGVzdF9tYXNrID0gYW1kZ3B1X3Jhc19nZXRfdGVzdF9t
YXNrKGRldmljZSk7CisKKwkJZGV2aWNlc1tkZXZpY2VzX2NvdW50KytdID0gKHN0cnVjdCBhbWRn
cHVfcmFzX2RhdGEpIHsKKwkJCWRldmljZV9oYW5kbGUsIGlkLCBjYXBhYmlsaXR5LCB0ZXN0X21h
c2ssCisJCX07CisJfQorCisJaWYgKGRldmljZXNfY291bnQgPT0gMCkKKwkJcmV0dXJuIENVRV9T
SU5JVF9GQUlMRUQ7CisKKwlyZXR1cm4gQ1VFX1NVQ0NFU1M7Cit9CisKK2ludCBzdWl0ZV9yYXNf
dGVzdHNfY2xlYW4odm9pZCkKK3sKKwlpbnQgcjsKKwlpbnQgaTsKKwlpbnQgcmV0ID0gQ1VFX1NV
Q0NFU1M7CisKKwlmb3IgKGkgPSAwOyBpIDwgZGV2aWNlc19jb3VudDsgaSsrKSB7CisJCXIgPSBh
bWRncHVfZGV2aWNlX2RlaW5pdGlhbGl6ZShkZXZpY2VzW2ldLmRldmljZV9oYW5kbGUpOworCQlp
ZiAocikKKwkJCXJldCA9IENVRV9TQ0xFQU5fRkFJTEVEOworCX0KKwlyZXR1cm4gcmV0OworfQor
CitzdGF0aWMgdm9pZCBhbWRncHVfcmFzX2Rpc2FibGVfdGVzdCh2b2lkKTsKK3N0YXRpYyB2b2lk
IGFtZGdwdV9yYXNfZW5hYmxlX3Rlc3Qodm9pZCk7CitzdGF0aWMgdm9pZCBhbWRncHVfcmFzX2lu
amVjdF90ZXN0KHZvaWQpOworc3RhdGljIHZvaWQgYW1kZ3B1X3Jhc19xdWVyeV90ZXN0KHZvaWQp
Oworc3RhdGljIHZvaWQgYW1kZ3B1X3Jhc19iYXNpY190ZXN0KHZvaWQpOworCitDVV9UZXN0SW5m
byByYXNfdGVzdHNbXSA9IHsKKwl7ICJyYXMgYmFzaWMgdGVzdCIsCWFtZGdwdV9yYXNfYmFzaWNf
dGVzdCB9LAorCXsgInJhcyBxdWVyeSB0ZXN0IiwJYW1kZ3B1X3Jhc19xdWVyeV90ZXN0IH0sCisJ
eyAicmFzIGluamVjdCB0ZXN0IiwJYW1kZ3B1X3Jhc19pbmplY3RfdGVzdCB9LAorCXsgInJhcyBk
aXNhYmxlIHRlc3QiLAlhbWRncHVfcmFzX2Rpc2FibGVfdGVzdCB9LAorI2lmIDAKKwl7ICJyYXMg
ZW5hYmxlIHRlc3QiLAlhbWRncHVfcmFzX2VuYWJsZV90ZXN0IH0sCisjZW5kaWYKKwlDVV9URVNU
X0lORk9fTlVMTCwKK307CisKIC8vaGVscGVycwogCiBzdGF0aWMgaW50IHRlc3RfY2FyZDsKQEAg
LTUzMCw4ICs2NDgsMTAgQEAgc3RhdGljIGNoYXIgZGVidWdmc19wYXRoWzEwMjRdOwogc3RhdGlj
IHVpbnQzMl90IHJhc19tYXNrOwogc3RhdGljIGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9o
YW5kbGU7CiAKLXN0YXRpYyB2b2lkIHNldF90ZXN0X2NhcmQoaW50IGNhcmQpCitzdGF0aWMgaW50
IHNldF90ZXN0X2NhcmQoaW50IGNhcmQpCiB7CisJaW50IGk7CisKIAl0ZXN0X2NhcmQgPSBjYXJk
OwogCXNwcmludGYoc3lzZnNfcGF0aCwgIi9zeXMvY2xhc3MvZHJtL2NhcmQlZC9kZXZpY2UvcmFz
LyIsIGRldmljZXNbY2FyZF0uaWQpOwogCXNwcmludGYoZGVidWdmc19wYXRoLCAiL3N5cy9rZXJu
ZWwvZGVidWcvZHJpLyVkL3Jhcy8iLCBkZXZpY2VzW2NhcmRdLmlkKTsKQEAgLTU0MCw2ICs2NjAs
OCBAQCBzdGF0aWMgdm9pZCBzZXRfdGVzdF9jYXJkKGludCBjYXJkKQogCXJhc19ibG9ja19tYXNr
X2luamVjdCA9IGRldmljZXNbY2FyZF0udGVzdF9tYXNrLmluamVjdF9tYXNrOwogCXJhc19ibG9j
a19tYXNrX3F1ZXJ5ID0gZGV2aWNlc1tjYXJkXS50ZXN0X21hc2sucXVlcnlfbWFzazsKIAlyYXNf
YmxvY2tfbWFza19iYXNpYyA9IGRldmljZXNbY2FyZF0udGVzdF9tYXNrLmJhc2ljX21hc2s7CisK
KwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKmdldF9yYXNfc3lzZnNfcm9vdCh2
b2lkKQpAQCAtNjIwLDYgKzc0Miw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Jhc19xdWVyeV9lcnJf
Y291bnQoZW51bSBhbWRncHVfcmFzX2Jsb2NrIGJsb2NrLAogewogCWNoYXIgYnVmWzY0XTsKIAlj
aGFyIG5hbWVbMTAyNF07CisJaW50IHJldDsKIAogCSp1ZSA9ICpjZSA9IDA7CiAKQEAgLTY1Niw3
ICs3NzksNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9yYXNfaW5qZWN0KGVudW0gYW1kZ3B1X3Jhc19i
bG9jayBibG9jaywKIAlpbmplY3QtPmhlYWQuYmxvY2sgPSBibG9jazsKIAlpbmplY3QtPmhlYWQu
dHlwZSA9IHR5cGU7CiAJaW5qZWN0LT5oZWFkLnN1Yl9ibG9ja19pbmRleCA9IHN1Yl9ibG9jazsK
LQlzdHJuY3B5KGluamVjdC0+aGVhZC5uYW1lLCByYXNfYmxvY2tfc3RyKGJsb2NrKSwgc2l6ZW9m
KGluamVjdC0+aGVhZC5uYW1lKS0xKTsKKwlzdHJuY3B5KGluamVjdC0+aGVhZC5uYW1lLCByYXNf
YmxvY2tfc3RyKGJsb2NrKSwgMzIpOwogCWluamVjdC0+YWRkcmVzcyA9IGFkZHJlc3M7CiAJaW5q
ZWN0LT52YWx1ZSA9IHZhbHVlOwogCkBAIC04MzMsNiArOTU2LDggQEAgc3RhdGljIHZvaWQgYW1k
Z3B1X3Jhc19xdWVyeV90ZXN0KHZvaWQpCiAKIHN0YXRpYyB2b2lkIGFtZGdwdV9yYXNfYmFzaWNf
dGVzdCh2b2lkKQogeworCXVuc2lnbmVkIGxvbmcgdWUsIGNlOworCWNoYXIgbmFtZVsxMDI0XTsK
IAlpbnQgcmV0OwogCWludCBpOwogCWludCBqOwpAQCAtODc1LDExNSArMTAwMCwzIEBAIHN0YXRp
YyB2b2lkIGFtZGdwdV9yYXNfYmFzaWNfdGVzdCh2b2lkKQogCQl9CiAJfQogfQotCi1DVV9UZXN0
SW5mbyByYXNfdGVzdHNbXSA9IHsKLQl7ICJyYXMgYmFzaWMgdGVzdCIsCWFtZGdwdV9yYXNfYmFz
aWNfdGVzdCB9LAotCXsgInJhcyBxdWVyeSB0ZXN0IiwJYW1kZ3B1X3Jhc19xdWVyeV90ZXN0IH0s
Ci0JeyAicmFzIGluamVjdCB0ZXN0IiwJYW1kZ3B1X3Jhc19pbmplY3RfdGVzdCB9LAotCXsgInJh
cyBkaXNhYmxlIHRlc3QiLAlhbWRncHVfcmFzX2Rpc2FibGVfdGVzdCB9LAotI2lmIDAKLQl7ICJy
YXMgZW5hYmxlIHRlc3QiLAlhbWRncHVfcmFzX2VuYWJsZV90ZXN0IH0sCi0jZW5kaWYKLQlDVV9U
RVNUX0lORk9fTlVMTCwKLX07Ci0KLUNVX0JPT0wgc3VpdGVfcmFzX3Rlc3RzX2VuYWJsZSh2b2lk
KQotewotCWFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9oYW5kbGU7Ci0JdWludDMyX3QgIG1h
am9yX3ZlcnNpb247Ci0JdWludDMyX3QgIG1pbm9yX3ZlcnNpb247Ci0JaW50IGk7Ci0JZHJtRGV2
aWNlUHRyIGRldmljZTsKLQotCWZvciAoaSA9IDA7IGkgPCBNQVhfQ0FSRFNfU1VQUE9SVEVEICYm
IGRybV9hbWRncHVbaV0gPj0gMDsgaSsrKSB7Ci0JCWlmIChhbWRncHVfZGV2aWNlX2luaXRpYWxp
emUoZHJtX2FtZGdwdVtpXSwgJm1ham9yX3ZlcnNpb24sCi0JCQkJCSZtaW5vcl92ZXJzaW9uLCAm
ZGV2aWNlX2hhbmRsZSkpCi0JCQljb250aW51ZTsKLQotCQlpZiAoZHJtR2V0RGV2aWNlMihkcm1f
YW1kZ3B1W2ldLAotCQkJCQlEUk1fREVWSUNFX0dFVF9QQ0lfUkVWSVNJT04sCi0JCQkJCSZkZXZp
Y2UpKQotCQkJY29udGludWU7Ci0KLQkJaWYgKGRldmljZS0+YnVzdHlwZSA9PSBEUk1fQlVTX1BD
SSAmJgotCQkJCWFtZGdwdV9yYXNfbG9va3VwX2NhcGFiaWxpdHkoZGV2aWNlX2hhbmRsZSkpIHsK
LQkJCWFtZGdwdV9kZXZpY2VfZGVpbml0aWFsaXplKGRldmljZV9oYW5kbGUpOwotCQkJcmV0dXJu
IENVX1RSVUU7Ci0JCX0KLQotCQlpZiAoYW1kZ3B1X2RldmljZV9kZWluaXRpYWxpemUoZGV2aWNl
X2hhbmRsZSkpCi0JCQljb250aW51ZTsKLQl9Ci0KLQlyZXR1cm4gQ1VfRkFMU0U7Ci19Ci0KLWlu
dCBzdWl0ZV9yYXNfdGVzdHNfaW5pdCh2b2lkKQotewotCWRybURldmljZVB0ciBkZXZpY2U7Ci0J
YW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZTsKLQl1aW50MzJfdCAgbWFqb3JfdmVy
c2lvbjsKLQl1aW50MzJfdCAgbWlub3JfdmVyc2lvbjsKLQl1aW50MzJfdCAgY2FwYWJpbGl0eTsK
LQlzdHJ1Y3QgcmFzX3Rlc3RfbWFzayB0ZXN0X21hc2s7Ci0JaW50IGlkOwotCWludCBpOwotCWlu
dCByOwotCi0JZm9yIChpID0gMDsgaSA8IE1BWF9DQVJEU19TVVBQT1JURUQgJiYgZHJtX2FtZGdw
dVtpXSA+PSAwOyBpKyspIHsKLQkJciA9IGFtZGdwdV9kZXZpY2VfaW5pdGlhbGl6ZShkcm1fYW1k
Z3B1W2ldLCAmbWFqb3JfdmVyc2lvbiwKLQkJCQkmbWlub3JfdmVyc2lvbiwgJmRldmljZV9oYW5k
bGUpOwotCQlpZiAocikKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChkcm1HZXREZXZpY2UyKGRybV9h
bWRncHVbaV0sCi0JCQkJCURSTV9ERVZJQ0VfR0VUX1BDSV9SRVZJU0lPTiwKLQkJCQkJJmRldmlj
ZSkpIHsKLQkJCWFtZGdwdV9kZXZpY2VfZGVpbml0aWFsaXplKGRldmljZV9oYW5kbGUpOwotCQkJ
Y29udGludWU7Ci0JCX0KLQotCQlpZiAoZGV2aWNlLT5idXN0eXBlICE9IERSTV9CVVNfUENJKSB7
Ci0JCQlhbWRncHVfZGV2aWNlX2RlaW5pdGlhbGl6ZShkZXZpY2VfaGFuZGxlKTsKLQkJCWNvbnRp
bnVlOwotCQl9Ci0KLQkJY2FwYWJpbGl0eSA9IGFtZGdwdV9yYXNfbG9va3VwX2NhcGFiaWxpdHko
ZGV2aWNlX2hhbmRsZSk7Ci0JCWlmIChjYXBhYmlsaXR5ID09IDApIHsKLQkJCWFtZGdwdV9kZXZp
Y2VfZGVpbml0aWFsaXplKGRldmljZV9oYW5kbGUpOwotCQkJY29udGludWU7Ci0KLQkJfQotCi0J
CWlkID0gYW1kZ3B1X3Jhc19sb29rdXBfaWQoZGV2aWNlKTsKLQkJaWYgKGlkID09IC0xKSB7Ci0J
CQlhbWRncHVfZGV2aWNlX2RlaW5pdGlhbGl6ZShkZXZpY2VfaGFuZGxlKTsKLQkJCWNvbnRpbnVl
OwotCQl9Ci0KLQkJdGVzdF9tYXNrID0gYW1kZ3B1X3Jhc19nZXRfdGVzdF9tYXNrKGRldmljZSk7
Ci0KLQkJZGV2aWNlc1tkZXZpY2VzX2NvdW50KytdID0gKHN0cnVjdCBhbWRncHVfcmFzX2RhdGEp
IHsKLQkJCWRldmljZV9oYW5kbGUsIGlkLCBjYXBhYmlsaXR5LCB0ZXN0X21hc2ssCi0JCX07Ci0J
fQotCi0JaWYgKGRldmljZXNfY291bnQgPT0gMCkKLQkJcmV0dXJuIENVRV9TSU5JVF9GQUlMRUQ7
Ci0KLQlyZXR1cm4gQ1VFX1NVQ0NFU1M7Ci19Ci0KLWludCBzdWl0ZV9yYXNfdGVzdHNfY2xlYW4o
dm9pZCkKLXsKLQlpbnQgcjsKLQlpbnQgaTsKLQlpbnQgcmV0ID0gQ1VFX1NVQ0NFU1M7Ci0KLQlm
b3IgKGkgPSAwOyBpIDwgZGV2aWNlc19jb3VudDsgaSsrKSB7Ci0JCXIgPSBhbWRncHVfZGV2aWNl
X2RlaW5pdGlhbGl6ZShkZXZpY2VzW2ldLmRldmljZV9oYW5kbGUpOwotCQlpZiAocikKLQkJCXJl
dCA9IENVRV9TQ0xFQU5fRkFJTEVEOwotCX0KLQlyZXR1cm4gcmV0OwotfQpkaWZmIC0tZ2l0IGEv
dGVzdHMvYW1kZ3B1L3N5bmNvYmpfdGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9zeW5jb2JqX3Rlc3Rz
LmMKaW5kZXggM2E3YjM4ZWIuLjg2OWVkODhlIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvc3lu
Y29ial90ZXN0cy5jCisrKyBiL3Rlc3RzL2FtZGdwdS9zeW5jb2JqX3Rlc3RzLmMKQEAgLTk2LDcg
Kzk2LDcgQEAgc3RhdGljIGludCBzeW5jb2JqX2NvbW1hbmRfc3VibWlzc2lvbl9oZWxwZXIodWlu
dDMyX3Qgc3luY29ial9oYW5kbGUsIGJvb2wKIAlzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNlIGZlbmNl
X3N0YXR1czsKIAlhbWRncHVfYm9fbGlzdF9oYW5kbGUgYm9fbGlzdDsKIAlhbWRncHVfdmFfaGFu
ZGxlIHZhX2hhbmRsZTsKLQl1aW50MzJfdCBleHBpcmVkOworCXVpbnQzMl90IGV4cGlyZWQsIGZs
YWdzOwogCWludCBpLCByOwogCXVpbnQ2NF90IHNlcV9ubzsKIAlzdGF0aWMgdWludDMyX3QgKnB0
cjsKY29tbWl0IDU0Yjk4MmRjNmEyM2QxZDQ2MmIwYjgyZmM4OTFkZjYxNTM5MThhMTkKQXV0aG9y
OiBNYXJlayBPbMWhw6FrIDxtYXJlay5vbHNha0BhbWQuY29tPgpEYXRlOiAgIFR1ZSBKYW4gNyAx
NDo0NDozMSAyMDIwIC0wNTAwCgogICAgUmV2ZXJ0ICJ0ZXN0cy9hbWRncHU6IEZpeCB1bnVzZWQg
ZnVuY3Rpb24gd2FybmluZyAodjIpIgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDRmZjQ5
OWNkODVmODZhN2I1YjI4ZjM0NDlkZTJmYmFkMWI5MWM3OTUuCgpkaWZmIC0tZ2l0IGEvdGVzdHMv
YW1kZ3B1L3Jhc190ZXN0cy5jIGIvdGVzdHMvYW1kZ3B1L3Jhc190ZXN0cy5jCmluZGV4IGY3NDUx
NjZiLi5kNzE0YmU3MyAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L3Jhc190ZXN0cy5jCisrKyBi
L3Rlc3RzL2FtZGdwdS9yYXNfdGVzdHMuYwpAQCAtODgxLDcgKzg4MSw5IEBAIENVX1Rlc3RJbmZv
IHJhc190ZXN0c1tdID0gewogCXsgInJhcyBxdWVyeSB0ZXN0IiwJYW1kZ3B1X3Jhc19xdWVyeV90
ZXN0IH0sCiAJeyAicmFzIGluamVjdCB0ZXN0IiwJYW1kZ3B1X3Jhc19pbmplY3RfdGVzdCB9LAog
CXsgInJhcyBkaXNhYmxlIHRlc3QiLAlhbWRncHVfcmFzX2Rpc2FibGVfdGVzdCB9LAorI2lmIDAK
IAl7ICJyYXMgZW5hYmxlIHRlc3QiLAlhbWRncHVfcmFzX2VuYWJsZV90ZXN0IH0sCisjZW5kaWYK
IAlDVV9URVNUX0lORk9fTlVMTCwKIH07CiAKY29tbWl0IGI5NjAwYmUyMDdmYTFkMzJlNGJkNGYw
MzI0ODRjZDQwZDE3N2MzNzgKQXV0aG9yOiBNYXJlayBPbMWhw6FrIDxtYXJlay5vbHNha0BhbWQu
Y29tPgpEYXRlOiAgIFR1ZSBKYW4gNyAxNDo0NDoyNyAyMDIwIC0wNTAwCgogICAgUmV2ZXJ0ICJ0
ZXN0cy9hbWRncHU6IEZpeCBidWZmZXIgb3ZlcmZsb3cgKHYzKSIKICAgIAogICAgVGhpcyByZXZl
cnRzIGNvbW1pdCA2ODA1NDJjZTA4NmY1ZDBiYTcwMzMxZjhkMzUwZWRmYWUyMGM1MzRmLgoKZGlm
ZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9yYXNfdGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9yYXNfdGVz
dHMuYwppbmRleCA4MTBiZjE3Mi4uZjc0NTE2NmIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9y
YXNfdGVzdHMuYworKysgYi90ZXN0cy9hbWRncHUvcmFzX3Rlc3RzLmMKQEAgLTMwLDkgKzMwLDYg
QEAKICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSAieGY4
NmRybS5oIgotI2luY2x1ZGUgPGxpbWl0cy5oPgotCi0jZGVmaW5lIFBBVEhfU0laRSBQQVRIX01B
WAogCiAjZGVmaW5lIEFSUkFZX1NJWkUoYSkgKHNpemVvZihhKSAvIHNpemVvZigoYSlbMF0pKQog
CkBAIC01MDEsNyArNDk4LDcgQEAgc3RhdGljIGludCBnZXRfZmlsZV9jb250ZW50cyhjaGFyICpm
aWxlLCBjaGFyICpidWYsIGludCBzaXplKTsKIAogc3RhdGljIGludCBhbWRncHVfcmFzX2xvb2t1
cF9pZChkcm1EZXZpY2VQdHIgZGV2aWNlKQogewotCWNoYXIgcGF0aFtQQVRIX1NJWkVdOworCWNo
YXIgcGF0aFsxMDI0XTsKIAljaGFyIHN0clsxMjhdOwogCWRybVBjaUJ1c0luZm8gaW5mbzsKIAlp
bnQgaTsKQEAgLTUxMCw3ICs1MDcsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9yYXNfbG9va3VwX2lk
KGRybURldmljZVB0ciBkZXZpY2UpCiAJZm9yIChpID0gMDsgaSA8IE1BWF9DQVJEU19TVVBQT1JU
RUQ7IGkrKykgewogCQltZW1zZXQoc3RyLCAwLCBzaXplb2Yoc3RyKSk7CiAJCW1lbXNldCgmaW5m
bywgMCwgc2l6ZW9mKGluZm8pKTsKLQkJc25wcmludGYocGF0aCwgUEFUSF9TSVpFLCAiL3N5cy9r
ZXJuZWwvZGVidWcvZHJpLyVkL25hbWUiLCBpKTsKKwkJc3ByaW50ZihwYXRoLCAiL3N5cy9rZXJu
ZWwvZGVidWcvZHJpLyVkL25hbWUiLCBpKTsKIAkJaWYgKGdldF9maWxlX2NvbnRlbnRzKHBhdGgs
IHN0ciwgc2l6ZW9mKHN0cikpIDw9IDApCiAJCQljb250aW51ZTsKIApAQCAtNTI4LDE2ICs1MjUs
MTYgQEAgc3RhdGljIGludCBhbWRncHVfcmFzX2xvb2t1cF9pZChkcm1EZXZpY2VQdHIgZGV2aWNl
KQogLy9oZWxwZXJzCiAKIHN0YXRpYyBpbnQgdGVzdF9jYXJkOwotc3RhdGljIGNoYXIgc3lzZnNf
cGF0aFtQQVRIX1NJWkVdOwotc3RhdGljIGNoYXIgZGVidWdmc19wYXRoW1BBVEhfU0laRV07Citz
dGF0aWMgY2hhciBzeXNmc19wYXRoWzEwMjRdOworc3RhdGljIGNoYXIgZGVidWdmc19wYXRoWzEw
MjRdOwogc3RhdGljIHVpbnQzMl90IHJhc19tYXNrOwogc3RhdGljIGFtZGdwdV9kZXZpY2VfaGFu
ZGxlIGRldmljZV9oYW5kbGU7CiAKIHN0YXRpYyB2b2lkIHNldF90ZXN0X2NhcmQoaW50IGNhcmQp
CiB7CiAJdGVzdF9jYXJkID0gY2FyZDsKLQlzbnByaW50ZihzeXNmc19wYXRoLCBQQVRIX1NJWkUs
ICIvc3lzL2NsYXNzL2RybS9jYXJkJWQvZGV2aWNlL3Jhcy8iLCBkZXZpY2VzW2NhcmRdLmlkKTsK
LQlzbnByaW50ZihkZWJ1Z2ZzX3BhdGgsIFBBVEhfU0laRSwgICIvc3lzL2tlcm5lbC9kZWJ1Zy9k
cmkvJWQvcmFzLyIsIGRldmljZXNbY2FyZF0uaWQpOworCXNwcmludGYoc3lzZnNfcGF0aCwgIi9z
eXMvY2xhc3MvZHJtL2NhcmQlZC9kZXZpY2UvcmFzLyIsIGRldmljZXNbY2FyZF0uaWQpOworCXNw
cmludGYoZGVidWdmc19wYXRoLCAiL3N5cy9rZXJuZWwvZGVidWcvZHJpLyVkL3Jhcy8iLCBkZXZp
Y2VzW2NhcmRdLmlkKTsKIAlyYXNfbWFzayA9IGRldmljZXNbY2FyZF0uY2FwYWJpbGl0eTsKIAlk
ZXZpY2VfaGFuZGxlID0gZGV2aWNlc1tjYXJkXS5kZXZpY2VfaGFuZGxlOwogCXJhc19ibG9ja19t
YXNrX2luamVjdCA9IGRldmljZXNbY2FyZF0udGVzdF9tYXNrLmluamVjdF9tYXNrOwpAQCAtNjA4
LDExICs2MDUsMTAgQEAgc3RhdGljIGludCBhbWRncHVfcmFzX2lzX2ZlYXR1cmVfc3VwcG9ydGVk
KGVudW0gYW1kZ3B1X3Jhc19ibG9jayBibG9jaykKIAogc3RhdGljIGludCBhbWRncHVfcmFzX2lu
dm9rZShzdHJ1Y3QgcmFzX2RlYnVnX2lmICpkYXRhKQogewotCWNoYXIgcGF0aFtQQVRIX1NJWkVd
OworCWNoYXIgcGF0aFsxMDI0XTsKIAlpbnQgcmV0OwogCi0Jc25wcmludGYocGF0aCwgc2l6ZW9m
KHBhdGgpLCAiJXMiLCBnZXRfcmFzX2RlYnVnZnNfcm9vdCgpKTsKLQlzdHJuY2F0KHBhdGgsICJy
YXNfY3RybCIsIHNpemVvZihwYXRoKSAtIHN0cmxlbihwYXRoKSk7CisJc3ByaW50ZihwYXRoLCAi
JXMlcyIsIGdldF9yYXNfZGVidWdmc19yb290KCksICJyYXNfY3RybCIpOwogCiAJcmV0ID0gc2V0
X2ZpbGVfY29udGVudHMocGF0aCwgKGNoYXIgKilkYXRhLCBzaXplb2YoKmRhdGEpKQogCQktIHNp
emVvZigqZGF0YSk7CkBAIC02MjMsMTYgKzYxOSwxNCBAQCBzdGF0aWMgaW50IGFtZGdwdV9yYXNf
cXVlcnlfZXJyX2NvdW50KGVudW0gYW1kZ3B1X3Jhc19ibG9jayBibG9jaywKIAkJdW5zaWduZWQg
bG9uZyAqdWUsIHVuc2lnbmVkIGxvbmcgKmNlKQogewogCWNoYXIgYnVmWzY0XTsKLQljaGFyIG5h
bWVbUEFUSF9TSVpFXTsKKwljaGFyIG5hbWVbMTAyNF07CiAKIAkqdWUgPSAqY2UgPSAwOwogCiAJ
aWYgKGFtZGdwdV9yYXNfaXNfZmVhdHVyZV9zdXBwb3J0ZWQoYmxvY2spIDw9IDApCiAJCXJldHVy
biAtMTsKIAotCXNucHJpbnRmKG5hbWUsIHNpemVvZihuYW1lKSwgIiVzIiwgZ2V0X3Jhc19zeXNm
c19yb290KCkpOwotCXN0cm5jYXQobmFtZSwgcmFzX2Jsb2NrX3N0cihibG9jayksIHNpemVvZihu
YW1lKSAtIHN0cmxlbihuYW1lKSk7Ci0Jc3RybmNhdChuYW1lLCAiX2Vycl9jb3VudCIsIHNpemVv
ZihuYW1lKSAtIHN0cmxlbihuYW1lKSk7CisJc3ByaW50ZihuYW1lLCAiJXMlcyVzIiwgZ2V0X3Jh
c19zeXNmc19yb290KCksIHJhc19ibG9ja19zdHIoYmxvY2spLCAiX2Vycl9jb3VudCIpOwogCiAJ
aWYgKGlzX2ZpbGVfb2sobmFtZSwgT19SRE9OTFkpKQogCQlyZXR1cm4gMDsKQEAgLTg0Myw3ICs4
MzcsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfcmFzX2Jhc2ljX3Rlc3Qodm9pZCkKIAlpbnQgaTsK
IAlpbnQgajsKIAl1aW50MzJfdCBmZWF0dXJlczsKLQljaGFyIHBhdGhbUEFUSF9TSVpFXTsKKwlj
aGFyIHBhdGhbMTAyNF07CiAKIAlyZXQgPSBpc19maWxlX29rKCIvc3lzL21vZHVsZS9hbWRncHUv
cGFyYW1ldGVycy9yYXNfbWFzayIsIE9fUkRPTkxZKTsKIAlDVV9BU1NFUlRfRVFVQUwocmV0LCAw
KTsKQEAgLTg1NSwxNSArODQ5LDExIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9yYXNfYmFzaWNfdGVz
dCh2b2lkKQogCQkJCXNpemVvZihmZWF0dXJlcyksICZmZWF0dXJlcyk7CiAJCUNVX0FTU0VSVF9F
UVVBTChyZXQsIDApOwogCi0JCXNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIiVzIiwgZ2V0
X3Jhc19kZWJ1Z2ZzX3Jvb3QoKSk7Ci0JCXN0cm5jYXQocGF0aCwgInJhc19jdHJsIiwgc2l6ZW9m
KHBhdGgpIC0gc3RybGVuKHBhdGgpKTsKLQorCQlzcHJpbnRmKHBhdGgsICIlcyVzIiwgZ2V0X3Jh
c19kZWJ1Z2ZzX3Jvb3QoKSwgInJhc19jdHJsIik7CiAJCXJldCA9IGlzX2ZpbGVfb2socGF0aCwg
T19XUk9OTFkpOwogCQlDVV9BU1NFUlRfRVFVQUwocmV0LCAwKTsKIAotCQlzbnByaW50ZihwYXRo
LCBzaXplb2YocGF0aCksICIlcyIsIGdldF9yYXNfc3lzZnNfcm9vdCgpKTsKLQkJc3RybmNhdChw
YXRoLCAiZmVhdHVyZXMiLCBzaXplb2YocGF0aCkgLSBzdHJsZW4ocGF0aCkpOwotCisJCXNwcmlu
dGYocGF0aCwgIiVzJXMiLCBnZXRfcmFzX3N5c2ZzX3Jvb3QoKSwgImZlYXR1cmVzIik7CiAJCXJl
dCA9IGlzX2ZpbGVfb2socGF0aCwgT19SRE9OTFkpOwogCQlDVV9BU1NFUlRfRVFVQUwocmV0LCAw
KTsKIApAQCAtODc1LDE3ICs4NjUsMTEgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3Jhc19iYXNpY190
ZXN0KHZvaWQpCiAJCQlpZiAoISgoMSA8PCBqKSAmIHJhc19ibG9ja19tYXNrX2Jhc2ljKSkKIAkJ
CQljb250aW51ZTsKIAotCQkJc25wcmludGYocGF0aCwgc2l6ZW9mKHBhdGgpLCAiJXMiLCBnZXRf
cmFzX3N5c2ZzX3Jvb3QoKSk7Ci0JCQlzdHJuY2F0KHBhdGgsIHJhc19ibG9ja19zdHIoaiksIHNp
emVvZihwYXRoKSAtICBzdHJsZW4ocGF0aCkpOwotCQkJc3RybmNhdChwYXRoLCAiX2Vycl9jb3Vu
dCIsIHNpemVvZihwYXRoKSAtIHN0cmxlbihwYXRoKSk7Ci0KKwkJCXNwcmludGYocGF0aCwgIiVz
JXMlcyIsIGdldF9yYXNfc3lzZnNfcm9vdCgpLCByYXNfYmxvY2tfc3RyKGopLCAiX2Vycl9jb3Vu
dCIpOwogCQkJcmV0ID0gaXNfZmlsZV9vayhwYXRoLCBPX1JET05MWSk7CiAJCQlDVV9BU1NFUlRf
RVFVQUwocmV0LCAwKTsKIAotCQkJc25wcmludGYocGF0aCwgc2l6ZW9mKHBhdGgpLCAiJXMiLCBn
ZXRfcmFzX2RlYnVnZnNfcm9vdCgpKTsKLQkJCXN0cm5jYXQocGF0aCwgcmFzX2Jsb2NrX3N0cihq
KSwgc2l6ZW9mKHBhdGgpIC0gc3RybGVuKHBhdGgpKTsKLQkJCXN0cm5jYXQocGF0aCwgIl9lcnJf
aW5qZWN0Iiwgc2l6ZW9mKHBhdGgpIC0gc3RybGVuKHBhdGgpKTsKLQorCQkJc3ByaW50ZihwYXRo
LCAiJXMlcyVzIiwgZ2V0X3Jhc19kZWJ1Z2ZzX3Jvb3QoKSwgcmFzX2Jsb2NrX3N0cihqKSwgIl9l
cnJfaW5qZWN0Iik7CiAJCQlyZXQgPSBpc19maWxlX29rKHBhdGgsIE9fV1JPTkxZKTsKIAkJCUNV
X0FTU0VSVF9FUVVBTChyZXQsIDApOwogCQl9CgoKLS0KX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KRHJpLXBhdGNoZXMgbWFpbGluZyBsaXN0CkRyaS1wYXRj
aGVzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9s
aXN0cy9saXN0aW5mby9kcmktcGF0Y2hlcwo=