From mboxrd@z Thu Jan 1 00:00:00 1970 From: Amit Singh Tomar Subject: [RFC PATCH] xen/arm: Add MVEBU UART driver for Armada 3700 SoC Date: Sat, 10 Mar 2018 22:14:12 +0530 Message-ID: <1520700252-19385-2-git-send-email-amittomer25@gmail.com> References: <1520700252-19385-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 1euhbu-0001NK-MY for xen-devel@lists.xenproject.org; Sat, 10 Mar 2018 16:44:42 +0000 Received: by mail-pl0-x244.google.com with SMTP id s13-v6so6947327plq.6 for ; Sat, 10 Mar 2018 08:44:40 -0800 (PST) In-Reply-To: <1520700252-19385-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: andre.przywara@arm.com, julien.grall@arm.com, sstabellini@kernel.org, Amit Singh Tomar List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhZGRzIGRyaXZlciBmb3IgVUFSVCBjb250cm9sbGVyIGZvdW5kIG9uIEFybWFk YSAzNzAwIFNvQy4KClRoZXJlIGlzIG5vIHJlZmVyZW5jZSBtYW51YWxzIGF2YWlsYWJsZSBmb3Ig MzcwMCBTb0MgaW4gcHVibGljIGFuZCB0aGlzCmRyaXZlciBpcyBkZXJpdmVkIGJ5IGxvb2tpbmcg YXQgTGludXggZHJpdmVyLgoKU2lnbmVkLW9mZi1ieTogQW1pdCBTaW5naCBUb21hciA8YW1pdHRv bWVyMjVAZ21haWwuY29tPgotLS0KIHhlbi9kcml2ZXJzL2NoYXIvS2NvbmZpZyAgICAgIHwgICA4 ICsrCiB4ZW4vZHJpdmVycy9jaGFyL01ha2VmaWxlICAgICB8ICAgMSArCiB4ZW4vZHJpdmVycy9j aGFyL212ZWJ1LXVhcnQuYyB8IDMxNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMzI0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2Rl IDEwMDY0NCB4ZW4vZHJpdmVycy9jaGFyL212ZWJ1LXVhcnQuYwoKZGlmZiAtLWdpdCBhL3hlbi9k cml2ZXJzL2NoYXIvS2NvbmZpZyBiL3hlbi9kcml2ZXJzL2NoYXIvS2NvbmZpZwppbmRleCBmYjUz ZGQ4Li42OTBlZGE2IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9jaGFyL0tjb25maWcKKysrIGIv eGVuL2RyaXZlcnMvY2hhci9LY29uZmlnCkBAIC0xMiw2ICsxMiwxNCBAQCBjb25maWcgSEFTX0NB REVOQ0VfVUFSVAogCSAgVGhpcyBzZWxlY3RzIHRoZSBYaWxpbnggWnlucSBDYWRlbmNlIFVBUlQu IElmIHlvdSBoYXZlIGEgWGlsaW54IFp5bnEKIAkgIGJhc2VkIGJvYXJkLCBzYXkgWS4KIAorY29u ZmlnIEhBU19NVkVCVQorICAgICAgICBib29sCisgICAgICAgIGRlZmF1bHQgeQorICAgICAgICBk ZXBlbmRzIG9uIEFSTV82NAorICAgICAgICBoZWxwCisgICAgICAgICAgVGhpcyBzZWxlY3RzIHRo ZSBNYXJ2ZWxsIE1WRUJVIFVBUlQuIGlmIHlvdSBoYXZlIGFuIEFSTUFEQSAzNzAwCisgICAgICAg ICAgYmFzZWQgYm9hcmQsIHNheSBZLgorCiBjb25maWcgSEFTX1BMMDExCiAJYm9vbAogCWRlZmF1 bHQgeQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvY2hhci9NYWtlZmlsZSBiL3hlbi9kcml2ZXJz L2NoYXIvTWFrZWZpbGUKaW5kZXggMGQ0OGIxNi4uYjY4YzMzMCAxMDA2NDQKLS0tIGEveGVuL2Ry aXZlcnMvY2hhci9NYWtlZmlsZQorKysgYi94ZW4vZHJpdmVycy9jaGFyL01ha2VmaWxlCkBAIC0z LDYgKzMsNyBAQCBvYmotJChDT05GSUdfSEFTX05TMTY1NTApICs9IG5zMTY1NTAubwogb2JqLSQo Q09ORklHX0hBU19DQURFTkNFX1VBUlQpICs9IGNhZGVuY2UtdWFydC5vCiBvYmotJChDT05GSUdf SEFTX1BMMDExKSArPSBwbDAxMS5vCiBvYmotJChDT05GSUdfSEFTX0VYWU5PUzQyMTApICs9IGV4 eW5vczQyMTAtdWFydC5vCitvYmotJChDT05GSUdfSEFTX01WRUJVKSArPSBtdmVidS11YXJ0Lm8K IG9iai0kKENPTkZJR19IQVNfT01BUCkgKz0gb21hcC11YXJ0Lm8KIG9iai0kKENPTkZJR19IQVNf U0NJRikgKz0gc2NpZi11YXJ0Lm8KIG9iai0kKENPTkZJR19IQVNfRUhDSSkgKz0gZWhjaS1kYmdw Lm8KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL2NoYXIvbXZlYnUtdWFydC5jIGIveGVuL2RyaXZl cnMvY2hhci9tdmVidS11YXJ0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZmRjYzE1MwotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9kcml2ZXJzL2NoYXIvbXZlYnUtdWFydC5j CkBAIC0wLDAgKzEsMzE1IEBACisvKgorICogeGVuL2RyaXZlcnMvY2hhci9tdmVidTM3MDAtdWFy dC5jCisgKgorICogRHJpdmVyIGZvciBNYXJ2ZWxsIE1WRUJVIFVBUlQuCisgKgorICogQW1pdCBT aW5naCBUb21hcjxhbWl0dG9tZXIyNUBnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDIwMTgu CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorICovCisKKyNpbmNsdWRlIDxhc20vZGV2aWNlLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+Cisj aW5jbHVkZSA8eGVuL2NvbnNvbGUuaD4KKyNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KKyNpbmNsdWRl IDx4ZW4vaW5pdC5oPgorI2luY2x1ZGUgPHhlbi9pcnEuaD4KKyNpbmNsdWRlIDx4ZW4vbW0uaD4K KyNpbmNsdWRlIDx4ZW4vc2VyaWFsLmg+CisjaW5jbHVkZSA8eGVuL3NlcmlhbC5oPgorI2luY2x1 ZGUgPHhlbi92bWFwLmg+CisKKyNkZWZpbmUgVUFSVF9SWF9SRUcgICAgICAgICAgICAgMHgwMAor I2RlZmluZSBSQlJfQlJLX0RFVCAgICAgICAgICAgICBCSVQoMTUpCisjZGVmaW5lIFJCUl9GUk1f RVJSX0RFVCAgICAgICAgIEJJVCgxNCkKKyNkZWZpbmUgUkJSX1BBUl9FUlJfREVUICAgICAgICAg QklUKDEzKQorI2RlZmluZSBSQlJfT1ZSX0VSUl9ERVQgICAgICAgICBCSVQoMTIpCisKKyNkZWZp bmUgVUFSVF9UWF9SRUcgICAgICAgICAgICAgMHgwNAorCisjZGVmaW5lIFVBUlRfQ1RSTF9SRUcg ICAgICAgICAgIDB4MDgKKyNkZWZpbmUgQ1RSTF9TT0ZUX1JTVCAgICAgICAgICAgQklUKDMxKQor I2RlZmluZSBDVFJMX1RYRklGT19SU1QgICAgICAgICBCSVQoMTUpCisjZGVmaW5lIENUUkxfUlhG SUZPX1JTVCAgICAgICAgIEJJVCgxNCkKKyNkZWZpbmUgQ1RSTF9TVF9NSVJSX0VOICAgICAgICAg QklUKDEzKQorI2RlZmluZSBDVFJMX0xQQktfRU4gICAgICAgICAgICBCSVQoMTIpCisjZGVmaW5l IENUUkxfU05EX0JSS19TRVEgICAgICAgIEJJVCgxMSkKKyNkZWZpbmUgQ1RSTF9QQVJfRU4gICAg ICAgICAgICAgQklUKDEwKQorI2RlZmluZSBDVFJMX1RXT19TVE9QICAgICAgICAgICBCSVQoOSkK KyNkZWZpbmUgQ1RSTF9UWF9IRkxfSU5UICAgICAgICAgQklUKDgpCisjZGVmaW5lIENUUkxfUlhf SEZMX0lOVCAgICAgICAgIEJJVCg3KQorI2RlZmluZSBDVFJMX1RYX0VNUF9JTlQgICAgICAgICBC SVQoNikKKyNkZWZpbmUgQ1RSTF9UWF9SRFlfSU5UICAgICAgICAgQklUKDUpCisjZGVmaW5lIENU UkxfUlhfUkRZX0lOVCAgICAgICAgIEJJVCg0KQorI2RlZmluZSBDVFJMX0JSS19ERVRfSU5UICAg ICAgICBCSVQoMykKKyNkZWZpbmUgQ1RSTF9GUk1fRVJSX0lOVCAgICAgICAgQklUKDIpCisjZGVm aW5lIENUUkxfUEFSX0VSUl9JTlQgICAgICAgIEJJVCgxKQorI2RlZmluZSBDVFJMX09WUl9FUlJf SU5UICAgICAgICBCSVQoMCkKKyNkZWZpbmUgQ1RSTF9SWF9JTlQgICAgICAgICAgICAgKENUUkxf QlJLX0RFVF9JTlQgfCBDVFJMX0ZSTV9FUlJfSU5UIHwgXAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ1RSTF9QQVJfRVJSX0lOVCB8IENUUkxfT1ZSX0VSUl9JTlQpCisKKyNkZWZp bmUgVUFSVF9TVEFUVVNfUkVHICAgICAgICAgMHgwYworI2RlZmluZSBTVEFUVVNfVFhGSUZPX0VN UCAgICAgICBCSVQoMTMpCisjZGVmaW5lIFNUQVRVU19SWEZJRk9fRU1QICAgICAgIEJJVCgxMikK KyNkZWZpbmUgU1RBVFVTX1RYRklGT19GVUwgICAgICAgQklUKDExKQorI2RlZmluZSBTVEFUVVNf VFhGSUZPX0hGTCAgICAgICBCSVQoMTApCisjZGVmaW5lIFNUQVRVU19SWF9UT0dMICAgICAgICAg IEJJVCg5KQorI2RlZmluZSBTVEFUVVNfUlhGSUZPX0ZVTCAgICAgICBCSVQoOCkKKyNkZWZpbmUg U1RBVFVTX1JYRklGT19IRkwgICAgICAgQklUKDcpCisjZGVmaW5lIFNUQVRVU19UWF9FTVAgICAg ICAgICAgIEJJVCg2KQorI2RlZmluZSBTVEFUVVNfVFhfUkRZICAgICAgICAgICBCSVQoNSkKKyNk ZWZpbmUgU1RBVFVTX1JYX1JEWSAgICAgICAgICAgQklUKDQpCisjZGVmaW5lIFNUQVRVU19CUktf REVUICAgICAgICAgIEJJVCgzKQorI2RlZmluZSBTVEFUVVNfRlJNX0VSUiAgICAgICAgICBCSVQo MikKKyNkZWZpbmUgU1RBVFVTX1BBUl9FUlIgICAgICAgICAgQklUKDEpCisjZGVmaW5lIFNUQVRV U19PVlJfRVJSICAgICAgICAgIEJJVCgwKQorI2RlZmluZSBTVEFUVVNfQlJLX0VSUiAgICAgICAg ICAoU1RBVFVTX0JSS19ERVQgfCBTVEFUVVNfRlJNX0VSUiB8IFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU1RBVFVTX1BBUl9FUlIgfCBTVEFUVVNfT1ZSX0VSUikKKworI2RlZmlu ZSBVQVJUX0JBVURfUkVHICAgICAgICAgICAweDEwCisjZGVmaW5lIFVBUlRfUE9TU1JfUkVHICAg ICAgICAgIDB4MTQKKworI2RlZmluZSBUWF9GSUZPX1NJWkUgICAgICAgICAgICAzMgorI2RlZmlu ZSBSWF9GSUZPX1NJWkUgICAgICAgICAgICA2NAorCitzdGF0aWMgc3RydWN0IG12ZWJ1MzcwMF91 YXJ0IHsKKyAgICB1bnNpZ25lZCBpbnQgYmF1ZCwgZGF0YV9iaXRzLCBwYXJpdHksIHN0b3BfYml0 czsKKyAgICB1bnNpZ25lZCBpbnQgaXJxOworICAgIHZvaWQgX19pb21lbSAqcmVnczsKKyAgICBz dHJ1Y3QgaXJxYWN0aW9uIGlycWFjdGlvbjsKKyAgICBzdHJ1Y3QgdnVhcnRfaW5mbyB2dWFydDsK K30gbXZlYnUzNzAwX2NvbSA9IHswfTsKKworI2RlZmluZSBQQVJJVFlfTk9ORSAgKDApCisKKyNk ZWZpbmUgbXZlYnUzNzAwX3JlYWQodWFydCwgb2ZmKSAgICAgICAgICAgcmVhZGwoKHVhcnQpLT5y ZWdzICsgb2ZmKQorI2RlZmluZSBtdmVidTM3MDBfd3JpdGUodWFydCwgb2ZmLCB2YWwpICAgICB3 cml0ZWwodmFsLCAodWFydC0+cmVncykgKyBvZmYpCisKK3N0YXRpYyB2b2lkIG12ZWJ1MzcwMF91 YXJ0X2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkYXRhLCBzdHJ1Y3QKK2NwdV91c2VyX3JlZ3Mg KnJlZ3MpCit7CisgICAgc3RydWN0IHNlcmlhbF9wb3J0ICpwb3J0ID0gZGF0YTsKKyAgICBzdHJ1 Y3QgbXZlYnUzNzAwX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0OworICAgIHVuc2lnbmVkIGludCBz dCA9IG12ZWJ1MzcwMF9yZWFkKHVhcnQsIFVBUlRfU1RBVFVTX1JFRyk7CisKKyAgICBpZiAoIHN0 ICYgU1RBVFVTX1RYX1JEWSApCisgICAgICAgIHNlcmlhbF90eF9pbnRlcnJ1cHQocG9ydCwgcmVn cyk7CisKKyAgICBpZiAoIHN0ICYgKFNUQVRVU19SWF9SRFkgfCBTVEFUVVNfT1ZSX0VSUiB8IFNU QVRVU19GUk1fRVJSIHwgU1RBVFVTX0JSS19ERVQpICkKKyAgICAgICAgc2VyaWFsX3J4X2ludGVy cnVwdChwb3J0LCByZWdzKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IG12ZWJ1MzcwMF91YXJ0 X2luaXRfcHJlaXJxKHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkKK3sKKyAgICBzdHJ1Y3QgbXZl YnUzNzAwX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0OworICAgIHVuc2lnbmVkIHJldDsKKworICAg IHJldCA9IG12ZWJ1MzcwMF9yZWFkKHVhcnQsIFVBUlRfQ1RSTF9SRUcpOworICAgIHJldCB8PSAo Q1RSTF9UWEZJRk9fUlNUIHwgQ1RSTF9SWEZJRk9fUlNUKTsKKyAgICBtdmVidTM3MDBfd3JpdGUo dWFydCwgVUFSVF9DVFJMX1JFRywgcmV0KTsKKworICAgIC8qIEJlZm9yZSB3ZSBtYWtlIElSUSBy ZXF1ZXN0LCBDbGVhciB0aGUgZXJyb3IgYml0cyBvZiBzdGF0ZSByZWdpc3RlciAqLworICAgIHJl dCA9IG12ZWJ1MzcwMF9yZWFkKHVhcnQsIFVBUlRfU1RBVFVTX1JFRyk7CisgICAgcmV0IHw9IFNU QVRVU19CUktfRVJSOworICAgIG12ZWJ1MzcwMF93cml0ZSh1YXJ0LCBVQVJUX1NUQVRVU19SRUcs IHJldCk7CisKKyAgICAvKiBDbGVhciBlcnJvciBpbnRlcnJ1cHRzICovCisgICAgbXZlYnUzNzAw X3dyaXRlKHVhcnQsIFVBUlRfQ1RSTF9SRUcsIENUUkxfUlhfSU5UKTsKKworICAgIC8qIERpc2Fi bGUgUngvVHggaW50ZXJydXB0cyAqLworICAgIHJldCA9IG12ZWJ1MzcwMF9yZWFkKHVhcnQsIFVB UlRfQ1RSTF9SRUcpOworICAgIHJldCAmPSB+KENUUkxfUlhfUkRZX0lOVCB8IENUUkxfVFhfUkRZ X0lOVCk7CisgICAgbXZlYnUzNzAwX3dyaXRlKHVhcnQsIFVBUlRfQ1RSTF9SRUcsIHJldCk7Cit9 CisKK3N0YXRpYyB2b2lkIF9faW5pdCBtdmVidTM3MDBfdWFydF9pbml0X3Bvc3RpcnEoc3RydWN0 IHNlcmlhbF9wb3J0ICpwb3J0KQoreworICAgIHN0cnVjdCBtdmVidTM3MDBfdWFydCAqdWFydCA9 IHBvcnQtPnVhcnQ7CisgICAgaW50IHJldDsKKworICAgIGlmICggdWFydC0+aXJxID4gMCApCisg ICAgeworICAgICAgICB1YXJ0LT5pcnFhY3Rpb24uaGFuZGxlciA9IG12ZWJ1MzcwMF91YXJ0X2lu dGVycnVwdDsKKyAgICAgICAgdWFydC0+aXJxYWN0aW9uLm5hbWUgICAgPSAibXZlYnUzNzAwX3Vh cnQiOworICAgICAgICB1YXJ0LT5pcnFhY3Rpb24uZGV2X2lkICA9IHBvcnQ7CisgICAgfQorCisg ICAgaWYgKCAocmV0ID0gc2V0dXBfaXJxKHVhcnQtPmlycSwgMCwgJnVhcnQtPmlycWFjdGlvbikp ICE9IDAgKQorICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsICJGYWlsZWQgdG8gYWxsb2NhdGVk IG12ZWJ1MzcwMF91YXJ0IElSUSAlZFxuIiwKKyAgICAgICAgICAgICAgICB1YXJ0LT5pcnEpOwor CisgICAgLyogTWFrZSBzdXJlIFJ4L1R4IGludGVycnVwdHMgYXJlIGVuYWJsZWQgbm93ICovCisg ICAgcmV0ID0gbXZlYnUzNzAwX3JlYWQodWFydCwgVUFSVF9DVFJMX1JFRyk7CisgICAgcmV0IHw9 IChDVFJMX1JYX1JEWV9JTlQgfCBDVFJMX1RYX1JEWV9JTlQpOworICAgIG12ZWJ1MzcwMF93cml0 ZSh1YXJ0LCBVQVJUX0NUUkxfUkVHLCByZXQpOworfQorCitzdGF0aWMgdm9pZCBtdmVidTM3MDBf dWFydF9zdXNwZW5kKHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkKK3sKKyAgICBCVUcoKTsKK30K Kworc3RhdGljIHZvaWQgbXZlYnUzNzAwX3VhcnRfcmVzdW1lKHN0cnVjdCBzZXJpYWxfcG9ydCAq cG9ydCkKK3sKKyAgICBCVUcoKTsKK30KKworc3RhdGljIHZvaWQgbXZlYnUzNzAwX3VhcnRfcHV0 YyhzdHJ1Y3Qgc2VyaWFsX3BvcnQgKnBvcnQsIGNoYXIgYykKK3sKKyAgICBzdHJ1Y3QgbXZlYnUz NzAwX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0OworCisgICAgbXZlYnUzNzAwX3dyaXRlKHVhcnQs IFVBUlRfVFhfUkVHLCBjKTsKK30KKworc3RhdGljIGludCBtdmVidTM3MDBfdWFydF9nZXRjKHN0 cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCwgY2hhciAqYykKK3sKKyAgICBzdHJ1Y3QgbXZlYnUzNzAw X3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0OworCisgICAgaWYgKCAhKG12ZWJ1MzcwMF9yZWFkKHVh cnQsIFVBUlRfU1RBVFVTX1JFRykgJiBTVEFUVVNfUlhfUkRZKSApCisgICAgICAgIHJldHVybiAw OworCisgICAgKmMgPSBtdmVidTM3MDBfcmVhZCh1YXJ0LCBVQVJUX1JYX1JFRykgJiAweGZmOwor CisgICAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IG12ZWJ1MzcwMF9pcnEoc3Ry dWN0IHNlcmlhbF9wb3J0ICpwb3J0KQoreworICAgIHN0cnVjdCBtdmVidTM3MDBfdWFydCAqdWFy dCA9IHBvcnQtPnVhcnQ7CisKKyAgICByZXR1cm4gKCAodWFydC0+aXJxID4gMCkgPyB1YXJ0LT5p cnEgOiAtMSApOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHZ1YXJ0X2luZm8gKm12ZWJ1Mzcw MF92dWFydF9pbmZvKHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkKK3sKKyAgICBzdHJ1Y3QgbXZl YnUzNzAwX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0OworCisgICAgcmV0dXJuICZ1YXJ0LT52dWFy dDsKK30KKworc3RhdGljIHZvaWQgbXZlYnUzNzAwX3VhcnRfc3RvcF90eChzdHJ1Y3Qgc2VyaWFs X3BvcnQgKnBvcnQpCit7CisgICAgc3RydWN0IG12ZWJ1MzcwMF91YXJ0ICp1YXJ0ID0gcG9ydC0+ dWFydDsKKyAgICB1bnNpZ25lZCBpbnQgY3RsOworCisgICAgY3RsID0gbXZlYnUzNzAwX3JlYWQo dWFydCwgVUFSVF9DVFJMX1JFRyk7CisgICAgY3RsICY9IH5DVFJMX1RYX1JEWV9JTlQ7CisgICAg bXZlYnUzNzAwX3dyaXRlKHVhcnQsIFVBUlRfQ1RSTF9SRUcsIGN0bCk7Cit9CisKK3N0YXRpYyB2 b2lkIG12ZWJ1MzcwMF91YXJ0X3N0YXJ0X3R4KHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkKK3sK KyAgICBzdHJ1Y3QgbXZlYnUzNzAwX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0OworICAgIHVuc2ln bmVkIGludCBjdGw7CisKKyAgICBjdGwgPSBtdmVidTM3MDBfcmVhZCh1YXJ0LCBVQVJUX0NUUkxf UkVHKTsKKyAgICBjdGwgfD0gQ1RSTF9UWF9SRFlfSU5UOworICAgIG12ZWJ1MzcwMF93cml0ZSh1 YXJ0LCBVQVJUX0NUUkxfUkVHLCBjdGwpOworfQorCitzdGF0aWMgaW50IG12ZWJ1MzcwMF91YXJ0 X3R4X3JlYWR5KHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkKK3sKKyAgICBzdHJ1Y3QgbXZlYnUz NzAwX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0OworCisgICAgcmV0dXJuICggbXZlYnUzNzAwX3Jl YWQodWFydCwgVUFSVF9TVEFUVVNfUkVHKSAmIFNUQVRVU19UWEZJRk9fRU1QID8KKyAgICAgICAg ICAgICBUWF9GSUZPX1NJWkUgOiAwICk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdWFydF9kcml2ZXIg X19yZWFkX21vc3RseSBtdmVidTM3MDBfdWFydF9kcml2ZXIgPSB7CisgICAgLmluaXRfcHJlaXJx ICA9IG12ZWJ1MzcwMF91YXJ0X2luaXRfcHJlaXJxLAorICAgIC5pbml0X3Bvc3RpcnEgPSBtdmVi dTM3MDBfdWFydF9pbml0X3Bvc3RpcnEsCisgICAgLmVuZGJvb3QgICAgICA9IE5VTEwsCisgICAg LnN1c3BlbmQgICAgICA9IG12ZWJ1MzcwMF91YXJ0X3N1c3BlbmQsCisgICAgLnJlc3VtZSAgICAg ICA9IG12ZWJ1MzcwMF91YXJ0X3Jlc3VtZSwKKyAgICAucHV0YyAgICAgICAgID0gbXZlYnUzNzAw X3VhcnRfcHV0YywKKyAgICAuZ2V0YyAgICAgICAgID0gbXZlYnUzNzAwX3VhcnRfZ2V0YywKKyAg ICAudHhfcmVhZHkgICAgID0gbXZlYnUzNzAwX3VhcnRfdHhfcmVhZHksCisgICAgLnN0b3BfdHgg ICAgICA9IG12ZWJ1MzcwMF91YXJ0X3N0b3BfdHgsCisgICAgLnN0YXJ0X3R4ICAgICA9IG12ZWJ1 MzcwMF91YXJ0X3N0YXJ0X3R4LAorICAgIC5pcnEgICAgICAgICAgPSBtdmVidTM3MDBfaXJxLAor ICAgIC52dWFydF9pbmZvICAgPSBtdmVidTM3MDBfdnVhcnRfaW5mbywKK307CisKK3N0YXRpYyBp bnQgX19pbml0IG12ZWJ1X3VhcnRfaW5pdChzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmRldiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmRhdGEpCit7 CisgICAgY29uc3QgY2hhciAqY29uZmlnID0gZGF0YTsKKyAgICBzdHJ1Y3QgbXZlYnUzNzAwX3Vh cnQgKnVhcnQ7CisgICAgaW50IHJlczsKKyAgICB1NjQgYWRkciwgc2l6ZTsKKworICAgIGlmICgg c3RyY21wKGNvbmZpZywgIiIpICkKKyAgICAgICAgcHJpbnRrKCJXQVJOSU5HOiBVQVJUIGNvbmZp Z3VyYXRpb24gaXMgbm90IHN1cHBvcnRlZFxuIik7CisKKyAgICB1YXJ0ID0gJm12ZWJ1MzcwMF9j b207CisKKyAgICByZXMgPSBkdF9kZXZpY2VfZ2V0X2FkZHJlc3MoZGV2LCAwLCAmYWRkciwgJnNp emUpOworICAgIGlmICggcmVzICkKKyAgICB7CisgICAgICAgIHByaW50aygibXZlYnUzNzAwOiBV bmFibGUgdG8gcmV0cmlldmUgdGhlIGJhc2UiCisgICAgICAgICAgICAgICAiIGFkZHJlc3Mgb2Yg dGhlIFVBUlRcbiIpOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKworICAgIHJlcyA9IHBs YXRmb3JtX2dldF9pcnEoZGV2LCAwKTsKKyAgICBpZiAoIHJlcyA8IDAgKQorICAgIHsKKyAgICAg ICAgcHJpbnRrKCJtdmVidTM3MDA6IFVuYWJsZSB0byByZXRyaWV2ZSB0aGUgSVJRXG4iKTsKKyAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAgdWFydC0+aXJxICA9IHJlczsKKyAg ICB1YXJ0LT5iYXVkID0gQkFVRF9BVVRPOworICAgIHVhcnQtPmRhdGFfYml0cyA9IDg7CisgICAg dWFydC0+cGFyaXR5ID0gUEFSSVRZX05PTkU7CisgICAgdWFydC0+c3RvcF9iaXRzID0gMTsKKwor ICAgIHVhcnQtPnJlZ3MgPSBpb3JlbWFwX25vY2FjaGUoYWRkciwgc2l6ZSk7CisgICAgaWYgKCAh dWFydC0+cmVncyApCisgICAgeworICAgICAgICBwcmludGsoIm12ZWJ1MzcwMDogVW5hYmxlIHRv IG1hcCB0aGUgVUFSVCBtZW1vcnlcbiIpOworICAgICAgICByZXR1cm4gLUVOT01FTTsKKyAgICB9 CisKKyAgICB1YXJ0LT52dWFydC5iYXNlX2FkZHIgPSBhZGRyOworICAgIHVhcnQtPnZ1YXJ0LnNp emUgPSBzaXplOworICAgIHVhcnQtPnZ1YXJ0LmRhdGFfb2ZmID0gVUFSVF9DVFJMX1JFRzsKKyAg ICB1YXJ0LT52dWFydC5zdGF0dXNfb2ZmID0gVUFSVF9TVEFUVVNfUkVHOworICAgIHVhcnQtPnZ1 YXJ0LnN0YXR1cyA9IFNUQVRVU19UWF9SRFkgfCBTVEFUVVNfUlhfUkRZOworCisgICAgLyogUmVn aXN0ZXIgd2l0aCBnZW5lcmljIHNlcmlhbCBkcml2ZXIuICovCisgICAgc2VyaWFsX3JlZ2lzdGVy X3VhcnQoU0VSSE5EX0RUVUFSVCwgJm12ZWJ1MzcwMF91YXJ0X2RyaXZlciwgdWFydCk7CisKKyAg ICBkdF9kZXZpY2Vfc2V0X3VzZWRfYnkoZGV2LCBET01JRF9YRU4pOworCisgICAgcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX21hdGNoIG12ZWJ1X2R0X21hdGNo W10gX19pbml0Y29uc3QgPQoreworICAgIERUX01BVENIX0NPTVBBVElCTEUoIm1hcnZlbGwsYXJt YWRhLTM3MDAtdWFydCIpLAorICAgIHsgLyogc2VudGluZWwgKi8gfSwKK307CisKK0RUX0RFVklD RV9TVEFSVChtdmVidSwgIk1hcnZlbGwgQXJtYWRhLTM3MDAgVUFSVCIsIERFVklDRV9TRVJJQUwp CisgICAgLmR0X21hdGNoID0gbXZlYnVfZHRfbWF0Y2gsCisgICAgLmluaXQgPSBtdmVidV91YXJ0 X2luaXQsCitEVF9ERVZJQ0VfRU5ECisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2Rl OiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogaW5k ZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KLS0gCjEuOS4xCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0 Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==