From mboxrd@z Thu Jan 1 00:00:00 1970 From: Amit Singh Tomar Subject: [RFC PATCH 2/2] xen/arm: Add MESON UART driver for Amlogic S905 SoC Date: Tue, 7 Aug 2018 22:37:53 +0530 Message-ID: <1533661673-14607-3-git-send-email-amittomer25@gmail.com> References: <1533661673-14607-1-git-send-email-amittomer25@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fn5TQ-00062J-VX for xen-devel@lists.xenproject.org; Tue, 07 Aug 2018 17:08:45 +0000 Received: by mail-pf1-x443.google.com with SMTP id j26-v6so8870858pfi.10 for ; Tue, 07 Aug 2018 10:08:43 -0700 (PDT) In-Reply-To: <1533661673-14607-1-git-send-email-amittomer25@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andre.przywara@arm.com, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com, andrew.cooper3@citrix.com, Amit Singh Tomar List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhZGRzIGRyaXZlciBmb3IgVUFSVCBjb250cm9sbGVyIHByZXNlbnQgb24gQW1s b2dpYyBTOTA1IFNvQy4KaHR0cHM6Ly9kbi5vZHJvaWQuY29tL1M5MDUvRGF0YVNoZWV0L1M5MDVf UHVibGljX0RhdGFzaGVldF9WMS4xLjQucGRmCgpTaWduZWQtb2ZmLWJ5OiBBbWl0IFNpbmdoIFRv bWFyIDxhbWl0dG9tZXIyNUBnbWFpbC5jb20+Ci0tLQogeGVuL2RyaXZlcnMvY2hhci9LY29uZmln ICAgICAgfCAgIDggKysKIHhlbi9kcml2ZXJzL2NoYXIvTWFrZWZpbGUgICAgIHwgICAxICsKIHhl bi9kcml2ZXJzL2NoYXIvbWVzb24tdWFydC5jIHwgMjkwICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyOTkgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL2NoYXIvbWVzb24tdWFydC5jCgpkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvY2hhci9LY29uZmlnIGIveGVuL2RyaXZlcnMvY2hhci9LY29uZmln CmluZGV4IGNjNzhlYzMuLmI5ZmVlNGUgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL2NoYXIvS2Nv bmZpZworKysgYi94ZW4vZHJpdmVycy9jaGFyL0tjb25maWcKQEAgLTIwLDYgKzIwLDE0IEBAIGNv bmZpZyBIQVNfTVZFQlUKIAkgIFRoaXMgc2VsZWN0cyB0aGUgTWFydmVsbCBNVkVCVSBVQVJULiBJ ZiB5b3UgaGF2ZSBhIEFSTUFEQSAzNzAwCiAJICBiYXNlZCBib2FyZCwgc2F5IFkuCiAKK2NvbmZp ZyBIQVNfTUVTT04KKyAgICBib29sCisgICAgZGVmYXVsdCB5CisgICAgZGVwZW5kcyBvbiBBUk1f NjQKKyAgICBoZWxwCisgICAgICBUaGlzIHNlbGVjdHMgdGhlIE1hcnZlbGwgTUVTT04gVUFSVC4g SWYgeW91IGhhdmUgYSBBbWxvZ2ljIFM5MDUKKyAgICAgIGJhc2VkIGJvYXJkLCBzYXkgWS4KKwog Y29uZmlnIEhBU19QTDAxMQogCWJvb2wKIAlkZWZhdWx0IHkKZGlmZiAtLWdpdCBhL3hlbi9kcml2 ZXJzL2NoYXIvTWFrZWZpbGUgYi94ZW4vZHJpdmVycy9jaGFyL01ha2VmaWxlCmluZGV4IGI2OGMz MzAuLjdjNjQ2ZDcgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL2NoYXIvTWFrZWZpbGUKKysrIGIv eGVuL2RyaXZlcnMvY2hhci9NYWtlZmlsZQpAQCAtMyw2ICszLDcgQEAgb2JqLSQoQ09ORklHX0hB U19OUzE2NTUwKSArPSBuczE2NTUwLm8KIG9iai0kKENPTkZJR19IQVNfQ0FERU5DRV9VQVJUKSAr PSBjYWRlbmNlLXVhcnQubwogb2JqLSQoQ09ORklHX0hBU19QTDAxMSkgKz0gcGwwMTEubwogb2Jq LSQoQ09ORklHX0hBU19FWFlOT1M0MjEwKSArPSBleHlub3M0MjEwLXVhcnQubworb2JqLSQoQ09O RklHX0hBU19NRVNPTikgKz0gbWVzb24tdWFydC5vCiBvYmotJChDT05GSUdfSEFTX01WRUJVKSAr PSBtdmVidS11YXJ0Lm8KIG9iai0kKENPTkZJR19IQVNfT01BUCkgKz0gb21hcC11YXJ0Lm8KIG9i ai0kKENPTkZJR19IQVNfU0NJRikgKz0gc2NpZi11YXJ0Lm8KZGlmZiAtLWdpdCBhL3hlbi9kcml2 ZXJzL2NoYXIvbWVzb24tdWFydC5jIGIveGVuL2RyaXZlcnMvY2hhci9tZXNvbi11YXJ0LmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZlN2U2MgotLS0gL2Rldi9udWxsCisr KyBiL3hlbi9kcml2ZXJzL2NoYXIvbWVzb24tdWFydC5jCkBAIC0wLDAgKzEsMjkwIEBACisvKgor ICogeGVuL2RyaXZlcnMvY2hhci9tZXNvbi11YXJ0LmMKKyAqCisgKiBEcml2ZXIgZm9yIEFtbG9n aWMgTUVTT04gVUFSVAorICoKKyAqIENvcHlyaWdodCAoYykgMjAxOCwgQW1pdCBTaW5naCBUb21h ciA8YW1pdHRvbWVyMjVAZ21haWwuY29tPi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAq IExpY2Vuc2UsIHZlcnNpb24gMiwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KKyAqLworCisjaW5jbHVkZSA8eGVuL2lycS5oPgorI2luY2x1ZGUgPHhlbi9z ZXJpYWwuaD4KKyNpbmNsdWRlIDx4ZW4vdm1hcC5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorCisv KiBSZWdpc3RlciBvZmZzZXRzICovCisjZGVmaW5lIFVBUlRfV0ZJRk8gICAgICAgICAgICAgICAg ICAweDAwCisjZGVmaW5lIFVBUlRfUkZJRk8gICAgICAgICAgICAgICAgICAweDA0CisjZGVmaW5l IFVBUlRfQ09OVFJPTCAgICAgICAgICAgICAgICAweDA4CisjZGVmaW5lIFVBUlRfU1RBVFVTICAg ICAgICAgICAgICAgICAweDBjCisjZGVmaW5lIFVBUlRfTUlTQyAgICAgICAgICAgICAgICAgICAw eDEwCisjZGVmaW5lIFVBUlRfUkVHNSAgICAgICAgICAgICAgICAgICAweDE0CisKKy8qIFVBUlRf Q09OVFJPTCBiaXRzICovCisjZGVmaW5lIFVBUlRfVFhfRU4gICAgICAgICAgICAgICAgICBCSVQo MTIpCisjZGVmaW5lIFVBUlRfUlhfRU4gICAgICAgICAgICAgICAgICBCSVQoMTMpCisjZGVmaW5l IFVBUlRfVFhfUlNUICAgICAgICAgICAgICAgICBCSVQoMjIpCisjZGVmaW5lIFVBUlRfUlhfUlNU ICAgICAgICAgICAgICAgICBCSVQoMjMpCisjZGVmaW5lIFVBUlRfQ0xFQVJfRVJSICAgICAgICAg ICAgICBCSVQoMjQpCisjZGVmaW5lIFVBUlRfUlhfSU5UX0VOICAgICAgICAgICAgICBCSVQoMjcp CisjZGVmaW5lIFVBUlRfVFhfSU5UX0VOICAgICAgICAgICAgICBCSVQoMjgpCisKKy8qIFVBUlRf U1RBVFVTIGJpdHMgKi8KKyNkZWZpbmUgVUFSVF9QQVJJVFlfRVJSICAgICAgICAgICAgIEJJVCgx NikKKyNkZWZpbmUgVUFSVF9GUkFNRV9FUlIgICAgICAgICAgICAgIEJJVCgxNykKKyNkZWZpbmUg VUFSVF9UWF9GSUZPX1dFUlIgICAgICAgICAgIEJJVCgxOCkKKyNkZWZpbmUgVUFSVF9SWF9FTVBU WSAgICAgICAgICAgICAgIEJJVCgyMCkKKyNkZWZpbmUgVUFSVF9UWF9GVUxMICAgICAgICAgICAg ICAgIEJJVCgyMSkKKyNkZWZpbmUgVUFSVF9UWF9FTVBUWSAgICAgICAgICAgICAgIEJJVCgyMikK KyNkZWZpbmUgVUFSVF9UWF9DTlRfTUFTSyAgICAgICAgICAgIEdFTk1BU0soMTQsIDgpCisKKwor I2RlZmluZSBVQVJUX1hNSVRfSVJRX0NOVF9NQVNLICAgICAgR0VOTUFTSygxNSwgOCkKKyNkZWZp bmUgVUFSVF9SRUNWX0lSUV9DTlRfTUFTSyAgICAgIEdFTk1BU0soNywgMCkKKworI2RlZmluZSBU WF9GSUZPX1NJWkUgICAgICAgICAgICAgICAgNjQKKworc3RhdGljIHN0cnVjdCBtZXNvbl9zOTA1 X3VhcnQgeworICAgIHVuc2lnbmVkIGludCBpcnE7CisgICAgdm9pZCBfX2lvbWVtICpyZWdzOwor ICAgIHN0cnVjdCBpcnFhY3Rpb24gaXJxYWN0aW9uOworICAgIHN0cnVjdCB2dWFydF9pbmZvIHZ1 YXJ0OworfSBtZXNvbl9zOTA1X2NvbSA9IHswfTsKKworI2RlZmluZSBtZXNvbl9zOTA1X3JlYWQo dWFydCwgb2ZmKSAgICAgICAgICAgcmVhZGwoKHVhcnQpLT5yZWdzICsgb2ZmKQorI2RlZmluZSBt ZXNvbl9zOTA1X3dyaXRlKHVhcnQsIG9mZiwgdmFsKSAgICAgd3JpdGVsKHZhbCwgKHVhcnQtPnJl Z3MpICsgb2ZmKQorCitzdGF0aWMgdm9pZCBtZXNvbl9zOTA1X3VhcnRfaW50ZXJydXB0KGludCBp cnEsIHZvaWQgKmRhdGEsCisgICAgICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQorewor ICAgIHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCA9IGRhdGE7CisgICAgc3RydWN0IG1lc29uX3M5 MDVfdWFydCAqdWFydCA9IHBvcnQtPnVhcnQ7CisgICAgdWludDMyX3Qgc3QgPSBtZXNvbl9zOTA1 X3JlYWQodWFydCwgVUFSVF9TVEFUVVMpOworCisgICAgaWYgKCAhKHN0ICYgVUFSVF9SWF9FTVBU WSkgKQorICAgIHsKKyAgICAgICAgc2VyaWFsX3J4X2ludGVycnVwdChwb3J0LCByZWdzKTsKKyAg ICB9CisKKyAgICBpZiAoICEoc3QgJiBVQVJUX1RYX0ZVTEwpICkKKyAgICB7CisgICAgICAgIGlm ICggc3QgJiBVQVJUX1RYX0lOVF9FTiApCisgICAgICAgICAgICBzZXJpYWxfdHhfaW50ZXJydXB0 KHBvcnQsIHJlZ3MpOworICAgIH0KKworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgbWVzb25fczkw NV91YXJ0X2luaXRfcHJlaXJxKHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkKK3sKKyAgICBzdHJ1 Y3QgbWVzb25fczkwNV91YXJ0ICp1YXJ0ID0gcG9ydC0+dWFydDsKKyAgICB1aW50MzJfdCByZWc7 CisKKyAgICByZWcgPSBtZXNvbl9zOTA1X3JlYWQodWFydCwgVUFSVF9DT05UUk9MKTsKKyAgICBy ZWcgJj0gfihVQVJUX1JYX1JTVCB8IFVBUlRfVFhfUlNUIHwgVUFSVF9DTEVBUl9FUlIpOworICAg IG1lc29uX3M5MDVfd3JpdGUodWFydCwgVUFSVF9DT05UUk9MLCByZWcpOworCisgICAgLyogRGlz YmFsZSBSeC9UeCBpbnRlcnJ1cHRzICovCisgICAgcmVnID0gbWVzb25fczkwNV9yZWFkKHVhcnQs IFVBUlRfQ09OVFJPTCk7CisgICAgcmVnICY9IH4oVUFSVF9SWF9JTlRfRU4gfCBVQVJUX1RYX0lO VF9FTik7CisgICAgbWVzb25fczkwNV93cml0ZSh1YXJ0LCBVQVJUX0NPTlRST0wsIHJlZyk7Cit9 CisKK3N0YXRpYyB2b2lkIF9faW5pdCBtZXNvbl9zOTA1X3VhcnRfaW5pdF9wb3N0aXJxKHN0cnVj dCBzZXJpYWxfcG9ydCAqcG9ydCkKK3sKKyAgICBzdHJ1Y3QgbWVzb25fczkwNV91YXJ0ICp1YXJ0 ID0gcG9ydC0+dWFydDsKKyAgICB1aW50MzJfdCByZWc7CisKKyAgICB1YXJ0LT5pcnFhY3Rpb24u aGFuZGxlciA9IG1lc29uX3M5MDVfdWFydF9pbnRlcnJ1cHQ7CisgICAgdWFydC0+aXJxYWN0aW9u Lm5hbWUgICAgPSAibWVzb25fczkwNV91YXJ0IjsKKyAgICB1YXJ0LT5pcnFhY3Rpb24uZGV2X2lk ICA9IHBvcnQ7CisKKyAgICBpZiAoIHNldHVwX2lycSh1YXJ0LT5pcnEsIDAsICZ1YXJ0LT5pcnFh Y3Rpb24pICE9IDAgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKCJGYWlsZWQgdG8gYWxsb2NhdGVk IG1lc29uX3M5MDVfdWFydCBJUlEgJWRcbiIsIHVhcnQtPmlycSk7CisgICAgICAgIHJldHVybjsK KyAgICB9CisKKyAgICAvKiBDb25maWd1cmUgUngvVHggaW50ZXJydXB0cyBiYXNlZCBvbiBieXRl cyBpbiBGSUZPICovCisgICAgcmVnID0gbWVzb25fczkwNV9yZWFkKHVhcnQsIFVBUlRfTUlTQyk7 CisgICAgcmVnID0gKFVBUlRfUkVDVl9JUlFfQ05UX01BU0sgJiAxKSB8CisgICAgICAgICAgIChV QVJUX1hNSVRfSVJRX0NOVF9NQVNLICYgKChUWF9GSUZPX1NJWkUgLyAyKSA8PCA4KSk7CisgICAg bWVzb25fczkwNV93cml0ZSh1YXJ0LCBVQVJUX01JU0MsIHJlZyk7CisKKyAgICAvKiBNYWtlIHN1 cmUgUngvVHggaW50ZXJydXB0cyBhcmUgZW5hYmxlZCBub3cgKi8KKyAgICByZWcgPSBtZXNvbl9z OTA1X3JlYWQodWFydCwgVUFSVF9DT05UUk9MKTsKKyAgICByZWcgfD0gKFVBUlRfUlhfSU5UX0VO IHwgVUFSVF9UWF9JTlRfRU4pOworICAgIG1lc29uX3M5MDVfd3JpdGUodWFydCwgVUFSVF9DT05U Uk9MLCByZWcpOworfQorCitzdGF0aWMgdm9pZCBtZXNvbl9zOTA1X3VhcnRfc3VzcGVuZChzdHJ1 Y3Qgc2VyaWFsX3BvcnQgKnBvcnQpCit7CisgICAgQlVHKCk7Cit9CisKK3N0YXRpYyB2b2lkIG1l c29uX3M5MDVfdWFydF9yZXN1bWUoc3RydWN0IHNlcmlhbF9wb3J0ICpwb3J0KQoreworICAgIEJV RygpOworfQorCitzdGF0aWMgdm9pZCBtZXNvbl9zOTA1X3VhcnRfcHV0YyhzdHJ1Y3Qgc2VyaWFs X3BvcnQgKnBvcnQsIGNoYXIgYykKK3sKKyAgICBzdHJ1Y3QgbWVzb25fczkwNV91YXJ0ICp1YXJ0 ID0gcG9ydC0+dWFydDsKKworICAgIG1lc29uX3M5MDVfd3JpdGUodWFydCwgVUFSVF9XRklGTywg Yyk7Cit9CisKK3N0YXRpYyBpbnQgbWVzb25fczkwNV91YXJ0X2dldGMoc3RydWN0IHNlcmlhbF9w b3J0ICpwb3J0LCBjaGFyICpjKQoreworICAgIHN0cnVjdCBtZXNvbl9zOTA1X3VhcnQgKnVhcnQg PSBwb3J0LT51YXJ0OworCisgICAgaWYgKCAobWVzb25fczkwNV9yZWFkKHVhcnQsIFVBUlRfU1RB VFVTKSAmIFVBUlRfUlhfRU1QVFkpICkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAqYyA9ICBt ZXNvbl9zOTA1X3JlYWQodWFydCwgVUFSVF9SRklGTykgJiAweGZmOworCisgICAgcmV0dXJuIDE7 Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IG1lc29uX3M5MDVfaXJxKHN0cnVjdCBzZXJpYWxfcG9y dCAqcG9ydCkKK3sKKyAgICBzdHJ1Y3QgbWVzb25fczkwNV91YXJ0ICp1YXJ0ID0gcG9ydC0+dWFy dDsKKworICAgIHJldHVybiB1YXJ0LT5pcnE7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdnVh cnRfaW5mbyAqbWVzb25fczkwNV92dWFydF9pbmZvKHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkK K3sKKyAgICBzdHJ1Y3QgbWVzb25fczkwNV91YXJ0ICp1YXJ0ID0gcG9ydC0+dWFydDsKKworICAg IHJldHVybiAmdWFydC0+dnVhcnQ7Cit9CisKK3N0YXRpYyB2b2lkIG1lc29uX3M5MDVfdWFydF9z dG9wX3R4KHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkKK3sKKyAgICBzdHJ1Y3QgbWVzb25fczkw NV91YXJ0ICp1YXJ0ID0gcG9ydC0+dWFydDsKKyAgICB1aW50MzJfdCByZWc7CisKKyAgICByZWcg PSBtZXNvbl9zOTA1X3JlYWQodWFydCwgVUFSVF9DT05UUk9MKTsKKyAgICByZWcgJj0gflVBUlRf VFhfSU5UX0VOOworICAgIG1lc29uX3M5MDVfd3JpdGUodWFydCwgVUFSVF9DT05UUk9MLCByZWcp OworfQorCitzdGF0aWMgdm9pZCBtZXNvbl9zOTA1X3VhcnRfc3RhcnRfdHgoc3RydWN0IHNlcmlh bF9wb3J0ICpwb3J0KQoreworICAgIHN0cnVjdCBtZXNvbl9zOTA1X3VhcnQgKnVhcnQgPSBwb3J0 LT51YXJ0OworICAgIHVpbnQzMl90IHJlZzsKKworICAgIHJlZyA9IG1lc29uX3M5MDVfcmVhZCh1 YXJ0LCBVQVJUX0NPTlRST0wpOworICAgIHJlZyB8PSBVQVJUX1RYX0lOVF9FTjsKKyAgICBtZXNv bl9zOTA1X3dyaXRlKHVhcnQsIFVBUlRfQ09OVFJPTCwgcmVnKTsKK30KKworc3RhdGljIGludCBt ZXNvbl9zOTA1X3VhcnRfdHhfcmVhZHkoc3RydWN0IHNlcmlhbF9wb3J0ICpwb3J0KQoreworICAg IHN0cnVjdCBtZXNvbl9zOTA1X3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0OworICAgIHVpbnQzMl90 IHJlZzsKKworICAgIHJlZyA9IG1lc29uX3M5MDVfcmVhZCh1YXJ0LCBVQVJUX1NUQVRVUyk7CisK KyAgICBpZiAoIHJlZyAmIFVBUlRfVFhfRU1QVFkgKQorICAgICAgICByZXR1cm4gVFhfRklGT19T SVpFOworICAgIGlmICggcmVnICYgVUFSVF9UWF9GVUxMICkKKyAgICAgICAgcmV0dXJuIDA7CisK KyAgICByZXR1cm4gKHJlZyAmIFVBUlRfVFhfQ05UX01BU0spID4+IDg7Cit9CisKK3N0YXRpYyBz dHJ1Y3QgdWFydF9kcml2ZXIgX19yZWFkX21vc3RseSBtZXNvbl91YXJ0X2RyaXZlciA9IHsKKyAg ICAuaW5pdF9wcmVpcnEgID0gbWVzb25fczkwNV91YXJ0X2luaXRfcHJlaXJxLAorICAgIC5pbml0 X3Bvc3RpcnEgPSBtZXNvbl9zOTA1X3VhcnRfaW5pdF9wb3N0aXJxLAorICAgIC5lbmRib290ICAg ICAgPSBOVUxMLAorICAgIC5zdXNwZW5kICAgICAgPSBtZXNvbl9zOTA1X3VhcnRfc3VzcGVuZCwK KyAgICAucmVzdW1lICAgICAgID0gbWVzb25fczkwNV91YXJ0X3Jlc3VtZSwKKyAgICAucHV0YyAg ICAgICAgID0gbWVzb25fczkwNV91YXJ0X3B1dGMsCisgICAgLmdldGMgICAgICAgICA9IG1lc29u X3M5MDVfdWFydF9nZXRjLAorICAgIC50eF9yZWFkeSAgICAgPSBtZXNvbl9zOTA1X3VhcnRfdHhf cmVhZHksCisgICAgLnN0b3BfdHggICAgICA9IG1lc29uX3M5MDVfdWFydF9zdG9wX3R4LAorICAg IC5zdGFydF90eCAgICAgPSBtZXNvbl9zOTA1X3VhcnRfc3RhcnRfdHgsCisgICAgLmlycSAgICAg ICAgICA9IG1lc29uX3M5MDVfaXJxLAorICAgIC52dWFydF9pbmZvICAgPSBtZXNvbl9zOTA1X3Z1 YXJ0X2luZm8sCit9OworCitzdGF0aWMgaW50IF9faW5pdCBtZXNvbl91YXJ0X2luaXQoc3RydWN0 IGR0X2RldmljZV9ub2RlICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEpCit7CisgICAgY29uc3QgY2hh ciAqY29uZmlnID0gZGF0YTsKKyAgICBzdHJ1Y3QgbWVzb25fczkwNV91YXJ0ICp1YXJ0OworICAg IGludCByZXM7CisgICAgdTY0IGFkZHIsIHNpemU7CisKKyAgICBpZiAoIHN0cmNtcChjb25maWcs ICIiKSApCisgICAgICAgIHByaW50aygiV0FSTklORzogVUFSVCBjb25maWd1cmF0aW9uIGlzIG5v dCBzdXBwb3J0ZWRcbiIpOworCisgICAgdWFydCA9ICZtZXNvbl9zOTA1X2NvbTsKKworICAgIHJl cyA9IGR0X2RldmljZV9nZXRfYWRkcmVzcyhkZXYsIDAsICZhZGRyLCAmc2l6ZSk7CisgICAgaWYg KCByZXMgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKCJtZXNvbl9zOTA1OiBVbmFibGUgdG8gcmV0 cmlldmUgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgVUFSVFxuIik7CisgICAgICAgIHJldHVybiBy ZXM7CisgICAgfQorCisgICAgcmVzID0gcGxhdGZvcm1fZ2V0X2lycShkZXYsIDApOworICAgIGlm ICggcmVzIDwgMCApCisgICAgeworICAgICAgICBwcmludGsoIm1lc29uX3M5MDU6IFVuYWJsZSB0 byByZXRyaWV2ZSB0aGUgSVJRXG4iKTsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQor CisgICAgdWFydC0+aXJxICA9IHJlczsKKworICAgIHVhcnQtPnJlZ3MgPSBpb3JlbWFwX25vY2Fj aGUoYWRkciwgc2l6ZSk7CisgICAgaWYgKCAhdWFydC0+cmVncyApCisgICAgeworICAgICAgICBw cmludGsoIm1lc29uX3M5MDU6IFVuYWJsZSB0byBtYXAgdGhlIFVBUlQgbWVtb3J5XG4iKTsKKyAg ICAgICAgcmV0dXJuIC1FTk9NRU07CisgICAgfQorCisgICAgdWFydC0+dnVhcnQuYmFzZV9hZGRy ID0gYWRkcjsKKyAgICB1YXJ0LT52dWFydC5zaXplID0gc2l6ZTsKKyAgICB1YXJ0LT52dWFydC5k YXRhX29mZiA9IFVBUlRfQ09OVFJPTDsKKyAgICB1YXJ0LT52dWFydC5zdGF0dXNfb2ZmID0gVUFS VF9TVEFUVVM7CisgICAgdWFydC0+dnVhcnQuc3RhdHVzID0gVUFSVF9SWF9FTVBUWSB8IFVBUlRf VFhfRU1QVFk7CisKKyAgICAvKiBSZWdpc3RlciB3aXRoIGdlbmVyaWMgc2VyaWFsIGRyaXZlci4g Ki8KKyAgICBzZXJpYWxfcmVnaXN0ZXJfdWFydChTRVJITkRfRFRVQVJULCAmbWVzb25fdWFydF9k cml2ZXIsIHVhcnQpOworCisgICAgZHRfZGV2aWNlX3NldF91c2VkX2J5KGRldiwgRE9NSURfWEVO KTsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGR0X2RldmljZV9t YXRjaCBtZXNvbl9kdF9tYXRjaFtdIF9faW5pdGNvbnN0ID0KK3sKKyAgICBEVF9NQVRDSF9DT01Q QVRJQkxFKCJhbWxvZ2ljLG1lc29uLXVhcnQiKSwKKyAgICB7IC8qIHNlbnRpbmVsICovIH0sCit9 OworCitEVF9ERVZJQ0VfU1RBUlQobWVzb24sICJBbWxvZ2ljLVM5MDUgVUFSVCIsIERFVklDRV9T RVJJQUwpCisgICAgLmR0X21hdGNoID0gbWVzb25fZHRfbWF0Y2gsCisgICAgLmluaXQgPSBtZXNv bl91YXJ0X2luaXQsCitEVF9ERVZJQ0VfRU5ECisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6Cisg KiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAor ICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisqLwotLSAKMS45LjEKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs