From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH libdrm v3 3/5] xf86drm: Add platform and host1x bus support Date: Wed, 18 Jan 2017 10:02:07 +0100 Message-ID: <20170118090209.13819-4-thierry.reding@gmail.com> References: <20170118090209.13819-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170118090209.13819-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: xorg-devel-bounces-go0+a7rfsptAfugRpC6u6w@public.gmane.org Sender: "xorg-devel" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: xorg-devel-go0+a7rfsptAfugRpC6u6w@public.gmane.org, Emil Velikov List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkFSTSBTb0NzIHVzdWFs bHkgaGF2ZSB0aGVpciBEUk0vS01TIGRldmljZXMgb24gdGhlIHBsYXRmb3JtIGJ1cywgc28gYWRk CnN1cHBvcnQgZm9yIHRoYXQgdG8gZW5hYmxlIHRoZXNlIGRldmljZXMgdG8gYmUgdXNlZCB3aXRo IHRoZSBkcm1EZXZpY2UKaW5mcmFzdHJ1Y3R1cmUuCgpOVklESUEgVGVncmEgU29DcyBoYXZlIGFu IGFkZGl0aW9uYWwgbGV2ZWwgaW4gdGhlIGhpZXJhcmNoeSBhbmQgRFJNL0tNUwpkZXZpY2VzIGNh biBhbHNvIGJlIG9uIHRoZSBob3N0MXggYnVzLiBUaGlzIGlzIG1vc3RseSBlcXVpdmFsZW50IHRv IHRoZQpwbGF0Zm9ybSBidXMuCgp2MzoKLSBndWFyZCBMaW51eC1zcGVjaWZpYyBzeXNmcyBwYXJz aW5nIGNvZGUgd2l0aCAjaWZkZWYgX19saW51eF9fCgp2MjoKLSBiZSBjYXJlZnVsIG5vdCB0byBv dmVyZmxvdyB0aGUgZnVsbCBuYW1lCi0gcmVhZCBjb21wYXRpYmxlIHN0cmluZ3MgaW50byBkZXZp Y2UgaW5mbwoKU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNv bT4KLS0tCiB4Zjg2ZHJtLmMgfCAzMDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhmODZkcm0uaCB8ICAzMCArKysrKystCiAy IGZpbGVzIGNoYW5nZWQsIDMyOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3hmODZkcm0uYyBiL3hmODZkcm0uYwppbmRleCBkODM2NzRlNjM4YzQuLjNjNmVjMWNj OWUwMCAxMDA2NDQKLS0tIGEveGY4NmRybS5jCisrKyBiL3hmODZkcm0uYwpAQCAtMjk1Myw2ICsy OTUzLDEyIEBAIHN0YXRpYyBpbnQgZHJtUGFyc2VTdWJzeXN0ZW1UeXBlKGludCBtYWosIGludCBt aW4pCiAgICAgaWYgKHN0cm5jbXAobmFtZSwgIi91c2IiLCA0KSA9PSAwKQogICAgICAgICByZXR1 cm4gRFJNX0JVU19VU0I7CiAKKyAgICBpZiAoc3RybmNtcChuYW1lLCAiL3BsYXRmb3JtIiwgOSkg PT0gMCkKKyAgICAgICAgcmV0dXJuIERSTV9CVVNfUExBVEZPUk07CisKKyAgICBpZiAoc3RybmNt cChuYW1lLCAiL2hvc3QxeCIsIDcpID09IDApCisgICAgICAgIHJldHVybiBEUk1fQlVTX0hPU1Qx WDsKKwogICAgIHJldHVybiAtRUlOVkFMOwogI2VsaWYgZGVmaW5lZChfX09wZW5CU0RfXykKICAg ICByZXR1cm4gRFJNX0JVU19QQ0k7CkBAIC0zMDQzLDYgKzMwNDksMTIgQEAgc3RhdGljIGludCBk cm1Db21wYXJlQnVzSW5mbyhkcm1EZXZpY2VQdHIgYSwgZHJtRGV2aWNlUHRyIGIpCiAgICAgY2Fz ZSBEUk1fQlVTX1VTQjoKICAgICAgICAgcmV0dXJuIG1lbWNtcChhLT5idXNpbmZvLnVzYiwgYi0+ YnVzaW5mby51c2IsIHNpemVvZihkcm1Vc2JCdXNJbmZvKSk7CiAKKyAgICBjYXNlIERSTV9CVVNf UExBVEZPUk06CisgICAgICAgIHJldHVybiBtZW1jbXAoYS0+YnVzaW5mby5wbGF0Zm9ybSwgYi0+ YnVzaW5mby5wbGF0Zm9ybSwgc2l6ZW9mKGRybVBsYXRmb3JtQnVzSW5mbykpOworCisgICAgY2Fz ZSBEUk1fQlVTX0hPU1QxWDoKKyAgICAgICAgcmV0dXJuIG1lbWNtcChhLT5idXNpbmZvLmhvc3Qx eCwgYi0+YnVzaW5mby5ob3N0MXgsIHNpemVvZihkcm1Ib3N0MXhCdXNJbmZvKSk7CisKICAgICBk ZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CkBAIC0zMTg3LDExICszMTk5LDU1IEBAIHN0 YXRpYyBpbnQgZHJtUGFyc2VQY2lEZXZpY2VJbmZvKGludCBtYWosIGludCBtaW4sCiAjZW5kaWYK IH0KIAorc3RhdGljIHZvaWQgZHJtRnJlZVBsYXRmb3JtRGV2aWNlKGRybURldmljZVB0ciBkZXZp Y2UpCit7CisgICAgaWYgKGRldmljZS0+ZGV2aWNlaW5mby5wbGF0Zm9ybSkgeworICAgICAgICBp ZiAoZGV2aWNlLT5kZXZpY2VpbmZvLnBsYXRmb3JtLT5jb21wYXRpYmxlKSB7CisgICAgICAgICAg ICBjaGFyICoqY29tcGF0aWJsZSA9IGRldmljZS0+ZGV2aWNlaW5mby5wbGF0Zm9ybS0+Y29tcGF0 aWJsZTsKKworICAgICAgICAgICAgd2hpbGUgKCpjb21wYXRpYmxlKSB7CisgICAgICAgICAgICAg ICAgZnJlZSgqY29tcGF0aWJsZSk7CisgICAgICAgICAgICAgICAgY29tcGF0aWJsZSsrOworICAg ICAgICAgICAgfQorCisgICAgICAgICAgICBmcmVlKGRldmljZS0+ZGV2aWNlaW5mby5wbGF0Zm9y bS0+Y29tcGF0aWJsZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGRybUZy ZWVIb3N0MXhEZXZpY2UoZHJtRGV2aWNlUHRyIGRldmljZSkKK3sKKyAgICBpZiAoZGV2aWNlLT5k ZXZpY2VpbmZvLmhvc3QxeCkgeworICAgICAgICBpZiAoZGV2aWNlLT5kZXZpY2VpbmZvLmhvc3Qx eC0+Y29tcGF0aWJsZSkgeworICAgICAgICAgICAgY2hhciAqKmNvbXBhdGlibGUgPSBkZXZpY2Ut PmRldmljZWluZm8uaG9zdDF4LT5jb21wYXRpYmxlOworCisgICAgICAgICAgICB3aGlsZSAoKmNv bXBhdGlibGUpIHsKKyAgICAgICAgICAgICAgICBmcmVlKCpjb21wYXRpYmxlKTsKKyAgICAgICAg ICAgICAgICBjb21wYXRpYmxlKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWUo ZGV2aWNlLT5kZXZpY2VpbmZvLmhvc3QxeC0+Y29tcGF0aWJsZSk7CisgICAgICAgIH0KKyAgICB9 Cit9CisKIHZvaWQgZHJtRnJlZURldmljZShkcm1EZXZpY2VQdHIgKmRldmljZSkKIHsKICAgICBp ZiAoZGV2aWNlID09IE5VTEwpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICgqZGV2aWNlKSB7 CisgICAgICAgIHN3aXRjaCAoKCpkZXZpY2UpLT5idXN0eXBlKSB7CisgICAgICAgIGNhc2UgRFJN X0JVU19QTEFURk9STToKKyAgICAgICAgICAgIGRybUZyZWVQbGF0Zm9ybURldmljZSgqZGV2aWNl KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRFJNX0JVU19IT1NUMVg6Cisg ICAgICAgICAgICBkcm1GcmVlSG9zdDF4RGV2aWNlKCpkZXZpY2UpOworICAgICAgICAgICAgYnJl YWs7CisgICAgICAgIH0KKyAgICB9CisKICAgICBmcmVlKCpkZXZpY2UpOwogICAgICpkZXZpY2Ug PSBOVUxMOwogfQpAQCAtMzM5Myw2ICszNDQ5LDIyMCBAQCBmcmVlX2RldmljZToKICAgICByZXR1 cm4gcmV0OwogfQogCitzdGF0aWMgaW50IGRybVBhcnNlUGxhdGZvcm1CdXNJbmZvKGludCBtYWos IGludCBtaW4sIGRybVBsYXRmb3JtQnVzSW5mb1B0ciBpbmZvKQoreworI2lmZGVmIF9fbGludXhf XworICAgIGNoYXIgcGF0aFtQQVRIX01BWCArIDFdLCAqbmFtZTsKKworICAgIHNucHJpbnRmKHBh dGgsIHNpemVvZihwYXRoKSwgIi9zeXMvZGV2L2NoYXIvJWQ6JWQvZGV2aWNlIiwgbWFqLCBtaW4p OworCisgICAgbmFtZSA9IHN5c2ZzX3VldmVudF9nZXQocGF0aCwgIk9GX0ZVTExOQU1FIik7Cisg ICAgaWYgKCFuYW1lKQorICAgICAgICByZXR1cm4gLUVOT0VOVDsKKworICAgIHN0cm5jcHkoaW5m by0+ZnVsbG5hbWUsIG5hbWUsIERSTV9QTEFURk9STV9ERVZJQ0VfTkFNRV9MRU4pOworICAgIGlu Zm8tPmZ1bGxuYW1lW0RSTV9QTEFURk9STV9ERVZJQ0VfTkFNRV9MRU4gLSAxXSA9ICdcMCc7Cisg ICAgZnJlZShuYW1lKTsKKworICAgIHJldHVybiAwOworI2Vsc2UKKyN3YXJuaW5nICJNaXNzaW5n IGltcGxlbWVudGF0aW9uIG9mIGRybVBhcnNlUGxhdGZvcm1CdXNJbmZvIgorICAgIHJldHVybiAt RUlOVkFMOworI2VuZGlmCit9CisKK3N0YXRpYyBpbnQgZHJtUGFyc2VQbGF0Zm9ybURldmljZUlu Zm8oaW50IG1haiwgaW50IG1pbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZHJtUGxhdGZvcm1EZXZpY2VJbmZvUHRyIGluZm8pCit7CisjaWZkZWYgX19saW51eF9fCisg ICAgY2hhciBwYXRoW1BBVEhfTUFYICsgMV0sICp2YWx1ZTsKKyAgICB1bnNpZ25lZCBpbnQgY291 bnQsIGk7CisgICAgaW50IGVycjsKKworICAgIHNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwg Ii9zeXMvZGV2L2NoYXIvJWQ6JWQvZGV2aWNlIiwgbWFqLCBtaW4pOworCisgICAgdmFsdWUgPSBz eXNmc191ZXZlbnRfZ2V0KHBhdGgsICJPRl9DT01QQVRJQkxFX04iKTsKKyAgICBpZiAoIXZhbHVl KQorICAgICAgICByZXR1cm4gLUVOT0VOVDsKKworICAgIHNzY2FuZih2YWx1ZSwgIiV1IiwgJmNv dW50KTsKKyAgICBmcmVlKHZhbHVlKTsKKworICAgIGluZm8tPmNvbXBhdGlibGUgPSBjYWxsb2Mo Y291bnQgKyAxLCBzaXplb2YoKmluZm8tPmNvbXBhdGlibGUpKTsKKyAgICBpZiAoIWluZm8tPmNv bXBhdGlibGUpCisgICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAgZm9yIChpID0gMDsgaSA8 IGNvdW50OyBpKyspIHsKKyAgICAgICAgdmFsdWUgPSBzeXNmc191ZXZlbnRfZ2V0KHBhdGgsICJP Rl9DT01QQVRJQkxFXyV1IiwgaSk7CisgICAgICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgICAg IGVyciA9IC1FTk9FTlQ7CisgICAgICAgICAgICBnb3RvIGZyZWU7CisgICAgICAgIH0KKworICAg ICAgICBpbmZvLT5jb21wYXRpYmxlW2ldID0gdmFsdWU7CisgICAgfQorCisgICAgcmV0dXJuIDA7 CisKK2ZyZWU6CisgICAgd2hpbGUgKGktLSkKKyAgICAgICAgZnJlZShpbmZvLT5jb21wYXRpYmxl W2ldKTsKKworICAgIGZyZWUoaW5mby0+Y29tcGF0aWJsZSk7CisgICAgcmV0dXJuIGVycjsKKyNl bHNlCisjd2FybmluZyAiTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBkcm1QYXJzZVBsYXRmb3Jt RGV2aWNlSW5mbyIKKyAgICByZXR1cm4gLUVJTlZBTDsKKyNlbmRpZgorfQorCitzdGF0aWMgaW50 IGRybVByb2Nlc3NQbGF0Zm9ybURldmljZShkcm1EZXZpY2VQdHIgKmRldmljZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5vZGUsIGludCBub2RlX3R5 cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWFqLCBpbnQgbWlu LCBib29sIGZldGNoX2RldmljZWluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBmbGFncykKK3sKKyAgICBkcm1EZXZpY2VQdHIgZGV2OworICAgIGNoYXIg KnB0cjsKKyAgICBpbnQgcmV0OworCisgICAgZGV2ID0gZHJtRGV2aWNlQWxsb2Mobm9kZV90eXBl LCBub2RlLCBzaXplb2YoZHJtUGxhdGZvcm1CdXNJbmZvKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YoZHJtUGxhdGZvcm1EZXZpY2VJbmZvKSwgJnB0cik7CisgICAgaWYgKCFkZXYp CisgICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAgZGV2LT5idXN0eXBlID0gRFJNX0JVU19Q TEFURk9STTsKKworICAgIGRldi0+YnVzaW5mby5wbGF0Zm9ybSA9IChkcm1QbGF0Zm9ybUJ1c0lu Zm9QdHIpcHRyOworCisgICAgcmV0ID0gZHJtUGFyc2VQbGF0Zm9ybUJ1c0luZm8obWFqLCBtaW4s IGRldi0+YnVzaW5mby5wbGF0Zm9ybSk7CisgICAgaWYgKHJldCA8IDApCisgICAgICAgIGdvdG8g ZnJlZV9kZXZpY2U7CisKKyAgICBpZiAoZmV0Y2hfZGV2aWNlaW5mbykgeworICAgICAgICBwdHIg Kz0gc2l6ZW9mKGRybVBsYXRmb3JtQnVzSW5mbyk7CisgICAgICAgIGRldi0+ZGV2aWNlaW5mby5w bGF0Zm9ybSA9IChkcm1QbGF0Zm9ybURldmljZUluZm9QdHIpcHRyOworCisgICAgICAgIHJldCA9 IGRybVBhcnNlUGxhdGZvcm1EZXZpY2VJbmZvKG1haiwgbWluLCBkZXYtPmRldmljZWluZm8ucGxh dGZvcm0pOworICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgIGdvdG8gZnJlZV9kZXZp Y2U7CisgICAgfQorCisgICAgKmRldmljZSA9IGRldjsKKworICAgIHJldHVybiAwOworCitmcmVl X2RldmljZToKKyAgICBmcmVlKGRldik7CisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIGlu dCBkcm1QYXJzZUhvc3QxeEJ1c0luZm8oaW50IG1haiwgaW50IG1pbiwgZHJtSG9zdDF4QnVzSW5m b1B0ciBpbmZvKQoreworI2lmZGVmIF9fbGludXhfXworICAgIGNoYXIgcGF0aFtQQVRIX01BWCAr IDFdLCAqbmFtZTsKKworICAgIHNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIi9zeXMvZGV2 L2NoYXIvJWQ6JWQvZGV2aWNlIiwgbWFqLCBtaW4pOworCisgICAgbmFtZSA9IHN5c2ZzX3VldmVu dF9nZXQocGF0aCwgIk9GX0ZVTExOQU1FIik7CisgICAgaWYgKCFuYW1lKQorICAgICAgICByZXR1 cm4gLUVOT0VOVDsKKworICAgIHN0cm5jcHkoaW5mby0+ZnVsbG5hbWUsIG5hbWUsIERSTV9IT1NU MVhfREVWSUNFX05BTUVfTEVOKTsKKyAgICBpbmZvLT5mdWxsbmFtZVtEUk1fSE9TVDFYX0RFVklD RV9OQU1FX0xFTiAtIDFdID0gJ1wwJzsKKyAgICBmcmVlKG5hbWUpOworCisgICAgcmV0dXJuIDA7 CisjZWxzZQorI3dhcm5pbmcgIk1pc3NpbmcgaW1wbGVtZW50YXRpb24gb2YgZHJtUGFyc2VIb3N0 MXhCdXNJbmZvIgorICAgIHJldHVybiAtRUlOVkFMOworI2VuZGlmCit9CisKK3N0YXRpYyBpbnQg ZHJtUGFyc2VIb3N0MXhEZXZpY2VJbmZvKGludCBtYWosIGludCBtaW4sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkcm1Ib3N0MXhEZXZpY2VJbmZvUHRyIGluZm8pCit7Cisj aWZkZWYgX19saW51eF9fCisgICAgY2hhciBwYXRoW1BBVEhfTUFYICsgMV0sICp2YWx1ZTsKKyAg ICB1bnNpZ25lZCBpbnQgY291bnQsIGk7CisgICAgaW50IGVycjsKKworICAgIHNucHJpbnRmKHBh dGgsIHNpemVvZihwYXRoKSwgIi9zeXMvZGV2L2NoYXIvJWQ6JWQvZGV2aWNlIiwgbWFqLCBtaW4p OworCisgICAgdmFsdWUgPSBzeXNmc191ZXZlbnRfZ2V0KHBhdGgsICJPRl9DT01QQVRJQkxFX04i KTsKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gLUVOT0VOVDsKKworICAgIHNzY2Fu Zih2YWx1ZSwgIiV1IiwgJmNvdW50KTsKKyAgICBmcmVlKHZhbHVlKTsKKworICAgIGluZm8tPmNv bXBhdGlibGUgPSBjYWxsb2MoY291bnQgKyAxLCBzaXplb2YoKmluZm8tPmNvbXBhdGlibGUpKTsK KyAgICBpZiAoIWluZm8tPmNvbXBhdGlibGUpCisgICAgICAgIHJldHVybiAtRU5PTUVNOworCisg ICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgdmFsdWUgPSBzeXNmc191 ZXZlbnRfZ2V0KHBhdGgsICJPRl9DT01QQVRJQkxFXyV1IiwgaSk7CisgICAgICAgIGlmICghdmFs dWUpIHsKKyAgICAgICAgICAgIGVyciA9IC1FTk9FTlQ7CisgICAgICAgICAgICBnb3RvIGZyZWU7 CisgICAgICAgIH0KKworICAgICAgICBpbmZvLT5jb21wYXRpYmxlW2ldID0gdmFsdWU7CisgICAg fQorCisgICAgcmV0dXJuIDA7CisKK2ZyZWU6CisgICAgd2hpbGUgKGktLSkKKyAgICAgICAgZnJl ZShpbmZvLT5jb21wYXRpYmxlW2ldKTsKKworICAgIGZyZWUoaW5mby0+Y29tcGF0aWJsZSk7Cisg ICAgcmV0dXJuIGVycjsKKyNlbHNlCisjd2FybmluZyAiTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBv ZiBkcm1QYXJzZUhvc3QxeERldmljZUluZm8iCisgICAgcmV0dXJuIC1FSU5WQUw7CisjZW5kaWYK K30KKworc3RhdGljIGludCBkcm1Qcm9jZXNzSG9zdDF4RGV2aWNlKGRybURldmljZVB0ciAqZGV2 aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5vZGUs IGludCBub2RlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1h aiwgaW50IG1pbiwgYm9vbCBmZXRjaF9kZXZpY2VpbmZvLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IGZsYWdzKQoreworICAgIGRybURldmljZVB0ciBkZXY7Cisg ICAgY2hhciAqcHRyOworICAgIGludCByZXQ7CisKKyAgICBkZXYgPSBkcm1EZXZpY2VBbGxvYyhu b2RlX3R5cGUsIG5vZGUsIHNpemVvZihkcm1Ib3N0MXhCdXNJbmZvKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplb2YoZHJtSG9zdDF4RGV2aWNlSW5mbyksICZwdHIpOworICAgIGlmICgh ZGV2KQorICAgICAgICByZXR1cm4gLUVOT01FTTsKKworICAgIGRldi0+YnVzdHlwZSA9IERSTV9C VVNfSE9TVDFYOworCisgICAgZGV2LT5idXNpbmZvLmhvc3QxeCA9IChkcm1Ib3N0MXhCdXNJbmZv UHRyKXB0cjsKKworICAgIHJldCA9IGRybVBhcnNlSG9zdDF4QnVzSW5mbyhtYWosIG1pbiwgZGV2 LT5idXNpbmZvLmhvc3QxeCk7CisgICAgaWYgKHJldCA8IDApCisgICAgICAgIGdvdG8gZnJlZV9k ZXZpY2U7CisKKyAgICBpZiAoZmV0Y2hfZGV2aWNlaW5mbykgeworICAgICAgICBwdHIgKz0gc2l6 ZW9mKGRybUhvc3QxeEJ1c0luZm8pOworICAgICAgICBkZXYtPmRldmljZWluZm8uaG9zdDF4ID0g KGRybUhvc3QxeERldmljZUluZm9QdHIpcHRyOworCisgICAgICAgIHJldCA9IGRybVBhcnNlSG9z dDF4RGV2aWNlSW5mbyhtYWosIG1pbiwgZGV2LT5kZXZpY2VpbmZvLmhvc3QxeCk7CisgICAgICAg IGlmIChyZXQgPCAwKQorICAgICAgICAgICAgZ290byBmcmVlX2RldmljZTsKKyAgICB9CisKKyAg ICAqZGV2aWNlID0gZGV2OworCisgICAgcmV0dXJuIDA7CisKK2ZyZWVfZGV2aWNlOgorICAgIGZy ZWUoZGV2KTsKKyAgICByZXR1cm4gcmV0OworfQorCiAvKiBDb25zaWRlciBkZXZpY2VzIGxvY2F0 ZWQgb24gdGhlIHNhbWUgYnVzIGFzIGR1cGxpY2F0ZSBhbmQgZm9sZCB0aGUgcmVzcGVjdGl2ZQog ICogZW50cmllcyBpbnRvIGEgc2luZ2xlIG9uZS4KICAqCkBAIC0zNTc2LDYgKzM4NDYsMjAgQEAg aW50IGRybUdldERldmljZTIoaW50IGZkLCB1aW50MzJfdCBmbGFncywgZHJtRGV2aWNlUHRyICpk ZXZpY2UpCiAKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgRFJNX0JVU19QTEFU Rk9STToKKyAgICAgICAgICAgIHJldCA9IGRybVByb2Nlc3NQbGF0Zm9ybURldmljZSgmZCwgbm9k ZSwgbm9kZV90eXBlLCBtYWosIG1pbiwgdHJ1ZSwgZmxhZ3MpOworICAgICAgICAgICAgaWYgKHJl dCkKKyAgICAgICAgICAgICAgICBnb3RvIGZyZWVfZGV2aWNlczsKKworICAgICAgICAgICAgYnJl YWs7CisKKyAgICAgICAgY2FzZSBEUk1fQlVTX0hPU1QxWDoKKyAgICAgICAgICAgIHJldCA9IGRy bVByb2Nlc3NIb3N0MXhEZXZpY2UoJmQsIG5vZGUsIG5vZGVfdHlwZSwgbWFqLCBtaW4sIHRydWUs IGZsYWdzKTsKKyAgICAgICAgICAgIGlmIChyZXQpCisgICAgICAgICAgICAgICAgZ290byBmcmVl X2RldmljZXM7CisKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGRlZmF1bHQ6CiAgICAg ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtMzcxNiw2ICs0MDAwLDIyIEBAIGludCBk cm1HZXREZXZpY2VzMih1aW50MzJfdCBmbGFncywgZHJtRGV2aWNlUHRyIGRldmljZXNbXSwgaW50 IG1heF9kZXZpY2VzKQogCiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIERSTV9C VVNfUExBVEZPUk06CisgICAgICAgICAgICByZXQgPSBkcm1Qcm9jZXNzUGxhdGZvcm1EZXZpY2Uo JmRldmljZSwgbm9kZSwgbm9kZV90eXBlLCBtYWosIG1pbiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VzICE9IE5VTEwsIGZsYWdzKTsKKyAgICAgICAg ICAgIGlmIChyZXQpCisgICAgICAgICAgICAgICAgZ290byBmcmVlX2RldmljZXM7CisKKyAgICAg ICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRFJNX0JVU19IT1NUMVg6CisgICAgICAgICAg ICByZXQgPSBkcm1Qcm9jZXNzSG9zdDF4RGV2aWNlKCZkZXZpY2UsIG5vZGUsIG5vZGVfdHlwZSwg bWFqLCBtaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmlj ZXMgIT0gTlVMTCwgZmxhZ3MpOworICAgICAgICAgICAgaWYgKHJldCkKKyAgICAgICAgICAgICAg ICBnb3RvIGZyZWVfZGV2aWNlczsKKworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgZGVm YXVsdDoKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS94Zjg2 ZHJtLmggYi94Zjg2ZHJtLmgKaW5kZXggNjVkNTMyMTk1MGZjLi4wZDkyNzAxOGYxZjcgMTAwNjQ0 Ci0tLSBhL3hmODZkcm0uaAorKysgYi94Zjg2ZHJtLmgKQEAgLTc2Niw4ICs3NjYsMTAgQEAgZXh0 ZXJuIGludCBkcm1QcmltZUZEVG9IYW5kbGUoaW50IGZkLCBpbnQgcHJpbWVfZmQsIHVpbnQzMl90 ICpoYW5kbGUpOwogZXh0ZXJuIGNoYXIgKmRybUdldFByaW1hcnlEZXZpY2VOYW1lRnJvbUZkKGlu dCBmZCk7CiBleHRlcm4gY2hhciAqZHJtR2V0UmVuZGVyRGV2aWNlTmFtZUZyb21GZChpbnQgZmQp OwogCi0jZGVmaW5lIERSTV9CVVNfUENJICAgMAotI2RlZmluZSBEUk1fQlVTX1VTQiAgIDEKKyNk ZWZpbmUgRFJNX0JVU19QQ0kgICAgICAgMAorI2RlZmluZSBEUk1fQlVTX1VTQiAgICAgICAxCisj ZGVmaW5lIERSTV9CVVNfUExBVEZPUk0gIDIKKyNkZWZpbmUgRFJNX0JVU19IT1NUMVggICAgMwog CiB0eXBlZGVmIHN0cnVjdCBfZHJtUGNpQnVzSW5mbyB7CiAgICAgdWludDE2X3QgZG9tYWluOwpA QCAtNzk0LDYgKzc5NiwyNiBAQCB0eXBlZGVmIHN0cnVjdCBfZHJtVXNiRGV2aWNlSW5mbyB7CiAg ICAgdWludDE2X3QgcHJvZHVjdDsKIH0gZHJtVXNiRGV2aWNlSW5mbywgKmRybVVzYkRldmljZUlu Zm9QdHI7CiAKKyNkZWZpbmUgRFJNX1BMQVRGT1JNX0RFVklDRV9OQU1FX0xFTiA1MTIKKwordHlw ZWRlZiBzdHJ1Y3QgX2RybVBsYXRmb3JtQnVzSW5mbyB7CisgICAgY2hhciBmdWxsbmFtZVtEUk1f UExBVEZPUk1fREVWSUNFX05BTUVfTEVOXTsKK30gZHJtUGxhdGZvcm1CdXNJbmZvLCAqZHJtUGxh dGZvcm1CdXNJbmZvUHRyOworCit0eXBlZGVmIHN0cnVjdCBfZHJtUGxhdGZvcm1EZXZpY2VJbmZv IHsKKyAgICBjaGFyICoqY29tcGF0aWJsZTsgLyogTlVMTCB0ZXJtaW5hdGVkIGxpc3Qgb2YgY29t cGF0aWJsZSBzdHJpbmdzICovCit9IGRybVBsYXRmb3JtRGV2aWNlSW5mbywgKmRybVBsYXRmb3Jt RGV2aWNlSW5mb1B0cjsKKworI2RlZmluZSBEUk1fSE9TVDFYX0RFVklDRV9OQU1FX0xFTiA1MTIK KwordHlwZWRlZiBzdHJ1Y3QgX2RybUhvc3QxeEJ1c0luZm8geworICAgIGNoYXIgZnVsbG5hbWVb RFJNX0hPU1QxWF9ERVZJQ0VfTkFNRV9MRU5dOworfSBkcm1Ib3N0MXhCdXNJbmZvLCAqZHJtSG9z dDF4QnVzSW5mb1B0cjsKKwordHlwZWRlZiBzdHJ1Y3QgX2RybUhvc3QxeERldmljZUluZm8gewor ICAgIGNoYXIgKipjb21wYXRpYmxlOyAvKiBOVUxMIHRlcm1pbmF0ZWQgbGlzdCBvZiBjb21wYXRp YmxlIHN0cmluZ3MgKi8KK30gZHJtSG9zdDF4RGV2aWNlSW5mbywgKmRybUhvc3QxeERldmljZUlu Zm9QdHI7CisKIHR5cGVkZWYgc3RydWN0IF9kcm1EZXZpY2UgewogICAgIGNoYXIgKipub2Rlczsg LyogRFJNX05PREVfTUFYIHNpemVkIGFycmF5ICovCiAgICAgaW50IGF2YWlsYWJsZV9ub2Rlczsg LyogRFJNX05PREVfKiBiaXRtYXNrICovCkBAIC04MDEsMTAgKzgyMywxNCBAQCB0eXBlZGVmIHN0 cnVjdCBfZHJtRGV2aWNlIHsKICAgICB1bmlvbiB7CiAgICAgICAgIGRybVBjaUJ1c0luZm9QdHIg cGNpOwogICAgICAgICBkcm1Vc2JCdXNJbmZvUHRyIHVzYjsKKyAgICAgICAgZHJtUGxhdGZvcm1C dXNJbmZvUHRyIHBsYXRmb3JtOworICAgICAgICBkcm1Ib3N0MXhCdXNJbmZvUHRyIGhvc3QxeDsK ICAgICB9IGJ1c2luZm87CiAgICAgdW5pb24gewogICAgICAgICBkcm1QY2lEZXZpY2VJbmZvUHRy IHBjaTsKICAgICAgICAgZHJtVXNiRGV2aWNlSW5mb1B0ciB1c2I7CisgICAgICAgIGRybVBsYXRm b3JtRGV2aWNlSW5mb1B0ciBwbGF0Zm9ybTsKKyAgICAgICAgZHJtSG9zdDF4RGV2aWNlSW5mb1B0 ciBob3N0MXg7CiAgICAgfSBkZXZpY2VpbmZvOwogfSBkcm1EZXZpY2UsICpkcm1EZXZpY2VQdHI7 CiAKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KeG9yZy1kZXZlbEBsaXN0cy54Lm9yZzogWC5PcmcgZGV2ZWxvcG1lbnQKQXJjaGl2ZXM6 IGh0dHA6Ly9saXN0cy54Lm9yZy9hcmNoaXZlcy94b3JnLWRldmVsCkluZm86IGh0dHBzOi8vbGlz dHMueC5vcmcvbWFpbG1hbi9saXN0aW5mby94b3JnLWRldmVs