From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Tyshchenko Subject: [PATCH v1 2/4] xen/arm: drivers: scif: Add support for SCIFA compatible UARTs Date: Mon, 6 Aug 2018 21:35:50 +0300 Message-ID: <1533580552-938-3-git-send-email-olekstysh@gmail.com> References: <1533580552-938-1-git-send-email-olekstysh@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 1fmkMV-0003h4-UW for xen-devel@lists.xenproject.org; Mon, 06 Aug 2018 18:36:12 +0000 Received: by mail-lj1-x241.google.com with SMTP id p6-v6so11428891ljc.5 for ; Mon, 06 Aug 2018 11:36:09 -0700 (PDT) In-Reply-To: <1533580552-938-1-git-send-email-olekstysh@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: Artem_Mygaiev@epam.com, olekstysh@gmail.com, Julien Grall , Stefano Stabellini , Oleksandr Tyshchenko List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29t PgoKRXh0ZW5kIGV4aXN0aW5nIGRyaXZlciB0byBiZSBhYmxlIHRvIGhhbmRsZSBTQ0lGQSBpbnRl cmZhY2UgYXMgd2VsbC4KU0NJRiBhbmQgU0NJRkEgaGF2ZSBsb3QgaW4gY29tbW9uLCB0aG91Z2gg U0NJRkEgaGFzIGRpZmZlcmVudApvZmZzZXRzIGFuZCBiaXRzIGZvciBzb21lIHJlZ2lzdGVycy4K ClVzZSBjb21wYXRpYmxlIHN0cmluZyB0byByZWNvZ25pemUgd2hhdCBpbnRlcmZhY2UgaXMgcHJl c2VudApvbiBhIHRhcmdldCBib2FyZC4KClNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBUeXNoY2hl bmtvIDxvbGVrc2FuZHJfdHlzaGNoZW5rb0BlcGFtLmNvbT4KQ0M6IFN0ZWZhbm8gU3RhYmVsbGlu aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxs QGFybS5jb20+Ci0tLQogeGVuL2RyaXZlcnMvY2hhci9zY2lmLXVhcnQuYyAgICB8IDEyOSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20tYXJt L3NjaWYtdWFydC5oIHwgIDQ0ICsrKysrKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzOCBp bnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9j aGFyL3NjaWYtdWFydC5jIGIveGVuL2RyaXZlcnMvY2hhci9zY2lmLXVhcnQuYwppbmRleCA0NjVm YjM0Li5kMWViNzEzIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9jaGFyL3NjaWYtdWFydC5jCisr KyBiL3hlbi9kcml2ZXJzL2NoYXIvc2NpZi11YXJ0LmMKQEAgLTEsNyArMSw3IEBACiAvKgogICog eGVuL2RyaXZlcnMvY2hhci9zY2lmLXVhcnQuYwogICoKLSAqIERyaXZlciBmb3IgU0NJRiAoU2Vy aWFsIGNvbW11bmljYXRpb24gaW50ZXJmYWNlIHdpdGggRklGTykKKyAqIERyaXZlciBmb3IgU0NJ RihBKSAoU2VyaWFsIGNvbW11bmljYXRpb24gaW50ZXJmYWNlIHdpdGggRklGTyAoQSkpCiAgKiBj b21wYXRpYmxlIFVBUlQuCiAgKgogICogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kci50 eXNoY2hlbmtvQGdsb2JhbGxvZ2ljLmNvbT4KQEAgLTQwLDggKzQwLDU3IEBAIHN0YXRpYyBzdHJ1 Y3Qgc2NpZl91YXJ0IHsKICAgICBjaGFyIF9faW9tZW0gKnJlZ3M7CiAgICAgc3RydWN0IGlycWFj dGlvbiBpcnFhY3Rpb247CiAgICAgc3RydWN0IHZ1YXJ0X2luZm8gdnVhcnQ7CisgICAgY29uc3Qg c3RydWN0IHBvcnRfcGFyYW1zICpwYXJhbXM7CiB9IHNjaWZfY29tID0gezB9OwogCitlbnVtCit7 CisgICAgU0NJRl9QT1JULAorICAgIFNDSUZBX1BPUlQsCisgICAgTlJfUE9SVFMsCit9OworCitz dHJ1Y3QgcG9ydF9wYXJhbXMKK3sKKyAgICB1bnNpZ25lZCBpbnQgc3RhdHVzX3JlZzsKKyAgICB1 bnNpZ25lZCBpbnQgdHhfZmlmb19yZWc7CisgICAgdW5zaWduZWQgaW50IHJ4X2ZpZm9fcmVnOwor ICAgIHVuc2lnbmVkIGludCBvdmVycnVuX3JlZzsKKyAgICB1bnNpZ25lZCBpbnQgb3ZlcnJ1bl9t YXNrOworICAgIHVuc2lnbmVkIGludCBlcnJvcl9tYXNrOworICAgIHVuc2lnbmVkIGludCBpcnFf ZmxhZ3M7CisgICAgdW5zaWduZWQgaW50IGZpZm9fc2l6ZTsKK307CisKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgcG9ydF9wYXJhbXMgcG9ydF9wYXJhbXNbTlJfUE9SVFNdID0KK3sKKyAgICBbU0NJRl9Q T1JUXSA9CisgICAgeworICAgICAgICAuc3RhdHVzX3JlZyAgID0gU0NJRl9TQ0ZTUiwKKyAgICAg ICAgLnR4X2ZpZm9fcmVnICA9IFNDSUZfU0NGVERSLAorICAgICAgICAucnhfZmlmb19yZWcgID0g U0NJRl9TQ0ZSRFIsCisgICAgICAgIC5vdmVycnVuX3JlZyAgPSBTQ0lGX1NDTFNSLAorICAgICAg ICAub3ZlcnJ1bl9tYXNrID0gU0NMU1JfT1JFUiwKKyAgICAgICAgLmVycm9yX21hc2sgICA9IFND RlNSX1BFUiB8IFNDRlNSX0ZFUiB8IFNDRlNSX0JSSyB8IFNDRlNSX0VSLAorICAgICAgICAuaXJx X2ZsYWdzICAgID0gU0NTQ1JfUklFIHwgU0NTQ1JfVElFIHwgU0NTQ1JfUkVJRSwKKyAgICAgICAg LmZpZm9fc2l6ZSAgICA9IDE2LAorICAgIH0sCisKKyAgICBbU0NJRkFfUE9SVF0gPQorICAgIHsK KyAgICAgICAgLnN0YXR1c19yZWcgICA9IFNDSUZBX1NDQVNTUiwKKyAgICAgICAgLnR4X2ZpZm9f cmVnICA9IFNDSUZBX1NDQUZURFIsCisgICAgICAgIC5yeF9maWZvX3JlZyAgPSBTQ0lGQV9TQ0FG UkRSLAorICAgICAgICAub3ZlcnJ1bl9yZWcgID0gU0NJRkFfU0NBU1NSLAorICAgICAgICAub3Zl cnJ1bl9tYXNrID0gU0NBU1NSX09SRVIsCisgICAgICAgIC5lcnJvcl9tYXNrICAgPSBTQ0FTU1Jf UEVSIHwgU0NBU1NSX0ZFUiB8IFNDQVNTUl9CUksgfCBTQ0FTU1JfRVIgfAorICAgICAgICAgICAg ICAgICAgICAgICAgU0NBU1NSX09SRVIsCisgICAgICAgIC5pcnFfZmxhZ3MgICAgPSBTQ0FTQ1Jf UklFIHwgU0NBU0NSX1RJRSB8IFNDQVNDUl9EUklFIHwgU0NBU0NSX0VSSUUgfAorICAgICAgICAg ICAgICAgICAgICAgICAgU0NBU0NSX0JSSUUsCisgICAgICAgIC5maWZvX3NpemUgICAgPSA2NCwK KyAgICB9LAorfTsKKwogc3RhdGljIHZvaWQgc2NpZl91YXJ0X2ludGVycnVwdChpbnQgaXJxLCB2 b2lkICpkYXRhLCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKICAgICBzdHJ1Y3Qgc2Vy aWFsX3BvcnQgKnBvcnQgPSBkYXRhOwpAQCAtNDksNyArOTgsNyBAQCBzdGF0aWMgdm9pZCBzY2lm X3VhcnRfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRhdGEsIHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKQogICAgIHVpbnQxNl90IHN0YXR1cywgY3RybDsKIAogICAgIGN0cmwgPSBzY2lmX3Jl YWR3KHVhcnQsIFNDSUZfU0NTQ1IpOwotICAgIHN0YXR1cyA9IHNjaWZfcmVhZHcodWFydCwgU0NJ Rl9TQ0ZTUikgJiB+U0NGU1JfVEVORDsKKyAgICBzdGF0dXMgPSBzY2lmX3JlYWR3KHVhcnQsIHVh cnQtPnBhcmFtcy0+c3RhdHVzX3JlZykgJiB+U0NGU1JfVEVORDsKICAgICAvKiBJZ25vcmUgbmV4 dCBmbGFnIGlmIFRYIEludGVycnVwdCBpcyBkaXNhYmxlZCAqLwogICAgIGlmICggIShjdHJsICYg U0NTQ1JfVElFKSApCiAgICAgICAgIHN0YXR1cyAmPSB+U0NGU1JfVERGRTsKQEAgLTY1LDEzICsx MTQsMTkgQEAgc3RhdGljIHZvaWQgc2NpZl91YXJ0X2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpk YXRhLCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgICAgIHNlcmlhbF9yeF9p bnRlcnJ1cHQocG9ydCwgcmVncyk7CiAKICAgICAgICAgLyogRXJyb3IgSW50ZXJydXB0ICovCi0g ICAgICAgIGlmICggc3RhdHVzICYgU0NJRl9FUlJPUlMgKQotICAgICAgICAgICAgc2NpZl93cml0 ZXcodWFydCwgU0NJRl9TQ0ZTUiwgflNDSUZfRVJST1JTKTsKLSAgICAgICAgaWYgKCBzY2lmX3Jl YWR3KHVhcnQsIFNDSUZfU0NMU1IpICYgU0NMU1JfT1JFUiApCi0gICAgICAgICAgICBzY2lmX3dy aXRldyh1YXJ0LCBTQ0lGX1NDTFNSLCAwKTsKKyAgICAgICAgaWYgKCBzdGF0dXMgJiB1YXJ0LT5w YXJhbXMtPmVycm9yX21hc2sgKQorICAgICAgICAgICAgc2NpZl93cml0ZXcodWFydCwgdWFydC0+ cGFyYW1zLT5zdGF0dXNfcmVnLAorICAgICAgICAgICAgICAgICAgICAgICAgfnVhcnQtPnBhcmFt cy0+ZXJyb3JfbWFzayk7CisgICAgICAgIGlmICggdWFydC0+cGFyYW1zLT5vdmVycnVuX3JlZyAh PSB1YXJ0LT5wYXJhbXMtPnN0YXR1c19yZWcgKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo IHNjaWZfcmVhZHcodWFydCwgdWFydC0+cGFyYW1zLT5vdmVycnVuX3JlZykgJgorICAgICAgICAg ICAgICAgICB1YXJ0LT5wYXJhbXMtPm92ZXJydW5fbWFzayApCisgICAgICAgICAgICAgICAgc2Np Zl93cml0ZXcodWFydCwgdWFydC0+cGFyYW1zLT5vdmVycnVuX3JlZywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICB+dWFydC0+cGFyYW1zLT5vdmVycnVuX21hc2spOworICAgICAgICB9CiAK ICAgICAgICAgY3RybCA9IHNjaWZfcmVhZHcodWFydCwgU0NJRl9TQ1NDUik7Ci0gICAgICAgIHN0 YXR1cyA9IHNjaWZfcmVhZHcodWFydCwgU0NJRl9TQ0ZTUikgJiB+U0NGU1JfVEVORDsKKyAgICAg ICAgc3RhdHVzID0gc2NpZl9yZWFkdyh1YXJ0LCB1YXJ0LT5wYXJhbXMtPnN0YXR1c19yZWcpICYg flNDRlNSX1RFTkQ7CiAgICAgICAgIC8qIElnbm9yZSBuZXh0IGZsYWcgaWYgVFggSW50ZXJydXB0 IGlzIGRpc2FibGVkICovCiAgICAgICAgIGlmICggIShjdHJsICYgU0NTQ1JfVElFKSApCiAgICAg ICAgICAgICBzdGF0dXMgJj0gflNDRlNSX1RERkU7CkBAIC04Niw3ICsxNDEsNyBAQCBzdGF0aWMg dm9pZCBfX2luaXQgc2NpZl91YXJ0X2luaXRfcHJlaXJxKHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9y dCkKICAgICAgKiBXYWl0IHVudGlsIGxhc3QgYml0IGhhcyBiZWVuIHRyYW5zbWl0dGVkLiBUaGlz IGlzIG5lZWRlZCBmb3IgYSBzbW9vdGgKICAgICAgKiB0cmFuc2l0aW9uIHdoZW4gd2UgY29tZSBm cm9tIGVhcmx5IHByaW50awogICAgICAqLwotICAgIHdoaWxlICggIShzY2lmX3JlYWR3KHVhcnQs IFNDSUZfU0NGU1IpICYgU0NGU1JfVEVORCkgKTsKKyAgICB3aGlsZSAoICEoc2NpZl9yZWFkdyh1 YXJ0LCB1YXJ0LT5wYXJhbXMtPnN0YXR1c19yZWcpICYgU0NGU1JfVEVORCkgKTsKIAogICAgIC8q IERpc2FibGUgVFgvUlggcGFydHMgYW5kIGFsbCBpbnRlcnJ1cHRzICovCiAgICAgc2NpZl93cml0 ZXcodWFydCwgU0NJRl9TQ1NDUiwgMCk7CkBAIC05NSwxMCArMTUwLDEzIEBAIHN0YXRpYyB2b2lk IF9faW5pdCBzY2lmX3VhcnRfaW5pdF9wcmVpcnEoc3RydWN0IHNlcmlhbF9wb3J0ICpwb3J0KQog ICAgIHNjaWZfd3JpdGV3KHVhcnQsIFNDSUZfU0NGQ1IsIFNDRkNSX1JGUlNUIHwgU0NGQ1JfVEZS U1QpOwogCiAgICAgLyogQ2xlYXIgYWxsIGVycm9ycyBhbmQgZmxhZ3MgKi8KLSAgICBzY2lmX3Jl YWR3KHVhcnQsIFNDSUZfU0NGU1IpOwotICAgIHNjaWZfd3JpdGV3KHVhcnQsIFNDSUZfU0NGU1Is IDApOwotICAgIHNjaWZfcmVhZHcodWFydCwgU0NJRl9TQ0xTUik7Ci0gICAgc2NpZl93cml0ZXco dWFydCwgU0NJRl9TQ0xTUiwgMCk7CisgICAgc2NpZl9yZWFkdyh1YXJ0LCB1YXJ0LT5wYXJhbXMt PnN0YXR1c19yZWcpOworICAgIHNjaWZfd3JpdGV3KHVhcnQsIHVhcnQtPnBhcmFtcy0+c3RhdHVz X3JlZywgMCk7CisgICAgaWYgKCB1YXJ0LT5wYXJhbXMtPm92ZXJydW5fcmVnICE9IHVhcnQtPnBh cmFtcy0+c3RhdHVzX3JlZyApCisgICAgeworICAgICAgICBzY2lmX3JlYWR3KHVhcnQsIHVhcnQt PnBhcmFtcy0+b3ZlcnJ1bl9yZWcpOworICAgICAgICBzY2lmX3dyaXRldyh1YXJ0LCB1YXJ0LT5w YXJhbXMtPm92ZXJydW5fcmVnLCAwKTsKKyAgICB9CiAKICAgICAvKiBTZXR1cCB0cmlnZ2VyIGxl dmVsIGZvciBUWC9SWCBGSUZPcyAqLwogICAgIHNjaWZfd3JpdGV3KHVhcnQsIFNDSUZfU0NGQ1Is IFNDRkNSX1JUUkcxMSB8IFNDRkNSX1RUUkcxMSk7CkBAIC0xMjIsMTQgKzE4MCwxOSBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgc2NpZl91YXJ0X2luaXRfcG9zdGlycShzdHJ1Y3Qgc2VyaWFsX3BvcnQg KnBvcnQpCiAgICAgICAgICAgICAgICAgdWFydC0+aXJxKTsKIAogICAgIC8qIENsZWFyIGFsbCBl cnJvcnMgKi8KLSAgICBpZiAoIHNjaWZfcmVhZHcodWFydCwgU0NJRl9TQ0ZTUikgJiBTQ0lGX0VS Uk9SUyApCi0gICAgICAgIHNjaWZfd3JpdGV3KHVhcnQsIFNDSUZfU0NGU1IsIH5TQ0lGX0VSUk9S Uyk7Ci0gICAgaWYgKCBzY2lmX3JlYWR3KHVhcnQsIFNDSUZfU0NMU1IpICYgU0NMU1JfT1JFUiAp Ci0gICAgICAgIHNjaWZfd3JpdGV3KHVhcnQsIFNDSUZfU0NMU1IsIDApOworICAgIGlmICggc2Np Zl9yZWFkdyh1YXJ0LCB1YXJ0LT5wYXJhbXMtPnN0YXR1c19yZWcpICYgdWFydC0+cGFyYW1zLT5l cnJvcl9tYXNrICkKKyAgICAgICAgc2NpZl93cml0ZXcodWFydCwgdWFydC0+cGFyYW1zLT5zdGF0 dXNfcmVnLCB+dWFydC0+cGFyYW1zLT5lcnJvcl9tYXNrKTsKKyAgICBpZiAoIHVhcnQtPnBhcmFt cy0+b3ZlcnJ1bl9yZWcgIT0gdWFydC0+cGFyYW1zLT5zdGF0dXNfcmVnICkKKyAgICB7CisgICAg ICAgIGlmICggc2NpZl9yZWFkdyh1YXJ0LCB1YXJ0LT5wYXJhbXMtPm92ZXJydW5fcmVnKSAmCisg ICAgICAgICAgICAgdWFydC0+cGFyYW1zLT5vdmVycnVuX21hc2sgKQorICAgICAgICAgICAgc2Np Zl93cml0ZXcodWFydCwgdWFydC0+cGFyYW1zLT5vdmVycnVuX3JlZywKKyAgICAgICAgICAgICAg ICAgICAgICAgIH51YXJ0LT5wYXJhbXMtPm92ZXJydW5fbWFzayk7CisgICAgfQogCiAgICAgLyog RW5hYmxlIFRYL1JYIGFuZCBFcnJvciBJbnRlcnJ1cHRzICAqLwogICAgIHNjaWZfd3JpdGV3KHVh cnQsIFNDSUZfU0NTQ1IsIHNjaWZfcmVhZHcodWFydCwgU0NJRl9TQ1NDUikgfAotICAgICAgICAg ICAgICAgICBTQ1NDUl9USUUgfCBTQ1NDUl9SSUUgfCBTQ1NDUl9SRUlFKTsKKyAgICAgICAgICAg ICAgICB1YXJ0LT5wYXJhbXMtPmlycV9mbGFncyk7CiB9CiAKIHN0YXRpYyB2b2lkIHNjaWZfdWFy dF9zdXNwZW5kKHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkKQEAgLTE0OCwyNCArMjExLDI1IEBA IHN0YXRpYyBpbnQgc2NpZl91YXJ0X3R4X3JlYWR5KHN0cnVjdCBzZXJpYWxfcG9ydCAqcG9ydCkK ICAgICB1aW50MTZfdCBjbnQ7CiAKICAgICAvKiBDaGVjayBmb3IgZW1wdHkgc3BhY2UgaW4gVFgg RklGTyAqLwotICAgIGlmICggIShzY2lmX3JlYWR3KHVhcnQsIFNDSUZfU0NGU1IpICYgU0NGU1Jf VERGRSkgKQorICAgIGlmICggIShzY2lmX3JlYWR3KHVhcnQsIHVhcnQtPnBhcmFtcy0+c3RhdHVz X3JlZykgJiBTQ0ZTUl9UREZFKSApCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgIC8qIENoZWNr IG51bWJlciBvZiBkYXRhIGJ5dGVzIHN0b3JlZCBpbiBUWCBGSUZPICovCiAgICAgY250ID0gc2Np Zl9yZWFkdyh1YXJ0LCBTQ0lGX1NDRkRSKSA+PiA4OwotICAgIEFTU0VSVCggY250ID49IDAgJiYg Y250IDw9IFNDSUZfRklGT19NQVhfU0laRSApOworICAgIEFTU0VSVCggY250ID49IDAgJiYgY250 IDw9IHVhcnQtPnBhcmFtcy0+Zmlmb19zaXplICk7CiAKLSAgICByZXR1cm4gKFNDSUZfRklGT19N QVhfU0laRSAtIGNudCk7CisgICAgcmV0dXJuICh1YXJ0LT5wYXJhbXMtPmZpZm9fc2l6ZSAtIGNu dCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNjaWZfdWFydF9wdXRjKHN0cnVjdCBzZXJpYWxfcG9ydCAq cG9ydCwgY2hhciBjKQogewogICAgIHN0cnVjdCBzY2lmX3VhcnQgKnVhcnQgPSBwb3J0LT51YXJ0 OwogCi0gICAgc2NpZl93cml0ZWIodWFydCwgU0NJRl9TQ0ZURFIsIGMpOworICAgIHNjaWZfd3Jp dGViKHVhcnQsIHVhcnQtPnBhcmFtcy0+dHhfZmlmb19yZWcsIGMpOwogICAgIC8qIENsZWFyIHJl cXVpcmVkIFRYIGZsYWdzICovCi0gICAgc2NpZl93cml0ZXcodWFydCwgU0NJRl9TQ0ZTUiwgc2Np Zl9yZWFkdyh1YXJ0LCBTQ0lGX1NDRlNSKSAmCi0gICAgICAgICAgICAgICAgIH4oU0NGU1JfVEVO RCB8IFNDRlNSX1RERkUpKTsKKyAgICBzY2lmX3dyaXRldyh1YXJ0LCB1YXJ0LT5wYXJhbXMtPnN0 YXR1c19yZWcsCisgICAgICAgICAgICAgICAgc2NpZl9yZWFkdyh1YXJ0LCB1YXJ0LT5wYXJhbXMt PnN0YXR1c19yZWcpICYKKyAgICAgICAgICAgICAgICB+KFNDRlNSX1RFTkQgfCBTQ0ZTUl9UREZF KSk7CiB9CiAKIHN0YXRpYyBpbnQgc2NpZl91YXJ0X2dldGMoc3RydWN0IHNlcmlhbF9wb3J0ICpw b3J0LCBjaGFyICpwYykKQEAgLTE3MywxNSArMjM3LDE2IEBAIHN0YXRpYyBpbnQgc2NpZl91YXJ0 X2dldGMoc3RydWN0IHNlcmlhbF9wb3J0ICpwb3J0LCBjaGFyICpwYykKICAgICBzdHJ1Y3Qgc2Np Zl91YXJ0ICp1YXJ0ID0gcG9ydC0+dWFydDsKIAogICAgIC8qIENoZWNrIGZvciBhdmFpbGFibGUg ZGF0YSBieXRlcyBpbiBSWCBGSUZPICovCi0gICAgaWYgKCAhKHNjaWZfcmVhZHcodWFydCwgU0NJ Rl9TQ0ZTUikgJiAoU0NGU1JfUkRGIHwgU0NGU1JfRFIpKSApCisgICAgaWYgKCAhKHNjaWZfcmVh ZHcodWFydCwgdWFydC0+cGFyYW1zLT5zdGF0dXNfcmVnKSAmCisgICAgICAgICAgKFNDRlNSX1JE RiB8IFNDRlNSX0RSKSkgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgICpwYyA9IHNjaWZfcmVh ZGIodWFydCwgU0NJRl9TQ0ZSRFIpOworICAgICpwYyA9IHNjaWZfcmVhZGIodWFydCwgdWFydC0+ cGFyYW1zLT5yeF9maWZvX3JlZyk7CiAKICAgICAvKiBkdW1teSByZWFkICovCi0gICAgc2NpZl9y ZWFkdyh1YXJ0LCBTQ0lGX1NDRlNSKTsKKyAgICBzY2lmX3JlYWR3KHVhcnQsIHVhcnQtPnBhcmFt cy0+c3RhdHVzX3JlZyk7CiAgICAgLyogQ2xlYXIgcmVxdWlyZWQgUlggZmxhZ3MgKi8KLSAgICBz Y2lmX3dyaXRldyh1YXJ0LCBTQ0lGX1NDRlNSLCB+KFNDRlNSX1JERiB8IFNDRlNSX0RSKSk7Cisg ICAgc2NpZl93cml0ZXcodWFydCwgdWFydC0+cGFyYW1zLT5zdGF0dXNfcmVnLCB+KFNDRlNSX1JE RiB8IFNDRlNSX0RSKSk7CiAKICAgICByZXR1cm4gMTsKIH0KQEAgLTI2NSwxMCArMzMwLDE1IEBA IHN0YXRpYyBpbnQgX19pbml0IHNjaWZfdWFydF9pbml0KHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAq ZGV2LAogICAgICAgICByZXR1cm4gLUVOT01FTTsKICAgICB9CiAKKyAgICBpZiAoIGR0X2Rldmlj ZV9pc19jb21wYXRpYmxlKGRldiwgInJlbmVzYXMsc2NpZmEiKSApCisgICAgICAgIHVhcnQtPnBh cmFtcyA9ICZwb3J0X3BhcmFtc1tTQ0lGQV9QT1JUXTsKKyAgICBlbHNlCisgICAgICAgIHVhcnQt PnBhcmFtcyA9ICZwb3J0X3BhcmFtc1tTQ0lGX1BPUlRdOworCiAgICAgdWFydC0+dnVhcnQuYmFz ZV9hZGRyICA9IGFkZHI7CiAgICAgdWFydC0+dnVhcnQuc2l6ZSAgICAgICA9IHNpemU7Ci0gICAg dWFydC0+dnVhcnQuZGF0YV9vZmYgICA9IFNDSUZfU0NGVERSOwotICAgIHVhcnQtPnZ1YXJ0LnN0 YXR1c19vZmYgPSBTQ0lGX1NDRlNSOworICAgIHVhcnQtPnZ1YXJ0LmRhdGFfb2ZmICAgPSB1YXJ0 LT5wYXJhbXMtPnR4X2ZpZm9fcmVnOworICAgIHVhcnQtPnZ1YXJ0LnN0YXR1c19vZmYgPSB1YXJ0 LT5wYXJhbXMtPnN0YXR1c19yZWc7CiAgICAgdWFydC0+dnVhcnQuc3RhdHVzICAgICA9IFNDRlNS X1RERkU7CiAKICAgICAvKiBSZWdpc3RlciB3aXRoIGdlbmVyaWMgc2VyaWFsIGRyaXZlciAqLwpA QCAtMjgyLDYgKzM1Miw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHNjaWZfdWFydF9pbml0KHN0cnVj dCBkdF9kZXZpY2Vfbm9kZSAqZGV2LAogc3RhdGljIGNvbnN0IHN0cnVjdCBkdF9kZXZpY2VfbWF0 Y2ggc2NpZl91YXJ0X2R0X21hdGNoW10gX19pbml0Y29uc3QgPQogewogICAgIERUX01BVENIX0NP TVBBVElCTEUoInJlbmVzYXMsc2NpZiIpLAorICAgIERUX01BVENIX0NPTVBBVElCTEUoInJlbmVz YXMsc2NpZmEiKSwKICAgICB7IC8qIHNlbnRpbmVsICovIH0sCiB9OwogCmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20tYXJtL3NjaWYtdWFydC5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9zY2lm LXVhcnQuaAppbmRleCA4MTM3ODUwLi5iY2UzNDA0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20tYXJtL3NjaWYtdWFydC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vc2NpZi11YXJ0LmgK QEAgLTIsNyArMiw3IEBACiAgKiB4ZW4vaW5jbHVkZS9hc20tYXJtL3NjaWYtdWFydC5oCiAgKgog ICogQ29tbW9uIGNvbnN0YW50IGRlZmluaXRpb24gYmV0d2VlbiBlYXJseSBwcmludGsgYW5kIHRo ZSBVQVJUIGRyaXZlcgotICogZm9yIHRoZSBTQ0lGIGNvbXBhdGlibGUgVUFSVC4KKyAqIGZvciB0 aGUgU0NJRihBKSBjb21wYXRpYmxlIFVBUlQuCiAgKgogICogT2xla3NhbmRyIFR5c2hjaGVua28g PG9sZWtzYW5kci50eXNoY2hlbmtvQGdsb2JhbGxvZ2ljLmNvbT4KICAqIENvcHlyaWdodCAoQykg MjAxNCwgR2xvYmFsbG9naWMuCkBAIC0yMSw5ICsyMSw3IEBACiAjaWZuZGVmIF9fQVNNX0FSTV9T Q0lGX1VBUlRfSAogI2RlZmluZSBfX0FTTV9BUk1fU0NJRl9VQVJUX0gKIAotI2RlZmluZSBTQ0lG X0ZJRk9fTUFYX1NJWkUgICAgMTYKLQotLyogUmVnaXN0ZXIgb2Zmc2V0cyAqLworLyogUmVnaXN0 ZXIgb2Zmc2V0cyAoU0NJRikgKi8KICNkZWZpbmUgU0NJRl9TQ1NNUiAgICAgKDB4MDApICAgIC8q IFNlcmlhbCBtb2RlIHJlZ2lzdGVyICAgICAgICAgICAqLwogI2RlZmluZSBTQ0lGX1NDQlJSICAg ICAoMHgwNCkgICAgLyogQml0IHJhdGUgcmVnaXN0ZXIgICAgICAgICAgICAgICovCiAjZGVmaW5l IFNDSUZfU0NTQ1IgICAgICgweDA4KSAgICAvKiBTZXJpYWwgY29udHJvbCByZWdpc3RlciAgICAg ICAgKi8KQEAgLTU3LDggKzU1LDYgQEAKICNkZWZpbmUgU0NGU1JfUkRGICAgICAoMSA8PCAxKSAg ICAvKiBSZWNlaXZlIEZJRk8gRGF0YSBGdWxsICovCiAjZGVmaW5lIFNDRlNSX0RSICAgICAgKDEg PDwgMCkgICAgLyogUmVjZWl2ZSBEYXRhIFJlYWR5ICovCiAKLSNkZWZpbmUgU0NJRl9FUlJPUlMg ICAgKFNDRlNSX1BFUiB8IFNDRlNSX0ZFUiB8IFNDRlNSX0VSIHwgU0NGU1JfQlJLKQotCiAvKiBM aW5lIFN0YXR1cyBSZWdpc3RlciAoU0NMU1IpICovCiAjZGVmaW5lIFNDTFNSX1RPICAgICAgKDEg PDwgMikgICAgLyogVGltZW91dCAqLwogI2RlZmluZSBTQ0xTUl9PUkVSICAgICgxIDw8IDApICAg IC8qIE92ZXJydW4gRXJyb3IgKi8KQEAgLTgzLDYgKzc5LDQyIEBACiAjZGVmaW5lIFNDRkNSX1RU UkcxMCAgICAoU0NGQ1JfVFRSRzEpCiAjZGVmaW5lIFNDRkNSX1RUUkcxMSAgICAoU0NGQ1JfVFRS RzEgfCBTQ0ZDUl9UVFJHMCkKIAorLyogUmVnaXN0ZXIgb2Zmc2V0cyAoU0NJRkEpICovCisjZGVm aW5lIFNDSUZBX1NDQVNNUiAgICAgKDB4MDApICAgIC8qIFNlcmlhbCBtb2RlIHJlZ2lzdGVyICAg ICAgICAgICAqLworI2RlZmluZSBTQ0lGQV9TQ0FCUlIgICAgICgweDA0KSAgICAvKiBCaXQgcmF0 ZSByZWdpc3RlciAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgU0NJRkFfU0NBU0NSICAgICAoMHgw OCkgICAgLyogU2VyaWFsIGNvbnRyb2wgcmVnaXN0ZXIgICAgICAgICovCisjZGVmaW5lIFNDSUZB X1NDQVREU1IgICAgKDB4MEMpICAgIC8qIFRyYW5zbWl0IGRhdGEgc3RvcCByZWdpc3RlciAgICAq LworI2RlZmluZSBTQ0lGQV9TQ0FGRVIgICAgICgweDEwKSAgICAvKiBGSUZPIGVycm9yIGNvdW50 IHJlZ2lzdGVyICAgICAgKi8KKyNkZWZpbmUgU0NJRkFfU0NBU1NSICAgICAoMHgxNCkgICAgLyog U2VyaWFsIHN0YXR1cyByZWdpc3RlciAgICAgICAgICovCisjZGVmaW5lIFNDSUZBX1NDQUZDUiAg ICAgKDB4MTgpICAgIC8qIEZJRk8gY29udHJvbCByZWdpc3RlciAgICAgICAgICAqLworI2RlZmlu ZSBTQ0lGQV9TQ0FGRFIgICAgICgweDFDKSAgICAvKiBGSUZPIGRhdGEgY291bnQgcmVnaXN0ZXIg ICAgICAgKi8KKyNkZWZpbmUgU0NJRkFfU0NBRlREUiAgICAoMHgyMCkgICAgLyogVHJhbnNtaXQg RklGTyBkYXRhIHJlZ2lzdGVyICAgICovCisjZGVmaW5lIFNDSUZBX1NDQUZSRFIgICAgKDB4MjQp ICAgIC8qIFJlY2VpdmUgRklGTyBkYXRhIHJlZ2lzdGVyICAgICAqLworI2RlZmluZSBTQ0lGQV9T Q0FQQ1IgICAgICgweDMwKSAgICAvKiBTZXJpYWwgcG9ydCBjb250cm9sIHJlZ2lzdGVyICAgKi8K KyNkZWZpbmUgU0NJRkFfU0NBUERSICAgICAoMHgzNCkgICAgLyogU2VyaWFsIHBvcnQgZGF0YSBy ZWdpc3RlciAgICAgICovCisKKy8qIFNlcmlhbCBDb250cm9sIFJlZ2lzdGVyIChTQ0FTQ1IpICov CisjZGVmaW5lIFNDQVNDUl9FUklFICAgICAoMSA8PCAxMCkgICAgLyogUmVjZWl2ZSBFcnJvciBJ bnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFNDQVNDUl9CUklFICAgICAoMSA8PCA5KSAgICAg LyogQnJlYWsgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBTQ0FTQ1JfRFJJRSAgICAgKDEg PDwgOCkgICAgIC8qIFJlY2VpdmUgRGF0YSBSZWFkeSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVm aW5lIFNDQVNDUl9USUUgICAgICAoMSA8PCA3KSAgICAgLyogVHJhbnNtaXQgSW50ZXJydXB0IEVu YWJsZSAqLworI2RlZmluZSBTQ0FTQ1JfUklFICAgICAgKDEgPDwgNikgICAgIC8qIFJlY2VpdmUg SW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBTQ0FTQ1JfVEUgICAgICAgKDEgPDwgNSkgICAg IC8qIFRyYW5zbWl0IEVuYWJsZSAqLworI2RlZmluZSBTQ0FTQ1JfUkUgICAgICAgKDEgPDwgNCkg ICAgIC8qIFJlY2VpdmUgRW5hYmxlICovCisjZGVmaW5lIFNDQVNDUl9DS0UwICAgICAoMSA8PCAw KSAgICAgLyogQ2xvY2sgRW5hYmxlIDAgKi8KKworLyogU2VyaWFsIFN0YXR1cyBSZWdpc3RlciAo U0NBU1NSKSAqLworI2RlZmluZSBTQ0FTU1JfT1JFUiAgICAoMSA8PCA5KSAgICAvKiBPdmVycnVu IEVycm9yICovCisjZGVmaW5lIFNDQVNTUl9UU0YgICAgICgxIDw8IDgpICAgIC8qIFRyYW5zbWl0 IERhdGEgU3RvcCAqLworI2RlZmluZSBTQ0FTU1JfRVIgICAgICAoMSA8PCA3KSAgICAvKiBSZWNl aXZlIEVycm9yICovCisjZGVmaW5lIFNDQVNTUl9URU5EICAgICgxIDw8IDYpICAgIC8qIFRyYW5z bWlzc2lvbiBFbmQgKi8KKyNkZWZpbmUgU0NBU1NSX1RERkUgICAgKDEgPDwgNSkgICAgLyogVHJh bnNtaXQgRklGTyBEYXRhIEVtcHR5ICovCisjZGVmaW5lIFNDQVNTUl9CUksgICAgICgxIDw8IDQp ICAgIC8qIEJyZWFrIERldGVjdCAqLworI2RlZmluZSBTQ0FTU1JfRkVSICAgICAoMSA8PCAzKSAg ICAvKiBGcmFtaW5nIEVycm9yICovCisjZGVmaW5lIFNDQVNTUl9QRVIgICAgICgxIDw8IDIpICAg IC8qIFBhcml0eSBFcnJvciAqLworI2RlZmluZSBTQ0FTU1JfUkRGICAgICAoMSA8PCAxKSAgICAv KiBSZWNlaXZlIEZJRk8gRGF0YSBGdWxsICovCisjZGVmaW5lIFNDQVNTUl9EUiAgICAgICgxIDw8 IDApICAgIC8qIFJlY2VpdmUgRGF0YSBSZWFkeSAqLworCiAjZW5kaWYgLyogX19BU01fQVJNX1ND SUZfVUFSVF9IICovCiAKIC8qCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw=