From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH libdrm v2 3/4] xf86drm: Add platform and host1x bus support Date: Thu, 12 Jan 2017 23:04:28 +0100 Message-ID: <20170112220429.28139-4-thierry.reding@gmail.com> References: <20170112220429.28139-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id DF6476ECC9 for ; Thu, 12 Jan 2017 22:04:38 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id r144so6996427wme.0 for ; Thu, 12 Jan 2017 14:04:38 -0800 (PST) In-Reply-To: <20170112220429.28139-1-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: xorg-devel@lists.x.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkFSTSBTb0NzIHVzdWFs bHkgaGF2ZSB0aGVpciBEUk0vS01TIGRldmljZXMgb24gdGhlIHBsYXRmb3JtIGJ1cywgc28gYWRk CnN1cHBvcnQgZm9yIHRoYXQgdG8gZW5hYmxlIHRoZXNlIGRldmljZXMgdG8gYmUgdXNlZCB3aXRo IHRoZSBkcm1EZXZpY2UKaW5mcmFzdHJ1Y3R1cmUuCgpOVklESUEgVGVncmEgU29DcyBoYXZlIGFu IGFkZGl0aW9uYWwgbGV2ZWwgaW4gdGhlIGhpZXJhcmNoeSBhbmQgRFJNL0tNUwpkZXZpY2VzIGNh biBhbHNvIGJlIG9uIHRoZSBob3N0MXggYnVzLiBUaGlzIGlzIG1vc3RseSBlcXVpdmFsZW50IHRv IHRoZQpwbGF0Zm9ybSBidXMuCgp2MjoKLSBiZSBjYXJlZnVsIG5vdCB0byBvdmVyZmxvdyB0aGUg ZnVsbCBuYW1lCi0gcmVhZCBjb21wYXRpYmxlIHN0cmluZ3MgaW50byBkZXZpY2UgaW5mbwoKU2ln bmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KLS0tCiB4Zjg2 ZHJtLmMgfCAyODAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIHhmODZkcm0uaCB8ICAzMCArKysrKystCiAyIGZpbGVzIGNoYW5n ZWQsIDMwOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hmODZk cm0uYyBiL3hmODZkcm0uYwppbmRleCAyN2NkNmViNTE5M2UuLjY5ZTFlY2Q0N2JlMyAxMDA2NDQK LS0tIGEveGY4NmRybS5jCisrKyBiL3hmODZkcm0uYwpAQCAtMjkwOSw2ICsyOTA5LDEyIEBAIHN0 YXRpYyBpbnQgZHJtUGFyc2VTdWJzeXN0ZW1UeXBlKGludCBtYWosIGludCBtaW4pCiAgICAgaWYg KHN0cm5jbXAobmFtZSwgIi91c2IiLCA0KSA9PSAwKQogICAgICAgICByZXR1cm4gRFJNX0JVU19V U0I7CiAKKyAgICBpZiAoc3RybmNtcChuYW1lLCAiL3BsYXRmb3JtIiwgOSkgPT0gMCkKKyAgICAg ICAgcmV0dXJuIERSTV9CVVNfUExBVEZPUk07CisKKyAgICBpZiAoc3RybmNtcChuYW1lLCAiL2hv c3QxeCIsIDcpID09IDApCisgICAgICAgIHJldHVybiBEUk1fQlVTX0hPU1QxWDsKKwogICAgIHJl dHVybiAtRUlOVkFMOwogI2VsaWYgZGVmaW5lZChfX09wZW5CU0RfXykKICAgICByZXR1cm4gRFJN X0JVU19QQ0k7CkBAIC0yOTk5LDYgKzMwMDUsMTIgQEAgc3RhdGljIGludCBkcm1Db21wYXJlQnVz SW5mbyhkcm1EZXZpY2VQdHIgYSwgZHJtRGV2aWNlUHRyIGIpCiAgICAgY2FzZSBEUk1fQlVTX1VT QjoKICAgICAgICAgcmV0dXJuIG1lbWNtcChhLT5idXNpbmZvLnVzYiwgYi0+YnVzaW5mby51c2Is IHNpemVvZihkcm1Vc2JCdXNJbmZvKSk7CiAKKyAgICBjYXNlIERSTV9CVVNfUExBVEZPUk06Cisg ICAgICAgIHJldHVybiBtZW1jbXAoYS0+YnVzaW5mby5wbGF0Zm9ybSwgYi0+YnVzaW5mby5wbGF0 Zm9ybSwgc2l6ZW9mKGRybVBsYXRmb3JtQnVzSW5mbykpOworCisgICAgY2FzZSBEUk1fQlVTX0hP U1QxWDoKKyAgICAgICAgcmV0dXJuIG1lbWNtcChhLT5idXNpbmZvLmhvc3QxeCwgYi0+YnVzaW5m by5ob3N0MXgsIHNpemVvZihkcm1Ib3N0MXhCdXNJbmZvKSk7CisKICAgICBkZWZhdWx0OgogICAg ICAgICBicmVhazsKICAgICB9CkBAIC0zMTQzLDExICszMTU1LDU1IEBAIHN0YXRpYyBpbnQgZHJt UGFyc2VQY2lEZXZpY2VJbmZvKGludCBtYWosIGludCBtaW4sCiAjZW5kaWYKIH0KIAorc3RhdGlj IHZvaWQgZHJtRnJlZVBsYXRmb3JtRGV2aWNlKGRybURldmljZVB0ciBkZXZpY2UpCit7CisgICAg aWYgKGRldmljZS0+ZGV2aWNlaW5mby5wbGF0Zm9ybSkgeworICAgICAgICBpZiAoZGV2aWNlLT5k ZXZpY2VpbmZvLnBsYXRmb3JtLT5jb21wYXRpYmxlKSB7CisgICAgICAgICAgICBjaGFyICoqY29t cGF0aWJsZSA9IGRldmljZS0+ZGV2aWNlaW5mby5wbGF0Zm9ybS0+Y29tcGF0aWJsZTsKKworICAg ICAgICAgICAgd2hpbGUgKCpjb21wYXRpYmxlKSB7CisgICAgICAgICAgICAgICAgZnJlZSgqY29t cGF0aWJsZSk7CisgICAgICAgICAgICAgICAgY29tcGF0aWJsZSsrOworICAgICAgICAgICAgfQor CisgICAgICAgICAgICBmcmVlKGRldmljZS0+ZGV2aWNlaW5mby5wbGF0Zm9ybS0+Y29tcGF0aWJs ZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGRybUZyZWVIb3N0MXhEZXZp Y2UoZHJtRGV2aWNlUHRyIGRldmljZSkKK3sKKyAgICBpZiAoZGV2aWNlLT5kZXZpY2VpbmZvLmhv c3QxeCkgeworICAgICAgICBpZiAoZGV2aWNlLT5kZXZpY2VpbmZvLmhvc3QxeC0+Y29tcGF0aWJs ZSkgeworICAgICAgICAgICAgY2hhciAqKmNvbXBhdGlibGUgPSBkZXZpY2UtPmRldmljZWluZm8u aG9zdDF4LT5jb21wYXRpYmxlOworCisgICAgICAgICAgICB3aGlsZSAoKmNvbXBhdGlibGUpIHsK KyAgICAgICAgICAgICAgICBmcmVlKCpjb21wYXRpYmxlKTsKKyAgICAgICAgICAgICAgICBjb21w YXRpYmxlKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWUoZGV2aWNlLT5kZXZp Y2VpbmZvLmhvc3QxeC0+Y29tcGF0aWJsZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQg ZHJtRnJlZURldmljZShkcm1EZXZpY2VQdHIgKmRldmljZSkKIHsKICAgICBpZiAoZGV2aWNlID09 IE5VTEwpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICgqZGV2aWNlKSB7CisgICAgICAgIHN3 aXRjaCAoKCpkZXZpY2UpLT5idXN0eXBlKSB7CisgICAgICAgIGNhc2UgRFJNX0JVU19QTEFURk9S TToKKyAgICAgICAgICAgIGRybUZyZWVQbGF0Zm9ybURldmljZSgqZGV2aWNlKTsKKyAgICAgICAg ICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRFJNX0JVU19IT1NUMVg6CisgICAgICAgICAgICBk cm1GcmVlSG9zdDF4RGV2aWNlKCpkZXZpY2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg IH0KKyAgICB9CisKICAgICBmcmVlKCpkZXZpY2UpOwogICAgICpkZXZpY2UgPSBOVUxMOwogfQpA QCAtMzM4MSw2ICszNDM3LDIwMCBAQCBmcmVlX2RldmljZToKICAgICByZXR1cm4gcmV0OwogfQog CitzdGF0aWMgaW50IGRybVBhcnNlUGxhdGZvcm1CdXNJbmZvKGludCBtYWosIGludCBtaW4sIGRy bVBsYXRmb3JtQnVzSW5mb1B0ciBpbmZvKQoreworICAgIGNoYXIgcGF0aFtQQVRIX01BWCArIDFd LCAqbmFtZTsKKworICAgIHNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIi9zeXMvZGV2L2No YXIvJWQ6JWQvZGV2aWNlIiwgbWFqLCBtaW4pOworCisgICAgbmFtZSA9IHN5c2ZzX3VldmVudF9n ZXQocGF0aCwgIk9GX0ZVTExOQU1FIik7CisgICAgaWYgKCFuYW1lKQorICAgICAgICByZXR1cm4g LUVOT0VOVDsKKworICAgIHN0cm5jcHkoaW5mby0+ZnVsbG5hbWUsIG5hbWUsIERSTV9QTEFURk9S TV9ERVZJQ0VfTkFNRV9MRU4pOworICAgIGluZm8tPmZ1bGxuYW1lW0RSTV9QTEFURk9STV9ERVZJ Q0VfTkFNRV9MRU4gLSAxXSA9ICdcMCc7CisgICAgZnJlZShuYW1lKTsKKworICAgIHJldHVybiAw OworfQorCitzdGF0aWMgaW50IGRybVBhcnNlUGxhdGZvcm1EZXZpY2VJbmZvKGludCBtYWosIGlu dCBtaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRybVBsYXRmb3Jt RGV2aWNlSW5mb1B0ciBpbmZvKQoreworICAgIGNoYXIgcGF0aFtQQVRIX01BWCArIDFdLCAqdmFs dWU7CisgICAgdW5zaWduZWQgaW50IGNvdW50LCBpOworICAgIGludCBlcnI7CisKKyAgICBzbnBy aW50ZihwYXRoLCBzaXplb2YocGF0aCksICIvc3lzL2Rldi9jaGFyLyVkOiVkL2RldmljZSIsIG1h aiwgbWluKTsKKworICAgIHZhbHVlID0gc3lzZnNfdWV2ZW50X2dldChwYXRoLCAiT0ZfQ09NUEFU SUJMRV9OIik7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisKKyAg ICBzc2NhbmYodmFsdWUsICIldSIsICZjb3VudCk7CisgICAgZnJlZSh2YWx1ZSk7CisKKyAgICBp bmZvLT5jb21wYXRpYmxlID0gY2FsbG9jKGNvdW50ICsgMSwgc2l6ZW9mKCppbmZvLT5jb21wYXRp YmxlKSk7CisgICAgaWYgKCFpbmZvLT5jb21wYXRpYmxlKQorICAgICAgICByZXR1cm4gLUVOT01F TTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgIHZhbHVlID0g c3lzZnNfdWV2ZW50X2dldChwYXRoLCAiT0ZfQ09NUEFUSUJMRV8ldSIsIGkpOworICAgICAgICBp ZiAoIXZhbHVlKSB7CisgICAgICAgICAgICBlcnIgPSAtRU5PRU5UOworICAgICAgICAgICAgZ290 byBmcmVlOworICAgICAgICB9CisKKyAgICAgICAgaW5mby0+Y29tcGF0aWJsZVtpXSA9IHZhbHVl OworICAgIH0KKworICAgIHJldHVybiAwOworCitmcmVlOgorICAgIHdoaWxlIChpLS0pCisgICAg ICAgIGZyZWUoaW5mby0+Y29tcGF0aWJsZVtpXSk7CisKKyAgICBmcmVlKGluZm8tPmNvbXBhdGli bGUpOworICAgIHJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgZHJtUHJvY2Vzc1BsYXRmb3Jt RGV2aWNlKGRybURldmljZVB0ciAqZGV2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqbm9kZSwgaW50IG5vZGVfdHlwZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBtYWosIGludCBtaW4sIGJvb2wgZmV0Y2hfZGV2aWNl aW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGZsYWdz KQoreworICAgIGRybURldmljZVB0ciBkZXY7CisgICAgY2hhciAqcHRyOworICAgIGludCByZXQ7 CisKKyAgICBkZXYgPSBkcm1EZXZpY2VBbGxvYyhub2RlX3R5cGUsIG5vZGUsIHNpemVvZihkcm1Q bGF0Zm9ybUJ1c0luZm8pLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihkcm1QbGF0 Zm9ybURldmljZUluZm8pLCAmcHRyKTsKKyAgICBpZiAoIWRldikKKyAgICAgICAgcmV0dXJuIC1F Tk9NRU07CisKKyAgICBkZXYtPmJ1c3R5cGUgPSBEUk1fQlVTX1BMQVRGT1JNOworCisgICAgZGV2 LT5idXNpbmZvLnBsYXRmb3JtID0gKGRybVBsYXRmb3JtQnVzSW5mb1B0cilwdHI7CisKKyAgICBy ZXQgPSBkcm1QYXJzZVBsYXRmb3JtQnVzSW5mbyhtYWosIG1pbiwgZGV2LT5idXNpbmZvLnBsYXRm b3JtKTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgZ290byBmcmVlX2RldmljZTsKKworICAg IGlmIChmZXRjaF9kZXZpY2VpbmZvKSB7CisgICAgICAgIHB0ciArPSBzaXplb2YoZHJtUGxhdGZv cm1CdXNJbmZvKTsKKyAgICAgICAgZGV2LT5kZXZpY2VpbmZvLnBsYXRmb3JtID0gKGRybVBsYXRm b3JtRGV2aWNlSW5mb1B0cilwdHI7CisKKyAgICAgICAgcmV0ID0gZHJtUGFyc2VQbGF0Zm9ybURl dmljZUluZm8obWFqLCBtaW4sIGRldi0+ZGV2aWNlaW5mby5wbGF0Zm9ybSk7CisgICAgICAgIGlm IChyZXQgPCAwKQorICAgICAgICAgICAgZ290byBmcmVlX2RldmljZTsKKyAgICB9CisKKyAgICAq ZGV2aWNlID0gZGV2OworCisgICAgcmV0dXJuIDA7CisKK2ZyZWVfZGV2aWNlOgorICAgIGZyZWUo ZGV2KTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGRybVBhcnNlSG9zdDF4QnVz SW5mbyhpbnQgbWFqLCBpbnQgbWluLCBkcm1Ib3N0MXhCdXNJbmZvUHRyIGluZm8pCit7CisgICAg Y2hhciBwYXRoW1BBVEhfTUFYICsgMV0sICpuYW1lOworCisgICAgc25wcmludGYocGF0aCwgc2l6 ZW9mKHBhdGgpLCAiL3N5cy9kZXYvY2hhci8lZDolZC9kZXZpY2UiLCBtYWosIG1pbik7CisKKyAg ICBuYW1lID0gc3lzZnNfdWV2ZW50X2dldChwYXRoLCAiT0ZfRlVMTE5BTUUiKTsKKyAgICBpZiAo IW5hbWUpCisgICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgc3RybmNweShpbmZvLT5mdWxs bmFtZSwgbmFtZSwgRFJNX0hPU1QxWF9ERVZJQ0VfTkFNRV9MRU4pOworICAgIGluZm8tPmZ1bGxu YW1lW0RSTV9IT1NUMVhfREVWSUNFX05BTUVfTEVOIC0gMV0gPSAnXDAnOworICAgIGZyZWUobmFt ZSk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBkcm1QYXJzZUhvc3QxeERldmlj ZUluZm8oaW50IG1haiwgaW50IG1pbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRybUhvc3QxeERldmljZUluZm9QdHIgaW5mbykKK3sKKyAgICBjaGFyIHBhdGhbUEFUSF9N QVggKyAxXSwgKnZhbHVlOworICAgIHVuc2lnbmVkIGludCBjb3VudCwgaTsKKyAgICBpbnQgZXJy OworCisgICAgc25wcmludGYocGF0aCwgc2l6ZW9mKHBhdGgpLCAiL3N5cy9kZXYvY2hhci8lZDol ZC9kZXZpY2UiLCBtYWosIG1pbik7CisKKyAgICB2YWx1ZSA9IHN5c2ZzX3VldmVudF9nZXQocGF0 aCwgIk9GX0NPTVBBVElCTEVfTiIpOworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiAt RU5PRU5UOworCisgICAgc3NjYW5mKHZhbHVlLCAiJXUiLCAmY291bnQpOworICAgIGZyZWUodmFs dWUpOworCisgICAgaW5mby0+Y29tcGF0aWJsZSA9IGNhbGxvYyhjb3VudCArIDEsIHNpemVvZigq aW5mby0+Y29tcGF0aWJsZSkpOworICAgIGlmICghaW5mby0+Y29tcGF0aWJsZSkKKyAgICAgICAg cmV0dXJuIC1FTk9NRU07CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAg ICAgICB2YWx1ZSA9IHN5c2ZzX3VldmVudF9nZXQocGF0aCwgIk9GX0NPTVBBVElCTEVfJXUiLCBp KTsKKyAgICAgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICAgICAgZXJyID0gLUVOT0VOVDsKKyAg ICAgICAgICAgIGdvdG8gZnJlZTsKKyAgICAgICAgfQorCisgICAgICAgIGluZm8tPmNvbXBhdGli bGVbaV0gPSB2YWx1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKKworZnJlZToKKyAgICB3aGls ZSAoaS0tKQorICAgICAgICBmcmVlKGluZm8tPmNvbXBhdGlibGVbaV0pOworCisgICAgZnJlZShp bmZvLT5jb21wYXRpYmxlKTsKKyAgICByZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGRybVBy b2Nlc3NIb3N0MXhEZXZpY2UoZHJtRGV2aWNlUHRyICpkZXZpY2UsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbm9kZSwgaW50IG5vZGVfdHlwZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWFqLCBpbnQgbWluLCBib29sIGZldGNo X2RldmljZWluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg ZmxhZ3MpCit7CisgICAgZHJtRGV2aWNlUHRyIGRldjsKKyAgICBjaGFyICpwdHI7CisgICAgaW50 IHJldDsKKworICAgIGRldiA9IGRybURldmljZUFsbG9jKG5vZGVfdHlwZSwgbm9kZSwgc2l6ZW9m KGRybUhvc3QxeEJ1c0luZm8pLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihkcm1I b3N0MXhEZXZpY2VJbmZvKSwgJnB0cik7CisgICAgaWYgKCFkZXYpCisgICAgICAgIHJldHVybiAt RU5PTUVNOworCisgICAgZGV2LT5idXN0eXBlID0gRFJNX0JVU19IT1NUMVg7CisKKyAgICBkZXYt PmJ1c2luZm8uaG9zdDF4ID0gKGRybUhvc3QxeEJ1c0luZm9QdHIpcHRyOworCisgICAgcmV0ID0g ZHJtUGFyc2VIb3N0MXhCdXNJbmZvKG1haiwgbWluLCBkZXYtPmJ1c2luZm8uaG9zdDF4KTsKKyAg ICBpZiAocmV0IDwgMCkKKyAgICAgICAgZ290byBmcmVlX2RldmljZTsKKworICAgIGlmIChmZXRj aF9kZXZpY2VpbmZvKSB7CisgICAgICAgIHB0ciArPSBzaXplb2YoZHJtSG9zdDF4QnVzSW5mbyk7 CisgICAgICAgIGRldi0+ZGV2aWNlaW5mby5ob3N0MXggPSAoZHJtSG9zdDF4RGV2aWNlSW5mb1B0 cilwdHI7CisKKyAgICAgICAgcmV0ID0gZHJtUGFyc2VIb3N0MXhEZXZpY2VJbmZvKG1haiwgbWlu LCBkZXYtPmRldmljZWluZm8uaG9zdDF4KTsKKyAgICAgICAgaWYgKHJldCA8IDApCisgICAgICAg ICAgICBnb3RvIGZyZWVfZGV2aWNlOworICAgIH0KKworICAgICpkZXZpY2UgPSBkZXY7CisKKyAg ICByZXR1cm4gMDsKKworZnJlZV9kZXZpY2U6CisgICAgZnJlZShkZXYpOworICAgIHJldHVybiBy ZXQ7Cit9CisKIC8qIENvbnNpZGVyIGRldmljZXMgbG9jYXRlZCBvbiB0aGUgc2FtZSBidXMgYXMg ZHVwbGljYXRlIGFuZCBmb2xkIHRoZSByZXNwZWN0aXZlCiAgKiBlbnRyaWVzIGludG8gYSBzaW5n bGUgb25lLgogICoKQEAgLTM1NjQsNiArMzgxNCwyMCBAQCBpbnQgZHJtR2V0RGV2aWNlMihpbnQg ZmQsIHVpbnQzMl90IGZsYWdzLCBkcm1EZXZpY2VQdHIgKmRldmljZSkKIAogICAgICAgICAgICAg YnJlYWs7CiAKKyAgICAgICAgY2FzZSBEUk1fQlVTX1BMQVRGT1JNOgorICAgICAgICAgICAgcmV0 ID0gZHJtUHJvY2Vzc1BsYXRmb3JtRGV2aWNlKCZkLCBub2RlLCBub2RlX3R5cGUsIG1haiwgbWlu LCB0cnVlLCBmbGFncyk7CisgICAgICAgICAgICBpZiAocmV0KQorICAgICAgICAgICAgICAgIGdv dG8gZnJlZV9kZXZpY2VzOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERS TV9CVVNfSE9TVDFYOgorICAgICAgICAgICAgcmV0ID0gZHJtUHJvY2Vzc0hvc3QxeERldmljZSgm ZCwgbm9kZSwgbm9kZV90eXBlLCBtYWosIG1pbiwgdHJ1ZSwgZmxhZ3MpOworICAgICAgICAgICAg aWYgKHJldCkKKyAgICAgICAgICAgICAgICBnb3RvIGZyZWVfZGV2aWNlczsKKworICAgICAgICAg ICAgYnJlYWs7CisKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg ICAgICB9CkBAIC0zNzA0LDYgKzM5NjgsMjIgQEAgaW50IGRybUdldERldmljZXMyKHVpbnQzMl90 IGZsYWdzLCBkcm1EZXZpY2VQdHIgZGV2aWNlc1tdLCBpbnQgbWF4X2RldmljZXMpCiAKICAgICAg ICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgRFJNX0JVU19QTEFURk9STToKKyAgICAgICAg ICAgIHJldCA9IGRybVByb2Nlc3NQbGF0Zm9ybURldmljZSgmZGV2aWNlLCBub2RlLCBub2RlX3R5 cGUsIG1haiwgbWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRldmljZXMgIT0gTlVMTCwgZmxhZ3MpOworICAgICAgICAgICAgaWYgKHJldCkKKyAgICAgICAg ICAgICAgICBnb3RvIGZyZWVfZGV2aWNlczsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg ICAgY2FzZSBEUk1fQlVTX0hPU1QxWDoKKyAgICAgICAgICAgIHJldCA9IGRybVByb2Nlc3NIb3N0 MXhEZXZpY2UoJmRldmljZSwgbm9kZSwgbm9kZV90eXBlLCBtYWosIG1pbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlcyAhPSBOVUxMLCBmbGFncyk7Cisg ICAgICAgICAgICBpZiAocmV0KQorICAgICAgICAgICAgICAgIGdvdG8gZnJlZV9kZXZpY2VzOwor CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgY29u dGludWU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3hmODZkcm0uaCBiL3hmODZkcm0uaAppbmRl eCA2NWQ1MzIxOTUwZmMuLjBkOTI3MDE4ZjFmNyAxMDA2NDQKLS0tIGEveGY4NmRybS5oCisrKyBi L3hmODZkcm0uaApAQCAtNzY2LDggKzc2NiwxMCBAQCBleHRlcm4gaW50IGRybVByaW1lRkRUb0hh bmRsZShpbnQgZmQsIGludCBwcmltZV9mZCwgdWludDMyX3QgKmhhbmRsZSk7CiBleHRlcm4gY2hh ciAqZHJtR2V0UHJpbWFyeURldmljZU5hbWVGcm9tRmQoaW50IGZkKTsKIGV4dGVybiBjaGFyICpk cm1HZXRSZW5kZXJEZXZpY2VOYW1lRnJvbUZkKGludCBmZCk7CiAKLSNkZWZpbmUgRFJNX0JVU19Q Q0kgICAwCi0jZGVmaW5lIERSTV9CVVNfVVNCICAgMQorI2RlZmluZSBEUk1fQlVTX1BDSSAgICAg ICAwCisjZGVmaW5lIERSTV9CVVNfVVNCICAgICAgIDEKKyNkZWZpbmUgRFJNX0JVU19QTEFURk9S TSAgMgorI2RlZmluZSBEUk1fQlVTX0hPU1QxWCAgICAzCiAKIHR5cGVkZWYgc3RydWN0IF9kcm1Q Y2lCdXNJbmZvIHsKICAgICB1aW50MTZfdCBkb21haW47CkBAIC03OTQsNiArNzk2LDI2IEBAIHR5 cGVkZWYgc3RydWN0IF9kcm1Vc2JEZXZpY2VJbmZvIHsKICAgICB1aW50MTZfdCBwcm9kdWN0Owog fSBkcm1Vc2JEZXZpY2VJbmZvLCAqZHJtVXNiRGV2aWNlSW5mb1B0cjsKIAorI2RlZmluZSBEUk1f UExBVEZPUk1fREVWSUNFX05BTUVfTEVOIDUxMgorCit0eXBlZGVmIHN0cnVjdCBfZHJtUGxhdGZv cm1CdXNJbmZvIHsKKyAgICBjaGFyIGZ1bGxuYW1lW0RSTV9QTEFURk9STV9ERVZJQ0VfTkFNRV9M RU5dOworfSBkcm1QbGF0Zm9ybUJ1c0luZm8sICpkcm1QbGF0Zm9ybUJ1c0luZm9QdHI7CisKK3R5 cGVkZWYgc3RydWN0IF9kcm1QbGF0Zm9ybURldmljZUluZm8geworICAgIGNoYXIgKipjb21wYXRp YmxlOyAvKiBOVUxMIHRlcm1pbmF0ZWQgbGlzdCBvZiBjb21wYXRpYmxlIHN0cmluZ3MgKi8KK30g ZHJtUGxhdGZvcm1EZXZpY2VJbmZvLCAqZHJtUGxhdGZvcm1EZXZpY2VJbmZvUHRyOworCisjZGVm aW5lIERSTV9IT1NUMVhfREVWSUNFX05BTUVfTEVOIDUxMgorCit0eXBlZGVmIHN0cnVjdCBfZHJt SG9zdDF4QnVzSW5mbyB7CisgICAgY2hhciBmdWxsbmFtZVtEUk1fSE9TVDFYX0RFVklDRV9OQU1F X0xFTl07Cit9IGRybUhvc3QxeEJ1c0luZm8sICpkcm1Ib3N0MXhCdXNJbmZvUHRyOworCit0eXBl ZGVmIHN0cnVjdCBfZHJtSG9zdDF4RGV2aWNlSW5mbyB7CisgICAgY2hhciAqKmNvbXBhdGlibGU7 IC8qIE5VTEwgdGVybWluYXRlZCBsaXN0IG9mIGNvbXBhdGlibGUgc3RyaW5ncyAqLworfSBkcm1I b3N0MXhEZXZpY2VJbmZvLCAqZHJtSG9zdDF4RGV2aWNlSW5mb1B0cjsKKwogdHlwZWRlZiBzdHJ1 Y3QgX2RybURldmljZSB7CiAgICAgY2hhciAqKm5vZGVzOyAvKiBEUk1fTk9ERV9NQVggc2l6ZWQg YXJyYXkgKi8KICAgICBpbnQgYXZhaWxhYmxlX25vZGVzOyAvKiBEUk1fTk9ERV8qIGJpdG1hc2sg Ki8KQEAgLTgwMSwxMCArODIzLDE0IEBAIHR5cGVkZWYgc3RydWN0IF9kcm1EZXZpY2UgewogICAg IHVuaW9uIHsKICAgICAgICAgZHJtUGNpQnVzSW5mb1B0ciBwY2k7CiAgICAgICAgIGRybVVzYkJ1 c0luZm9QdHIgdXNiOworICAgICAgICBkcm1QbGF0Zm9ybUJ1c0luZm9QdHIgcGxhdGZvcm07Cisg ICAgICAgIGRybUhvc3QxeEJ1c0luZm9QdHIgaG9zdDF4OwogICAgIH0gYnVzaW5mbzsKICAgICB1 bmlvbiB7CiAgICAgICAgIGRybVBjaURldmljZUluZm9QdHIgcGNpOwogICAgICAgICBkcm1Vc2JE ZXZpY2VJbmZvUHRyIHVzYjsKKyAgICAgICAgZHJtUGxhdGZvcm1EZXZpY2VJbmZvUHRyIHBsYXRm b3JtOworICAgICAgICBkcm1Ib3N0MXhEZXZpY2VJbmZvUHRyIGhvc3QxeDsKICAgICB9IGRldmlj ZWluZm87CiB9IGRybURldmljZSwgKmRybURldmljZVB0cjsKIAotLSAKMi4xMS4wCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK