From mboxrd@z Thu Jan 1 00:00:00 1970 From: Amit Singh Tomar Subject: [PATCH v1] xen/arm: Add MVEBU UART driver for Armada 3700 SoC Date: Fri, 16 Mar 2018 23:04:22 +0530 Message-ID: <1521221662-6782-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.84_2) (envelope-from ) id 1ewtG0-00025t-P0 for xen-devel@lists.xenproject.org; Fri, 16 Mar 2018 17:35:08 +0000 Received: by mail-pg0-x241.google.com with SMTP id e9so4325497pgs.10 for ; Fri, 16 Mar 2018 10:35:07 -0700 (PDT) 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 VGhpcyBwYXRjaCBhZGRzIGRyaXZlciBmb3IgVUFSVCBjb250cm9sbGVyIGZvdW5kIG9uIEFybWFk YSAzNzAwIFNvQy4KClRoZXJlIGlzIG5vIHJlZmVyZW5jZSBtYW51YWxzIGF2YWlsYWJsZSBmb3Ig MzcwMCBTb0MgaW4gcHVibGljIGFuZCB0aGlzCmRyaXZlciBpcyBkZXJpdmVkIGJ5IGxvb2tpbmcg YXQgTGludXggZHJpdmVyLgpodHRwczovL2dpdGh1Yi5jb20vdG9ydmFsZHMvbGludXgvYmxvYi9t YXN0ZXIvZHJpdmVycy90dHkvc2VyaWFsL212ZWJ1LXVhcnQuYwoKSXQgYWxsb3dzIFhFTiB0byBi b290IG9uIEVTUFJFU1NPYmluIGJvYXJkIGJhc2VkIG9uIE1hcnZlbGwncyBBUk1BREEgMzcwMCBT b0MuCgpTaWduZWQtb2ZmLWJ5OiBBbWl0IFNpbmdoIFRvbWFyIDxhbWl0dG9tZXIyNUBnbWFpbC5j b20+Ci0tLQpDaGFuZ2VzIHNpbmNlIFJGQzoKCSogQWRkcmVzc2VkIEp1bGllbidzIENvbW1lbnRz LiAKVE9ETzoKCSogV2lraSBwYWdlIHRvIGNhcHR1cmUgWEVOIGJvb3QgaW5mby4KCSogZWFybHlw cmludGsgc3VwcG9ydC4KLS0tCiB4ZW4vZHJpdmVycy9jaGFyL0tjb25maWcgICAgICAgICB8ICAg OCArKwogeGVuL2RyaXZlcnMvY2hhci9NYWtlZmlsZSAgICAgICAgfCAgIDEgKwogeGVuL2RyaXZl cnMvY2hhci9tdmVidS11YXJ0LmMgICAgfCAyNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9hc20tYXJtL212ZWJ1LXVhcnQuaCB8ICA2MCArKysr KysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzI5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCB4ZW4vZHJpdmVycy9jaGFyL212ZWJ1LXVhcnQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHhl bi9pbmNsdWRlL2FzbS1hcm0vbXZlYnUtdWFydC5oCgpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMv Y2hhci9LY29uZmlnIGIveGVuL2RyaXZlcnMvY2hhci9LY29uZmlnCmluZGV4IGZiNTNkZDguLjY5 MGVkYTYgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL2NoYXIvS2NvbmZpZworKysgYi94ZW4vZHJp dmVycy9jaGFyL0tjb25maWcKQEAgLTEyLDYgKzEyLDE0IEBAIGNvbmZpZyBIQVNfQ0FERU5DRV9V QVJUCiAJICBUaGlzIHNlbGVjdHMgdGhlIFhpbGlueCBaeW5xIENhZGVuY2UgVUFSVC4gSWYgeW91 IGhhdmUgYSBYaWxpbnggWnlucQogCSAgYmFzZWQgYm9hcmQsIHNheSBZLgogCitjb25maWcgSEFT X01WRUJVCisgICAgICAgIGJvb2wKKyAgICAgICAgZGVmYXVsdCB5CisgICAgICAgIGRlcGVuZHMg b24gQVJNXzY0CisgICAgICAgIGhlbHAKKyAgICAgICAgICBUaGlzIHNlbGVjdHMgdGhlIE1hcnZl bGwgTVZFQlUgVUFSVC4gaWYgeW91IGhhdmUgYW4gQVJNQURBIDM3MDAKKyAgICAgICAgICBiYXNl ZCBib2FyZCwgc2F5IFkuCisKIGNvbmZpZyBIQVNfUEwwMTEKIAlib29sCiAJZGVmYXVsdCB5CmRp ZmYgLS1naXQgYS94ZW4vZHJpdmVycy9jaGFyL01ha2VmaWxlIGIveGVuL2RyaXZlcnMvY2hhci9N YWtlZmlsZQppbmRleCAwZDQ4YjE2Li5iNjhjMzMwIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9j aGFyL01ha2VmaWxlCisrKyBiL3hlbi9kcml2ZXJzL2NoYXIvTWFrZWZpbGUKQEAgLTMsNiArMyw3 IEBAIG9iai0kKENPTkZJR19IQVNfTlMxNjU1MCkgKz0gbnMxNjU1MC5vCiBvYmotJChDT05GSUdf SEFTX0NBREVOQ0VfVUFSVCkgKz0gY2FkZW5jZS11YXJ0Lm8KIG9iai0kKENPTkZJR19IQVNfUEww MTEpICs9IHBsMDExLm8KIG9iai0kKENPTkZJR19IQVNfRVhZTk9TNDIxMCkgKz0gZXh5bm9zNDIx MC11YXJ0Lm8KK29iai0kKENPTkZJR19IQVNfTVZFQlUpICs9IG12ZWJ1LXVhcnQubwogb2JqLSQo Q09ORklHX0hBU19PTUFQKSArPSBvbWFwLXVhcnQubwogb2JqLSQoQ09ORklHX0hBU19TQ0lGKSAr PSBzY2lmLXVhcnQubwogb2JqLSQoQ09ORklHX0hBU19FSENJKSArPSBlaGNpLWRiZ3AubwpkaWZm IC0tZ2l0IGEveGVuL2RyaXZlcnMvY2hhci9tdmVidS11YXJ0LmMgYi94ZW4vZHJpdmVycy9jaGFy L212ZWJ1LXVhcnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODhkNWU3 Ci0tLSAvZGV2L251bGwKKysrIGIveGVuL2RyaXZlcnMvY2hhci9tdmVidS11YXJ0LmMKQEAgLTAs MCArMSwyNjAgQEAKKy8qCisgKiB4ZW4vZHJpdmVycy9jaGFyL212ZWJ1MzcwMC11YXJ0LmMKKyAq CisgKiBEcml2ZXIgZm9yIE1hcnZlbGwgTVZFQlUgVUFSVC4KKyAqCisgKiBBbWl0IFNpbmdoIFRv bWFyIDxhbWl0dG9tZXIyNUBnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDIwMTguCisgKgor ICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICov CisKKyNpbmNsdWRlIDx4ZW4vY29uc29sZS5oPgorI2luY2x1ZGUgPHhlbi9lcnJuby5oPgorI2lu Y2x1ZGUgPHhlbi9pbml0Lmg+CisjaW5jbHVkZSA8eGVuL2lycS5oPgorI2luY2x1ZGUgPHhlbi9t bS5oPgorI2luY2x1ZGUgPHhlbi9zZXJpYWwuaD4KKyNpbmNsdWRlIDx4ZW4vdm1hcC5oPgorI2lu Y2x1ZGUgPGFzbS9kZXZpY2UuaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20v bXZlYnUtdWFydC5oPgorCitzdGF0aWMgc3RydWN0IG12ZWJ1MzcwMF91YXJ0IHsKKyAgICB1bnNp Z25lZCBpbnQgaXJxOworICAgIHZvaWQgX19pb21lbSAqcmVnczsKKyAgICBzdHJ1Y3QgaXJxYWN0 aW9uIGlycWFjdGlvbjsKKyAgICBzdHJ1Y3QgdnVhcnRfaW5mbyB2dWFydDsKK30gbXZlYnUzNzAw X2NvbSA9IHswfTsKKworI2RlZmluZSBtdmVidTM3MDBfcmVhZCh1YXJ0LCBvZmYpICAgICAgICAg ICByZWFkbCgodWFydCktPnJlZ3MgKyBvZmYpCisjZGVmaW5lIG12ZWJ1MzcwMF93cml0ZSh1YXJ0 LCBvZmYsIHZhbCkgICAgIHdyaXRlbCh2YWwsICh1YXJ0LT5yZWdzKSArIG9mZikKKworc3RhdGlj IHZvaWQgbXZlYnUzNzAwX3VhcnRfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRhdGEsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MpCit7CisgICAgc3RydWN0IHNlcmlhbF9wb3J0ICpwb3J0ID0gZGF0YTsKKyAgICBzdHJ1Y3Qg bXZlYnUzNzAwX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0OworICAgIHVpbnQzMl90IHN0ID0gbXZl YnUzNzAwX3JlYWQodWFydCwgVUFSVF9TVEFUVVNfUkVHKTsKKworICAgIGlmICggc3QgJiBTVEFU VVNfVFhfUkRZICkKKyAgICAgICAgc2VyaWFsX3R4X2ludGVycnVwdChwb3J0LCByZWdzKTsKKwor ICAgIGlmICggc3QgJiAoU1RBVFVTX1JYX1JEWSB8IFNUQVRVU19PVlJfRVJSIHwgU1RBVFVTX0ZS TV9FUlIgfAorICAgICAgICAgICAgICAgU1RBVFVTX0JSS19ERVQpICkKKyAgICAgICAgc2VyaWFs X3J4X2ludGVycnVwdChwb3J0LCByZWdzKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IG12ZWJ1 MzcwMF91YXJ0X2luaXRfcHJlaXJxKHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkKK3sKKyAgICBz dHJ1Y3QgbXZlYnUzNzAwX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0OworICAgIHVpbnQzMl90IHJl ZzsKKworICAgIHJlZyA9IG12ZWJ1MzcwMF9yZWFkKHVhcnQsIFVBUlRfQ1RSTF9SRUcpOworICAg IHJlZyB8PSAoQ1RSTF9UWEZJRk9fUlNUIHwgQ1RSTF9SWEZJRk9fUlNUKTsKKyAgICBtdmVidTM3 MDBfd3JpdGUodWFydCwgVUFSVF9DVFJMX1JFRywgcmVnKTsKKworICAgIC8qIEJlZm9yZSB3ZSBt YWtlIElSUSByZXF1ZXN0LCBjbGVhciB0aGUgZXJyb3IgYml0cyBvZiBzdGF0ZSByZWdpc3Rlci4g Ki8KKyAgICByZWcgPSBtdmVidTM3MDBfcmVhZCh1YXJ0LCBVQVJUX1NUQVRVU19SRUcpOworICAg IHJlZyB8PSBTVEFUVVNfQlJLX0VSUjsKKyAgICBtdmVidTM3MDBfd3JpdGUodWFydCwgVUFSVF9T VEFUVVNfUkVHLCByZWcpOworCisgICAgLyogQ2xlYXIgZXJyb3IgaW50ZXJydXB0cy4gKi8KKyAg ICBtdmVidTM3MDBfd3JpdGUodWFydCwgVUFSVF9DVFJMX1JFRywgQ1RSTF9SWF9JTlQpOworCisg ICAgLyogRGlzYWJsZSBSeC9UeCBpbnRlcnJ1cHRzLiAqLworICAgIHJlZyA9IG12ZWJ1MzcwMF9y ZWFkKHVhcnQsIFVBUlRfQ1RSTF9SRUcpOworICAgIHJlZyAmPSB+KENUUkxfUlhfUkRZX0lOVCB8 IENUUkxfVFhfUkRZX0lOVCk7CisgICAgbXZlYnUzNzAwX3dyaXRlKHVhcnQsIFVBUlRfQ1RSTF9S RUcsIHJlZyk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBtdmVidTM3MDBfdWFydF9pbml0X3Bv c3RpcnEoc3RydWN0IHNlcmlhbF9wb3J0ICpwb3J0KQoreworICAgIHN0cnVjdCBtdmVidTM3MDBf dWFydCAqdWFydCA9IHBvcnQtPnVhcnQ7CisgICAgdWludDMyX3QgcmVnOworCisgICAgaWYgKCB1 YXJ0LT5pcnEgPiAwICkKKyAgICB7CisgICAgICAgIHVhcnQtPmlycWFjdGlvbi5oYW5kbGVyID0g bXZlYnUzNzAwX3VhcnRfaW50ZXJydXB0OworICAgICAgICB1YXJ0LT5pcnFhY3Rpb24ubmFtZSAg ICA9ICJtdmVidTM3MDBfdWFydCI7CisgICAgICAgIHVhcnQtPmlycWFjdGlvbi5kZXZfaWQgID0g cG9ydDsKKyAgICB9CisKKyAgICBpZiAoIHNldHVwX2lycSh1YXJ0LT5pcnEsIDAsICZ1YXJ0LT5p cnFhY3Rpb24pICE9IDAgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKCJGYWlsZWQgdG8gYWxsb2Nh dGVkIG12ZWJ1MzcwMF91YXJ0IElSUSAlZFxuIiwKKyAgICAgICAgICAgICAgICB1YXJ0LT5pcnEp OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogTWFrZSBzdXJlIFJ4L1R4IGludGVy cnVwdHMgYXJlIGVuYWJsZWQgbm93ICovCisgICAgcmVnID0gbXZlYnUzNzAwX3JlYWQodWFydCwg VUFSVF9DVFJMX1JFRyk7CisgICAgcmVnIHw9IChDVFJMX1JYX1JEWV9JTlQgfCBDVFJMX1RYX1JE WV9JTlQpOworICAgIG12ZWJ1MzcwMF93cml0ZSh1YXJ0LCBVQVJUX0NUUkxfUkVHLCByZWcpOwor fQorCitzdGF0aWMgdm9pZCBtdmVidTM3MDBfdWFydF9zdXNwZW5kKHN0cnVjdCBzZXJpYWxfcG9y dCAqcG9ydCkKK3sKKyAgICBCVUcoKTsKK30KKworc3RhdGljIHZvaWQgbXZlYnUzNzAwX3VhcnRf cmVzdW1lKHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkKK3sKKyAgICBCVUcoKTsKK30KKworc3Rh dGljIHZvaWQgbXZlYnUzNzAwX3VhcnRfcHV0YyhzdHJ1Y3Qgc2VyaWFsX3BvcnQgKnBvcnQsIGNo YXIgYykKK3sKKyAgICBzdHJ1Y3QgbXZlYnUzNzAwX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0Owor CisgICAgbXZlYnUzNzAwX3dyaXRlKHVhcnQsIFVBUlRfVFhfUkVHLCBjKTsKK30KKworc3RhdGlj IGludCBtdmVidTM3MDBfdWFydF9nZXRjKHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCwgY2hhciAq YykKK3sKKyAgICBzdHJ1Y3QgbXZlYnUzNzAwX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0OworCisg ICAgaWYgKCAhKG12ZWJ1MzcwMF9yZWFkKHVhcnQsIFVBUlRfU1RBVFVTX1JFRykgJiBTVEFUVVNf UlhfUkRZKSApCisgICAgICAgIHJldHVybiAwOworCisgICAgKmMgPSBtdmVidTM3MDBfcmVhZCh1 YXJ0LCBVQVJUX1JYX1JFRykgJiAweGZmOworCisgICAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBp bnQgX19pbml0IG12ZWJ1MzcwMF9pcnEoc3RydWN0IHNlcmlhbF9wb3J0ICpwb3J0KQoreworICAg IHN0cnVjdCBtdmVidTM3MDBfdWFydCAqdWFydCA9IHBvcnQtPnVhcnQ7CisKKyAgICByZXR1cm4g KCAodWFydC0+aXJxID4gMCkgPyB1YXJ0LT5pcnEgOiAtMSApOworfQorCitzdGF0aWMgY29uc3Qg c3RydWN0IHZ1YXJ0X2luZm8gKm12ZWJ1MzcwMF92dWFydF9pbmZvKHN0cnVjdCBzZXJpYWxfcG9y dCAqcG9ydCkKK3sKKyAgICBzdHJ1Y3QgbXZlYnUzNzAwX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0 OworCisgICAgcmV0dXJuICZ1YXJ0LT52dWFydDsKK30KKworc3RhdGljIHZvaWQgbXZlYnUzNzAw X3VhcnRfc3RvcF90eChzdHJ1Y3Qgc2VyaWFsX3BvcnQgKnBvcnQpCit7CisgICAgc3RydWN0IG12 ZWJ1MzcwMF91YXJ0ICp1YXJ0ID0gcG9ydC0+dWFydDsKKyAgICB1aW50MzJfdCByZWc7CisKKyAg ICByZWcgPSBtdmVidTM3MDBfcmVhZCh1YXJ0LCBVQVJUX0NUUkxfUkVHKTsKKyAgICByZWcgJj0g fkNUUkxfVFhfUkRZX0lOVDsKKyAgICBtdmVidTM3MDBfd3JpdGUodWFydCwgVUFSVF9DVFJMX1JF RywgcmVnKTsKK30KKworc3RhdGljIHZvaWQgbXZlYnUzNzAwX3VhcnRfc3RhcnRfdHgoc3RydWN0 IHNlcmlhbF9wb3J0ICpwb3J0KQoreworICAgIHN0cnVjdCBtdmVidTM3MDBfdWFydCAqdWFydCA9 IHBvcnQtPnVhcnQ7CisgICAgdWludDMyX3QgcmVnOworCisgICAgcmVnID0gbXZlYnUzNzAwX3Jl YWQodWFydCwgVUFSVF9DVFJMX1JFRyk7CisgICAgcmVnIHw9IENUUkxfVFhfUkRZX0lOVDsKKyAg ICBtdmVidTM3MDBfd3JpdGUodWFydCwgVUFSVF9DVFJMX1JFRywgcmVnKTsKK30KKworc3RhdGlj IGludCBtdmVidTM3MDBfdWFydF90eF9yZWFkeShzdHJ1Y3Qgc2VyaWFsX3BvcnQgKnBvcnQpCit7 CisgICAgc3RydWN0IG12ZWJ1MzcwMF91YXJ0ICp1YXJ0ID0gcG9ydC0+dWFydDsKKyAgICB1aW50 MzJfdCByZWc7CisKKyAgICByZWcgPSBtdmVidTM3MDBfcmVhZCh1YXJ0LCBVQVJUX1NUQVRVU19S RUcpOworCisgICAgcmV0dXJuICggcmVnICYgU1RBVFVTX1RYRklGT19FTVAgPyBUWF9GSUZPX1NJ WkUgOiAwICk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdWFydF9kcml2ZXIgX19yZWFkX21vc3RseSBt dmVidTM3MDBfdWFydF9kcml2ZXIgPSB7CisgICAgLmluaXRfcHJlaXJxICA9IG12ZWJ1MzcwMF91 YXJ0X2luaXRfcHJlaXJxLAorICAgIC5pbml0X3Bvc3RpcnEgPSBtdmVidTM3MDBfdWFydF9pbml0 X3Bvc3RpcnEsCisgICAgLmVuZGJvb3QgICAgICA9IE5VTEwsCisgICAgLnN1c3BlbmQgICAgICA9 IG12ZWJ1MzcwMF91YXJ0X3N1c3BlbmQsCisgICAgLnJlc3VtZSAgICAgICA9IG12ZWJ1MzcwMF91 YXJ0X3Jlc3VtZSwKKyAgICAucHV0YyAgICAgICAgID0gbXZlYnUzNzAwX3VhcnRfcHV0YywKKyAg ICAuZ2V0YyAgICAgICAgID0gbXZlYnUzNzAwX3VhcnRfZ2V0YywKKyAgICAudHhfcmVhZHkgICAg ID0gbXZlYnUzNzAwX3VhcnRfdHhfcmVhZHksCisgICAgLnN0b3BfdHggICAgICA9IG12ZWJ1Mzcw MF91YXJ0X3N0b3BfdHgsCisgICAgLnN0YXJ0X3R4ICAgICA9IG12ZWJ1MzcwMF91YXJ0X3N0YXJ0 X3R4LAorICAgIC5pcnEgICAgICAgICAgPSBtdmVidTM3MDBfaXJxLAorICAgIC52dWFydF9pbmZv ICAgPSBtdmVidTM3MDBfdnVhcnRfaW5mbywKK307CisKK3N0YXRpYyBpbnQgX19pbml0IG12ZWJ1 X3VhcnRfaW5pdChzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmRldiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmRhdGEpCit7CisgICAgY29uc3QgY2hh ciAqY29uZmlnID0gZGF0YTsKKyAgICBzdHJ1Y3QgbXZlYnUzNzAwX3VhcnQgKnVhcnQ7CisgICAg aW50IHJlczsKKyAgICB1NjQgYWRkciwgc2l6ZTsKKworICAgIGlmICggc3RyY21wKGNvbmZpZywg IiIpICkKKyAgICAgICAgcHJpbnRrKCJXQVJOSU5HOiBVQVJUIGNvbmZpZ3VyYXRpb24gaXMgbm90 IHN1cHBvcnRlZFxuIik7CisKKyAgICB1YXJ0ID0gJm12ZWJ1MzcwMF9jb207CisKKyAgICByZXMg PSBkdF9kZXZpY2VfZ2V0X2FkZHJlc3MoZGV2LCAwLCAmYWRkciwgJnNpemUpOworICAgIGlmICgg cmVzICkKKyAgICB7CisgICAgICAgIHByaW50aygibXZlYnUzNzAwOiBVbmFibGUgdG8gcmV0cmll dmUgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgVUFSVFxuIik7CisgICAgICAgIHJldHVybiByZXM7 CisgICAgfQorCisgICAgcmVzID0gcGxhdGZvcm1fZ2V0X2lycShkZXYsIDApOworICAgIGlmICgg cmVzIDwgMCApCisgICAgeworICAgICAgICBwcmludGsoIm12ZWJ1MzcwMDogVW5hYmxlIHRvIHJl dHJpZXZlIHRoZSBJUlFcbiIpOworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAg ICB1YXJ0LT5pcnEgID0gcmVzOworCisgICAgdWFydC0+cmVncyA9IGlvcmVtYXBfbm9jYWNoZShh ZGRyLCBzaXplKTsKKyAgICBpZiAoICF1YXJ0LT5yZWdzICkKKyAgICB7CisgICAgICAgIHByaW50 aygibXZlYnUzNzAwOiBVbmFibGUgdG8gbWFwIHRoZSBVQVJUIG1lbW9yeVxuIik7CisgICAgICAg IHJldHVybiAtRU5PTUVNOworICAgIH0KKworICAgIHVhcnQtPnZ1YXJ0LmJhc2VfYWRkciA9IGFk ZHI7CisgICAgdWFydC0+dnVhcnQuc2l6ZSA9IHNpemU7CisgICAgdWFydC0+dnVhcnQuZGF0YV9v ZmYgPSBVQVJUX0NUUkxfUkVHOworICAgIHVhcnQtPnZ1YXJ0LnN0YXR1c19vZmYgPSBVQVJUX1NU QVRVU19SRUc7CisgICAgdWFydC0+dnVhcnQuc3RhdHVzID0gU1RBVFVTX1RYX1JEWSB8IFNUQVRV U19SWF9SRFk7CisKKyAgICAvKiBSZWdpc3RlciB3aXRoIGdlbmVyaWMgc2VyaWFsIGRyaXZlci4g Ki8KKyAgICBzZXJpYWxfcmVnaXN0ZXJfdWFydChTRVJITkRfRFRVQVJULCAmbXZlYnUzNzAwX3Vh cnRfZHJpdmVyLCB1YXJ0KTsKKworICAgIGR0X2RldmljZV9zZXRfdXNlZF9ieShkZXYsIERPTUlE X1hFTik7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkdF9kZXZp Y2VfbWF0Y2ggbXZlYnVfZHRfbWF0Y2hbXSBfX2luaXRjb25zdCA9Cit7CisgICAgRFRfTUFUQ0hf Q09NUEFUSUJMRSgibWFydmVsbCxhcm1hZGEtMzcwMC11YXJ0IiksCisgICAgeyAvKiBzZW50aW5l bCAqLyB9LAorfTsKKworRFRfREVWSUNFX1NUQVJUKG12ZWJ1LCAiTWFydmVsbCBBcm1hZGEtMzcw MCBVQVJUIiwgREVWSUNFX1NFUklBTCkKKyAgICAuZHRfbWF0Y2ggPSBtdmVidV9kdF9tYXRjaCwK KyAgICAuaW5pdCA9IG12ZWJ1X3VhcnRfaW5pdCwKK0RUX0RFVklDRV9FTkQKKworLyoKKyAqIExv Y2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMt YmFzaWMtb2Zmc2V0OiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9tdmVidS11YXJ0LmggYi94ZW4vaW5jbHVk ZS9hc20tYXJtL212ZWJ1LXVhcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4wNDA1YjFkCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9tdmVidS11 YXJ0LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIHhlbi9pbmNsdWRlL2FzbS1hcm0vbXZlYnUt dWFydC5oCisgKgorICogQW1pdCBTaW5naCBUb21hciA8YW1pdHRvbWVyMjVAZ21haWwuY29tPgor ICogQ29weXJpZ2h0IChjKSAyMDE4LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg KgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSTV9NVkVCVV9V QVJUX0hfXworI2RlZmluZSBfX0FTTV9BUk1fTVZFQlVfVUFSVF9IX18KKworLyogUmVnaXN0ZXIg b2Zmc2V0cyAqLworI2RlZmluZSBVQVJUX1JYX1JFRyAgICAgICAgICAgICAweDAwCisKKyNkZWZp bmUgVUFSVF9UWF9SRUcgICAgICAgICAgICAgMHgwNAorCisjZGVmaW5lIFVBUlRfQ1RSTF9SRUcg ICAgICAgICAgIDB4MDgKKyNkZWZpbmUgQ1RSTF9UWEZJRk9fUlNUICAgICAgICAgQklUKDE1KQor I2RlZmluZSBDVFJMX1JYRklGT19SU1QgICAgICAgICBCSVQoMTQpCisjZGVmaW5lIENUUkxfVFhf UkRZX0lOVCAgICAgICAgIEJJVCg1KQorI2RlZmluZSBDVFJMX1JYX1JEWV9JTlQgICAgICAgICBC SVQoNCkKKyNkZWZpbmUgQ1RSTF9CUktfREVUX0lOVCAgICAgICAgQklUKDMpCisjZGVmaW5lIENU UkxfRlJNX0VSUl9JTlQgICAgICAgIEJJVCgyKQorI2RlZmluZSBDVFJMX1BBUl9FUlJfSU5UICAg ICAgICBCSVQoMSkKKyNkZWZpbmUgQ1RSTF9PVlJfRVJSX0lOVCAgICAgICAgQklUKDApCisjZGVm aW5lIENUUkxfUlhfSU5UICAgICAgICAgICAgIChDVFJMX0JSS19ERVRfSU5UIHwgQ1RSTF9GUk1f RVJSX0lOVCB8IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENUUkxfUEFSX0VS Ul9JTlQgfCBDVFJMX09WUl9FUlJfSU5UKQorCisjZGVmaW5lIFVBUlRfU1RBVFVTX1JFRyAgICAg ICAgIDB4MGMKKyNkZWZpbmUgU1RBVFVTX1RYRklGT19FTVAgICAgICAgQklUKDEzKQorI2RlZmlu ZSBTVEFUVVNfVFhfUkRZICAgICAgICAgICBCSVQoNSkKKyNkZWZpbmUgU1RBVFVTX1JYX1JEWSAg ICAgICAgICAgQklUKDQpCisjZGVmaW5lIFNUQVRVU19CUktfREVUICAgICAgICAgIEJJVCgzKQor I2RlZmluZSBTVEFUVVNfRlJNX0VSUiAgICAgICAgICBCSVQoMikKKyNkZWZpbmUgU1RBVFVTX1BB Ul9FUlIgICAgICAgICAgQklUKDEpCisjZGVmaW5lIFNUQVRVU19PVlJfRVJSICAgICAgICAgIEJJ VCgwKQorI2RlZmluZSBTVEFUVVNfQlJLX0VSUiAgICAgICAgICAoU1RBVFVTX0JSS19ERVQgfCBT VEFUVVNfRlJNX0VSUiB8IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBVFVT X1BBUl9FUlIgfCBTVEFUVVNfT1ZSX0VSUikKKworI2RlZmluZSBUWF9GSUZPX1NJWkUgICAgICAg ICAgICAzMgorCisjZW5kaWYgLyogX19BU01fQVJNX01WRUJVX1VBUlRfSCAqLworCisvKgorICog TG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICog Yy1iYXNpYy1vZmZzZXQ6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICov Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=