From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, HTML_MESSAGE,INCLUDES_PATCH,MAILING_LIST_MULTI,MIME_BASE64_TEXT, MIME_HTML_MOSTLY,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B9340CA9EC0 for ; Mon, 28 Oct 2019 11:21:10 +0000 (UTC) Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 96CBA205ED for ; Mon, 28 Oct 2019 11:21:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 96CBA205ED Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 2774D110B; Mon, 28 Oct 2019 11:21:02 +0000 (UTC) Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id A5B61B49 for ; Mon, 28 Oct 2019 08:28:36 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailgw01.mediatek.com (unknown [210.61.82.183]) by smtp1.linuxfoundation.org (Postfix) with ESMTP id 9403E875 for ; Mon, 28 Oct 2019 08:28:34 +0000 (UTC) X-UUID: e257a3ffe94e4e43aee13b1573cf748d-20191028 X-UUID: e257a3ffe94e4e43aee13b1573cf748d-20191028 Received: from mtkmrs01.mediatek.inc [(172.21.131.159)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 294600259; Mon, 28 Oct 2019 16:28:33 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 28 Oct 2019 16:28:29 +0800 Received: from localhost.localdomain (10.15.20.246) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Mon, 28 Oct 2019 16:28:28 +0800 From: Chao Hao To: Joerg Roedel , Rob Herring , Matthias Brugger Subject: [PATCH 02/13] iommu/mediatek: Add mt6779 IOMMU basic support Date: Mon, 28 Oct 2019 16:28:09 +0800 Message-ID: <20191028082820.20221-3-chao.hao@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20191028082820.20221-1-chao.hao@mediatek.com> References: <20191028082820.20221-1-chao.hao@mediatek.com> MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 28 Oct 2019 11:21:00 +0000 Cc: Anan Sun , devicetree@vger.kernel.org, Cui Zhang , Jun Yan , wsd_upstream@mediatek.com, linux-kernel@vger.kernel.org, Chao Hao , iommu@lists.linux-foundation.org, linux-mediatek@lists.infradead.org, Miles Chen , linux-arm-kernel@lists.infradead.org, Guangming Cao X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============8422464841813252703==" Sender: iommu-bounces@lists.linux-foundation.org Errors-To: iommu-bounces@lists.linux-foundation.org --===============8422464841813252703== Content-Type: multipart/alternative; boundary="__=_Part_Boundary_003_1575240166.1124606075" --__=_Part_Boundary_003_1575240166.1124606075 Content-Type: text/html Content-Transfer-Encoding: base64 PHByZT4NCjEuIEFkZCBtdDY3NzkgcmVnaXN0ZXJzIGRlZmluZSBmb3IgaW9tbXUuDQoyLiBBZGQg bXQ2Nzc5X2RhdGEgZGVmaW5lIHRvIHN1cHBvcnQgbXQ2Nzc5IGlvbW11IEhXIGluaXQuDQozLiBU aGVyZSBhcmUgdHdvIGlvbW11cywgb25lIGlzIG1tX2lvbW11LCB0aGUgb3RoZXIgaXMgdnB1X2lv bW11Lg0KTU1fSU9NTVUgaXMgY29ubmVjdGVkIHNtaV9sYXJiIHRvIHN1cHBvcnQgbXVsdGltZWRp YSBlbmdpbmUgdG8NCmFjY2VzcyBEUkFNLCBhbmQgVlBVX0lPTU1VIGlzIGNvbm5lY3RlZCB0byBB UFVfYnVzIHRvIHN1cHBvcnQNClZQVSxNRExBLEVETUEgdG8gYWNjZXNzIERSQU0uIE1NX0lPTU1V IGFuZCBWUFVfSU9NTVUgdXNlIHRoZSBzYW1lDQpwYWdlIHRhYmxlIHRvIHNpbXBsaWZ5IGRlc2ln biBieSAmcXVvdDttdGtfaW9tbXVfZ2V0X200dV9kYXRhJnF1b3Q7Lg0KNC4gRm9yIHNtaV9sYXJi NiwgaXQgZG9lc24mIzM5O3QgdXNlIG1tX2lvbW11LCBzbyB3ZSBjYW4gZGlzdGluZ3Vpc2gNCnZw dV9pb21tdSBieSBpdCB3aGVuIGV4Y3V0ZXMgaW9tbXVfcHJvYmUuDQo1LiBGb3IgbXQ2Nzc5IEFQ VV9JT01NVSBmYXVsdCBpZCBpcyBpcnJlZ3VsYXIsIHNvIGl0IHdhcyB0cmVhdGVkDQpzcGVjaWFs bHkuDQoNClNpZ25lZC1vZmYtYnk6IENoYW8gSGFvICZsdDtjaGFvLmhhb0BtZWRpYXRlay5jb20m Z3Q7DQotLS0NCiBkcml2ZXJzL2lvbW11L210a19pb21tdS5jIHwgOTEgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tDQogZHJpdmVycy9pb21tdS9tdGtfaW9tbXUuaCB8IDEw ICsrKystDQogMiBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMo LSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11LmMgYi9kcml2ZXJzL2lv bW11L210a19pb21tdS5jDQppbmRleCA4Y2EyZTk5OTY0ZmUuLmYyODQ3ZTY2MTEzNyAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11LmMNCisrKyBiL2RyaXZlcnMvaW9tbXUvbXRr X2lvbW11LmMNCkBAIC0zOCwxMiArMzgsMjQgQEANCiAjZGVmaW5lIFJFR19NTVVfSU5WTERfRU5E X0EJCQkweDAyOA0KIA0KICNkZWZpbmUgUkVHX01NVV9JTlZfU0VMCQkJCTB4MDM4DQorI2RlZmlu ZSBSRUdfTU1VX0lOVl9TRUxfTVQ2Nzc5CQkJMHgwMmMNCiAjZGVmaW5lIEZfSU5WTERfRU4wCQkJ CUJJVCgwKQ0KICNkZWZpbmUgRl9JTlZMRF9FTjEJCQkJQklUKDEpDQogDQogI2RlZmluZSBSRUdf TU1VX1NUQU5EQVJEX0FYSV9NT0RFCQkweDA0OA0KKw0KKyNkZWZpbmUgUkVHX01NVV9NSVNDX0NS VExfTVQ2Nzc5CQkweDA0OA0KKyNkZWZpbmUgUkVHX01NVV9TVEFOREFSRF9BWElfTU9ERV9NVDY3 NzkJKEJJVCgzKSB8IEJJVCgxOSkpDQorI2RlZmluZSBSRUdfTU1VX0NPSEVSRU5DRV9FTgkJCShC SVQoMCkgfCBCSVQoMTYpKQ0KKyNkZWZpbmUgUkVHX01NVV9JTl9PUkRFUl9XUl9FTgkJCShCSVQo MSkgfCBCSVQoMTcpKQ0KKyNkZWZpbmUgRl9NTVVfSEFMRl9FTlRSWV9NT0RFX0wJCQkoQklUKDUp IHwgQklUKDIxKSkNCisjZGVmaW5lIEZfTU1VX0JMT0NLSU5HX01PREVfTAkJCShCSVQoNCkgfCBC SVQoMjApKQ0KKw0KICNkZWZpbmUgUkVHX01NVV9EQ01fRElTCQkJCTB4MDUwDQogDQorI2RlZmlu ZSBSRUdfTU1VX1dSX0xFTgkJCQkweDA1NA0KKyNkZWZpbmUgRl9NTVVfV1JfVEhST1RfRElTCQkJ KEJJVCg1KSB8ICBCSVQoMjEpKQ0KKw0KICNkZWZpbmUgUkVHX01NVV9DVFJMX1JFRwkJCTB4MTEw DQogI2RlZmluZSBGX01NVV9URl9QUk9UX1RPX1BST0dSQU1fQUREUgkJKDIgJmx0OyZsdDsgNCkN CiAjZGVmaW5lIEZfTU1VX1BSRUZFVENIX1JUX1JFUExBQ0VfTU9ECQlCSVQoNCkNCkBAIC04OCwx MCArMTAwLDE0IEBADQogI2RlZmluZSBSRUdfTU1VMV9JTlZMRF9QQQkJCTB4MTQ4DQogI2RlZmlu ZSBSRUdfTU1VMF9JTlRfSUQJCQkJMHgxNTANCiAjZGVmaW5lIFJFR19NTVUxX0lOVF9JRAkJCQkw eDE1NA0KKyNkZWZpbmUgRl9NTVVfSU5UX0lEX0NPTU1fSUQoYSkJCQkoKChhKSAmZ3Q7Jmd0OyA5 KSAmYW1wOyAweDcpDQorI2RlZmluZSBGX01NVV9JTlRfSURfU1VCX0NPTU1fSUQoYSkJCSgoKGEp ICZndDsmZ3Q7IDcpICZhbXA7IDB4MykNCiAjZGVmaW5lIEZfTU1VX0lOVF9JRF9MQVJCX0lEKGEp CQkJKCgoYSkgJmd0OyZndDsgNykgJmFtcDsgMHg3KQ0KICNkZWZpbmUgRl9NTVVfSU5UX0lEX1BP UlRfSUQoYSkJCQkoKChhKSAmZ3Q7Jmd0OyAyKSAmYW1wOyAweDFmKQ0KKyNkZWZpbmUgRl9NTVVf SU5UX0lEX0NPTU1fQVBVX0lEKGEpCQkoKGEpICZhbXA7IDB4MykNCisjZGVmaW5lIEZfTU1VX0lO VF9JRF9TVUJfQVBVX0lEKGEpCQkoKChhKSAmZ3Q7Jmd0OyAyKSAmYW1wOyAweDMpDQogDQotI2Rl ZmluZSBNVEtfUFJPVEVDVF9QQV9BTElHTgkJCTEyOA0KKyNkZWZpbmUgTVRLX1BST1RFQ1RfUEFf QUxJR04JCQkyNTYNCiANCiAvKg0KICAqIEdldCB0aGUgbG9jYWwgYXJiaXRlciBJRCBhbmQgdGhl IHBvcnRpZCB3aXRoaW4gdGhlIGxhcmIgYXJiaXRlcg0KQEAgLTE2NSw3ICsxODEsNyBAQCBzdGF0 aWMgdm9pZCBtdGtfaW9tbXVfdGxiX2ZsdXNoX2FsbCh2b2lkICpjb29raWUpDQogDQogCWZvcl9l YWNoX200dShkYXRhKSB7DQogCQl3cml0ZWxfcmVsYXhlZChGX0lOVkxEX0VOMSB8IEZfSU5WTERf RU4wLA0KLQkJCSAgICAgICBkYXRhLSZndDtiYXNlICsgUkVHX01NVV9JTlZfU0VMKTsNCisJCQkg ICAgICAgZGF0YS0mZ3Q7YmFzZSArIGRhdGEtJmd0O3BsYXRfZGF0YS0mZ3Q7aW52X3NlbF9yZWcp Ow0KIAkJd3JpdGVsX3JlbGF4ZWQoRl9BTExfSU5WTEQsIGRhdGEtJmd0O2Jhc2UgKyBSRUdfTU1V X0lOVkFMSURBVEUpOw0KIAkJd21iKCk7IC8qIE1ha2Ugc3VyZSB0aGUgdGxiIGZsdXNoIGFsbCBk b25lICovDQogCX0NCkBAIC0xODIsNyArMTk4LDcgQEAgc3RhdGljIHZvaWQgbXRrX2lvbW11X3Rs Yl9mbHVzaF9yYW5nZV9zeW5jKHVuc2lnbmVkIGxvbmcgaW92YSwgc2l6ZV90IHNpemUsDQogCWZv cl9lYWNoX200dShkYXRhKSB7DQogCQlzcGluX2xvY2tfaXJxc2F2ZSgmYW1wO2RhdGEtJmd0O3Rs Yl9sb2NrLCBmbGFncyk7DQogCQl3cml0ZWxfcmVsYXhlZChGX0lOVkxEX0VOMSB8IEZfSU5WTERf RU4wLA0KLQkJCSAgICAgICBkYXRhLSZndDtiYXNlICsgUkVHX01NVV9JTlZfU0VMKTsNCisJCQkg ICAgICAgZGF0YS0mZ3Q7YmFzZSArIGRhdGEtJmd0O3BsYXRfZGF0YS0mZ3Q7aW52X3NlbF9yZWcp Ow0KIA0KIAkJd3JpdGVsX3JlbGF4ZWQoaW92YSwgZGF0YS0mZ3Q7YmFzZSArIFJFR19NTVVfSU5W TERfU1RBUlRfQSk7DQogCQl3cml0ZWxfcmVsYXhlZChpb3ZhICsgc2l6ZSAtIDEsDQpAQCAtMjI2 LDcgKzI0Miw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBtdGtfaW9tbXVfaXNyKGludCBpcnEsIHZv aWQgKmRldl9pZCkNCiAJc3RydWN0IG10a19pb21tdV9kYXRhICpkYXRhID0gZGV2X2lkOw0KIAlz dHJ1Y3QgbXRrX2lvbW11X2RvbWFpbiAqZG9tID0gZGF0YS0mZ3Q7bTR1X2RvbTsNCiAJdTMyIGlu dF9zdGF0ZSwgcmVndmFsLCBmYXVsdF9pb3ZhLCBmYXVsdF9wYTsNCi0JdW5zaWduZWQgaW50IGZh dWx0X2xhcmIsIGZhdWx0X3BvcnQ7DQorCXVuc2lnbmVkIGludCBmYXVsdF9sYXJiLCBmYXVsdF9w b3J0LCBzdWJfY29tbSA9IDA7DQogCWJvb2wgbGF5ZXIsIHdyaXRlOw0KIA0KIAkvKiBSZWFkIGVy cm9yIGluZm8gZnJvbSByZWdpc3RlcnMgKi8NCkBAIC0yNDIsMTcgKzI1OCwzMCBAQCBzdGF0aWMg aXJxcmV0dXJuX3QgbXRrX2lvbW11X2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpDQogCX0NCiAJ bGF5ZXIgPSBmYXVsdF9pb3ZhICZhbXA7IEZfTU1VX0ZBVUxUX1ZBX0xBWUVSX0JJVDsNCiAJd3Jp dGUgPSBmYXVsdF9pb3ZhICZhbXA7IEZfTU1VX0ZBVUxUX1ZBX1dSSVRFX0JJVDsNCi0JZmF1bHRf bGFyYiA9IEZfTU1VX0lOVF9JRF9MQVJCX0lEKHJlZ3ZhbCk7DQogCWZhdWx0X3BvcnQgPSBGX01N VV9JTlRfSURfUE9SVF9JRChyZWd2YWwpOw0KKwlpZiAoZGF0YS0mZ3Q7cGxhdF9kYXRhLSZndDto YXNfc3ViX2NvbW1bZGF0YS0mZ3Q7bTR1X2lkXSkgew0KKwkJLyogbTR1MSBpcyBWUFUgaW4gbXQ2 Nzc5LiovDQorCQlpZiAoZGF0YS0mZ3Q7bTR1X2lkICZhbXA7JmFtcDsgZGF0YS0mZ3Q7cGxhdF9k YXRhLSZndDttNHVfcGxhdCA9PSBNNFVfTVQ2Nzc5KSB7DQorCQkJZmF1bHRfbGFyYiA9IEZfTU1V X0lOVF9JRF9DT01NX0FQVV9JRChyZWd2YWwpOw0KKwkJCXN1Yl9jb21tID0gRl9NTVVfSU5UX0lE X1NVQl9BUFVfSUQocmVndmFsKTsNCisJCQlmYXVsdF9wb3J0ID0gMDsgLyogZm9yIG10Njc3OSBB UFUgSUQgaXMgaXJyZWd1bGFyICovDQorCQl9IGVsc2Ugew0KKwkJCWZhdWx0X2xhcmIgPSBGX01N VV9JTlRfSURfQ09NTV9JRChyZWd2YWwpOw0KKwkJCXN1Yl9jb21tID0gRl9NTVVfSU5UX0lEX1NV Ql9DT01NX0lEKHJlZ3ZhbCk7DQorCQl9DQorCX0gZWxzZSB7DQorCQlmYXVsdF9sYXJiID0gRl9N TVVfSU5UX0lEX0xBUkJfSUQocmVndmFsKTsNCisJfQ0KIA0KLQlmYXVsdF9sYXJiID0gZGF0YS0m Z3Q7cGxhdF9kYXRhLSZndDtsYXJiaWRfcmVtYXBbZmF1bHRfbGFyYl07DQorCWZhdWx0X2xhcmIg PSBkYXRhLSZndDtwbGF0X2RhdGEtJmd0O2xhcmJpZF9yZW1hcFtkYXRhLSZndDttNHVfaWRdW2Zh dWx0X2xhcmJdOw0KIA0KIAlpZiAocmVwb3J0X2lvbW11X2ZhdWx0KCZhbXA7ZG9tLSZndDtkb21h aW4sIGRhdGEtJmd0O2RldiwgZmF1bHRfaW92YSwNCiAJCQkgICAgICAgd3JpdGUgPyBJT01NVV9G QVVMVF9XUklURSA6IElPTU1VX0ZBVUxUX1JFQUQpKSB7DQogCQlkZXZfZXJyX3JhdGVsaW1pdGVk KA0KIAkJCWRhdGEtJmd0O2RldiwNCi0JCQkmcXVvdDtmYXVsdCB0eXBlPTB4JXggaW92YT0weCV4 IHBhPTB4JXggbGFyYj0lZCBwb3J0PSVkIGxheWVyPSVkICVzXG4mcXVvdDssDQotCQkJaW50X3N0 YXRlLCBmYXVsdF9pb3ZhLCBmYXVsdF9wYSwgZmF1bHRfbGFyYiwgZmF1bHRfcG9ydCwNCisJCQkm cXVvdDtmYXVsdCB0eXBlPTB4JXggaW92YT0weCV4IHBhPTB4JXggbGFyYj0lZCBzdWJfY29tbT0l ZCBwb3J0PSVkIHJlZ3ZhbD0weCV4IGxheWVyPSVkICVzXG4mcXVvdDssDQorCQkJaW50X3N0YXRl LCBmYXVsdF9pb3ZhLCBmYXVsdF9wYSwgZmF1bHRfbGFyYiwNCisJCQlzdWJfY29tbSwgZmF1bHRf cG9ydCwgcmVndmFsLA0KIAkJCWxheWVyLCB3cml0ZSA/ICZxdW90O3dyaXRlJnF1b3Q7IDogJnF1 b3Q7cmVhZCZxdW90Oyk7DQogCX0NCiANCkBAIC01NDUsMTEgKzU3NCwxMiBAQCBzdGF0aWMgaW50 IG10a19pb21tdV9od19pbml0KGNvbnN0IHN0cnVjdCBtdGtfaW9tbXVfZGF0YSAqZGF0YSkNCiAJ CXJldHVybiByZXQ7DQogCX0NCiANCisJcmVndmFsID0gcmVhZGxfcmVsYXhlZChkYXRhLSZndDti YXNlICsgUkVHX01NVV9DVFJMX1JFRyk7DQogCWlmIChkYXRhLSZndDtwbGF0X2RhdGEtJmd0O200 dV9wbGF0ID09IE00VV9NVDgxNzMpDQotCQlyZWd2YWwgPSBGX01NVV9QUkVGRVRDSF9SVF9SRVBM QUNFX01PRCB8DQorCQlyZWd2YWwgfD0gRl9NTVVfUFJFRkVUQ0hfUlRfUkVQTEFDRV9NT0QgfA0K IAkJCSBGX01NVV9URl9QUk9UX1RPX1BST0dSQU1fQUREUl9NVDgxNzM7DQogCWVsc2UNCi0JCXJl Z3ZhbCA9IEZfTU1VX1RGX1BST1RfVE9fUFJPR1JBTV9BRERSOw0KKwkJcmVndmFsIHw9IEZfTU1V X1RGX1BST1RfVE9fUFJPR1JBTV9BRERSOw0KIAl3cml0ZWxfcmVsYXhlZChyZWd2YWwsIGRhdGEt Jmd0O2Jhc2UgKyBSRUdfTU1VX0NUUkxfUkVHKTsNCiANCiAJcmVndmFsID0gRl9MMl9NVUxJVF9I SVRfRU4gfA0KQEAgLTU4OSw2ICs2MTksMjAgQEAgc3RhdGljIGludCBtdGtfaW9tbXVfaHdfaW5p dChjb25zdCBzdHJ1Y3QgbXRrX2lvbW11X2RhdGEgKmRhdGEpDQogCWlmIChkYXRhLSZndDtwbGF0 X2RhdGEtJmd0O3Jlc2V0X2F4aSkNCiAJCXdyaXRlbF9yZWxheGVkKDAsIGRhdGEtJmd0O2Jhc2Ug KyBSRUdfTU1VX1NUQU5EQVJEX0FYSV9NT0RFKTsNCiANCisJaWYgKGRhdGEtJmd0O3BsYXRfZGF0 YS0mZ3Q7aGFzX3dyX2xlbikgew0KKwkJLyogd3JpdGUgY29tbWFuZCB0aHJvdHRsaW5nIG1vZGUg Ki8NCisJCXJlZ3ZhbCA9IHJlYWRsX3JlbGF4ZWQoZGF0YS0mZ3Q7YmFzZSArIFJFR19NTVVfV1Jf TEVOKTsNCisJCXJlZ3ZhbCAmYW1wOz0gfkZfTU1VX1dSX1RIUk9UX0RJUzsNCisJCXdyaXRlbF9y ZWxheGVkKHJlZ3ZhbCwgZGF0YS0mZ3Q7YmFzZSArIFJFR19NTVVfV1JfTEVOKTsNCisJfQ0KKwkv KiBzcGVjaWFsIHNldHRpbmdzIGZvciBtbXUwIChtdWx0aW1lZGlhIGlvbW11KSAqLw0KKwlpZiAo ZGF0YS0mZ3Q7cGxhdF9kYXRhLSZndDtoYXNfbWlzY19jdHJsW2RhdGEtJmd0O200dV9pZF0pIHsN CisJCXJlZ3ZhbCA9IHJlYWRsX3JlbGF4ZWQoZGF0YS0mZ3Q7YmFzZSArIFJFR19NTVVfTUlTQ19D UlRMX01UNjc3OSk7DQorCQkvKiBub24tc3RhbmRhcmQgQVhJIG1vZGUgKi8NCisJCXJlZ3ZhbCAm YW1wOz0gflJFR19NTVVfU1RBTkRBUkRfQVhJX01PREVfTVQ2Nzc5Ow0KKwkJd3JpdGVsX3JlbGF4 ZWQocmVndmFsLCBkYXRhLSZndDtiYXNlICsgUkVHX01NVV9NSVNDX0NSVExfTVQ2Nzc5KTsNCisJ fQ0KKw0KIAlpZiAoZGV2bV9yZXF1ZXN0X2lycShkYXRhLSZndDtkZXYsIGRhdGEtJmd0O2lycSwg bXRrX2lvbW11X2lzciwgMCwNCiAJCQkgICAgIGRldl9uYW1lKGRhdGEtJmd0O2RldiksICh2b2lk ICopZGF0YSkpIHsNCiAJCXdyaXRlbF9yZWxheGVkKDAsIGRhdGEtJmd0O2Jhc2UgKyBSRUdfTU1V X1BUX0JBU0VfQUREUik7DQpAQCAtNjc4LDYgKzcyMiw5IEBAIHN0YXRpYyBpbnQgbXRrX2lvbW11 X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogCQl9DQogCQlkYXRhLSZndDts YXJiX2ltdVtpZF0uZGV2ID0gJmFtcDtwbGFyYmRldi0mZ3Q7ZGV2Ow0KIA0KKwkJaWYgKGRhdGEt Jmd0O3BsYXRfZGF0YS0mZ3Q7bTR1MV9tYXNrID09ICgxICZsdDsmbHQ7IGlkKSkNCisJCQlkYXRh LSZndDttNHVfaWQgPSAxOw0KKw0KIAkJY29tcG9uZW50X21hdGNoX2FkZF9yZWxlYXNlKGRldiwg JmFtcDttYXRjaCwgcmVsZWFzZV9vZiwNCiAJCQkJCSAgICBjb21wYXJlX29mLCBsYXJibm9kZSk7 DQogCX0NCkBAIC03MzEsNiArNzc4LDcgQEAgc3RhdGljIGludCBfX21heWJlX3VudXNlZCBtdGtf aW9tbXVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQogCXN0cnVjdCBtdGtfaW9tbXVfc3Vz cGVuZF9yZWcgKnJlZyA9ICZhbXA7ZGF0YS0mZ3Q7cmVnOw0KIAl2b2lkIF9faW9tZW0gKmJhc2Ug PSBkYXRhLSZndDtiYXNlOw0KIA0KKwlyZWctJmd0O3dyX2xlbiA9IHJlYWRsX3JlbGF4ZWQoYmFz ZSArIFJFR19NTVVfV1JfTEVOKTsNCiAJcmVnLSZndDtzdGFuZGFyZF9heGlfbW9kZSA9IHJlYWRs X3JlbGF4ZWQoYmFzZSArDQogCQkJCQkgICAgICAgUkVHX01NVV9TVEFOREFSRF9BWElfTU9ERSk7 DQogCXJlZy0mZ3Q7ZGNtX2RpcyA9IHJlYWRsX3JlbGF4ZWQoYmFzZSArIFJFR19NTVVfRENNX0RJ Uyk7DQpAQCAtNzU2LDYgKzgwNCw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbXRrX2lv bW11X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQogCQlkZXZfZXJyKGRhdGEtJmd0O2Rldiwg JnF1b3Q7RmFpbGVkIHRvIGVuYWJsZSBjbGsoJWQpIGluIHJlc3VtZVxuJnF1b3Q7LCByZXQpOw0K IAkJcmV0dXJuIHJldDsNCiAJfQ0KKwl3cml0ZWxfcmVsYXhlZChyZWctJmd0O3dyX2xlbiwgYmFz ZSArIFJFR19NTVVfV1JfTEVOKTsNCiAJd3JpdGVsX3JlbGF4ZWQocmVnLSZndDtzdGFuZGFyZF9h eGlfbW9kZSwNCiAJCSAgICAgICBiYXNlICsgUkVHX01NVV9TVEFOREFSRF9BWElfTU9ERSk7DQog CXdyaXRlbF9yZWxheGVkKHJlZy0mZ3Q7ZGNtX2RpcywgYmFzZSArIFJFR19NTVVfRENNX0RJUyk7 DQpAQCAtNzc5LDcgKzgyOCwyMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19pb21tdV9wbGF0 X2RhdGEgbXQyNzEyX2RhdGEgPSB7DQogCS5oYXNfNGdiX21vZGUgPSB0cnVlLA0KIAkuaGFzX2Jj bGsgICAgID0gdHJ1ZSwNCiAJLmhhc192bGRfcGFfcm5nICAgPSB0cnVlLA0KLQkubGFyYmlkX3Jl bWFwID0gezAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDl9LA0KKwkubGFyYmlkX3JlbWFwWzBd ID0gezAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDl9LA0KKwkuaW52X3NlbF9yZWcgPSBSRUdf TU1VX0lOVl9TRUwsDQorfTsNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19pb21tdV9wbGF0 X2RhdGEgbXQ2Nzc5X2RhdGEgPSB7DQorCS5tNHVfcGxhdCA9IE00VV9NVDY3NzksDQorCS5sYXJi aWRfcmVtYXBbMF0gPSB7MCwgMSwgMiwgMywgNSwgNywgMTAsIDl9LA0KKwkvKiB2cDZhLCB2cDZi LCBtZGxhL2NvcmUyLCBtZGxhL2VkbWMqLw0KKwkubGFyYmlkX3JlbWFwWzFdID0gezIsIDAsIDMs IDF9LA0KKwkuaGFzX3N1Yl9jb21tID0ge3RydWUsIHRydWV9LA0KKwkuaGFzX3dyX2xlbiA9IHRy dWUsDQorCS5oYXNfbWlzY19jdHJsID0ge3RydWUsIGZhbHNlfSwNCisJLmludl9zZWxfcmVnID0g UkVHX01NVV9JTlZfU0VMX01UNjc3OSwNCisJLm00dTFfbWFzayA9ICBCSVQoNiksDQogfTsNCiAN CiBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19pb21tdV9wbGF0X2RhdGEgbXQ4MTczX2RhdGEgPSB7 DQpAQCAtNzg3LDE3ICs4NDksMjAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfaW9tbXVfcGxh dF9kYXRhIG10ODE3M19kYXRhID0gew0KIAkuaGFzXzRnYl9tb2RlID0gdHJ1ZSwNCiAJLmhhc19i Y2xrICAgICA9IHRydWUsDQogCS5yZXNldF9heGkgICAgPSB0cnVlLA0KLQkubGFyYmlkX3JlbWFw ID0gezAsIDEsIDIsIDMsIDQsIDV9LCAvKiBMaW5lYXIgbWFwcGluZy4gKi8NCisJLmxhcmJpZF9y ZW1hcFswXSA9IHswLCAxLCAyLCAzLCA0LCA1fSwgLyogTGluZWFyIG1hcHBpbmcuICovDQorCS5p bnZfc2VsX3JlZyA9IFJFR19NTVVfSU5WX1NFTCwNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbXRrX2lvbW11X3BsYXRfZGF0YSBtdDgxODNfZGF0YSA9IHsNCiAJLm00dV9wbGF0ICAgICA9 IE00VV9NVDgxODMsDQogCS5yZXNldF9heGkgICAgPSB0cnVlLA0KLQkubGFyYmlkX3JlbWFwID0g ezAsIDQsIDUsIDYsIDcsIDIsIDMsIDF9LA0KKwkubGFyYmlkX3JlbWFwWzBdID0gezAsIDQsIDUs IDYsIDcsIDIsIDMsIDF9LA0KKwkuaW52X3NlbF9yZWcgPSBSRUdfTU1VX0lOVl9TRUwsDQogfTsN CiANCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfaW9tbXVfb2ZfaWRzW10g PSB7DQogCXsgLmNvbXBhdGlibGUgPSAmcXVvdDttZWRpYXRlayxtdDI3MTItbTR1JnF1b3Q7LCAu ZGF0YSA9ICZhbXA7bXQyNzEyX2RhdGF9LA0KKwl7IC5jb21wYXRpYmxlID0gJnF1b3Q7bWVkaWF0 ZWssbXQ2Nzc5LW00dSZxdW90OywgLmRhdGEgPSAmYW1wO210Njc3OV9kYXRhfSwNCiAJeyAuY29t cGF0aWJsZSA9ICZxdW90O21lZGlhdGVrLG10ODE3My1tNHUmcXVvdDssIC5kYXRhID0gJmFtcDtt dDgxNzNfZGF0YX0sDQogCXsgLmNvbXBhdGlibGUgPSAmcXVvdDttZWRpYXRlayxtdDgxODMtbTR1 JnF1b3Q7LCAuZGF0YSA9ICZhbXA7bXQ4MTgzX2RhdGF9LA0KIAl7fQ0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaW9tbXUvbXRrX2lvbW11LmggYi9kcml2ZXJzL2lvbW11L210a19pb21tdS5oDQppbmRl eCBlYTk0OWEzMjRlMzMuLjEzMmRjNzY1YTQwYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaW9tbXUv bXRrX2lvbW11LmgNCisrKyBiL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11LmgNCkBAIC0yNSwxMSAr MjUsMTMgQEAgc3RydWN0IG10a19pb21tdV9zdXNwZW5kX3JlZyB7DQogCXUzMgkJCQlpbnRfbWFp bl9jb250cm9sOw0KIAl1MzIJCQkJaXZycF9wYWRkcjsNCiAJdTMyCQkJCXZsZF9wYV9ybmc7DQor CXUzMgkJCQl3cl9sZW47DQogfTsNCiANCiBlbnVtIG10a19pb21tdV9wbGF0IHsNCiAJTTRVX01U MjcwMSwNCiAJTTRVX01UMjcxMiwNCisJTTRVX01UNjc3OSwNCiAJTTRVX01UODE3MywNCiAJTTRV X01UODE4MywNCiB9Ow0KQEAgLTQyLDcgKzQ0LDEyIEBAIHN0cnVjdCBtdGtfaW9tbXVfcGxhdF9k YXRhIHsNCiAJYm9vbCAgICAgICAgICAgICAgICBoYXNfYmNsazsNCiAJYm9vbCAgICAgICAgICAg ICAgICBoYXNfdmxkX3BhX3JuZzsNCiAJYm9vbCAgICAgICAgICAgICAgICByZXNldF9heGk7DQot CXVuc2lnbmVkIGNoYXIgICAgICAgbGFyYmlkX3JlbWFwW01US19MQVJCX05SX01BWF07DQorCWJv b2wgICAgICAgICAgICAgICAgaGFzX3N1Yl9jb21tWzJdOw0KKwlib29sICAgICAgICAgICAgICAg IGhhc193cl9sZW47DQorCWJvb2wgICAgICAgICAgICAgICAgaGFzX21pc2NfY3RybFsyXTsNCisJ dTMyICAgICAgICAgICAgICAgICBpbnZfc2VsX3JlZzsNCisJdTMyICAgICAgICAgICAgICAgICBt NHUxX21hc2s7DQorCXVuc2lnbmVkIGNoYXIgICAgICAgbGFyYmlkX3JlbWFwWzJdW01US19MQVJC X05SX01BWF07DQogfTsNCiANCiBzdHJ1Y3QgbXRrX2lvbW11X2RvbWFpbjsNCkBAIC01OSw2ICs2 Niw3IEBAIHN0cnVjdCBtdGtfaW9tbXVfZGF0YSB7DQogCWJvb2wgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW5hYmxlXzRHQjsNCiAJc3BpbmxvY2tfdAkJCXRsYl9sb2NrOyAvKiBsb2NrIGZv ciB0bGIgcmFuZ2UgZmx1c2ggKi8NCiANCisJdTMyCQkJCW00dV9pZDsNCiAJc3RydWN0IGlvbW11 X2RldmljZQkJaW9tbXU7DQogCWNvbnN0IHN0cnVjdCBtdGtfaW9tbXVfcGxhdF9kYXRhICpwbGF0 X2RhdGE7DQogDQotLSANCjIuMTguMA0KDQo8L3ByZT48IS0tdHlwZTp0ZXh0LS0+PCEtLXstLT48 cHJlPioqKioqKioqKioqKiogTUVESUFURUsgQ29uZmlkZW50aWFsaXR5IE5vdGljZQ0KICoqKioq KioqKioqKioqKioqKioqDQpUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMgZS1tYWls IG1lc3NhZ2UgKGluY2x1ZGluZyBhbnkgDQphdHRhY2htZW50cykgbWF5IGJlIGNvbmZpZGVudGlh bCwgcHJvcHJpZXRhcnksIHByaXZpbGVnZWQsIG9yIG90aGVyd2lzZQ0KZXhlbXB0IGZyb20gZGlz Y2xvc3VyZSB1bmRlciBhcHBsaWNhYmxlIGxhd3MuIEl0IGlzIGludGVuZGVkIHRvIGJlIA0KY29u dmV5ZWQgb25seSB0byB0aGUgZGVzaWduYXRlZCByZWNpcGllbnQocykuIEFueSB1c2UsIGRpc3Nl bWluYXRpb24sIA0KZGlzdHJpYnV0aW9uLCBwcmludGluZywgcmV0YWluaW5nIG9yIGNvcHlpbmcg b2YgdGhpcyBlLW1haWwgKGluY2x1ZGluZyBpdHMgDQphdHRhY2htZW50cykgYnkgdW5pbnRlbmRl ZCByZWNpcGllbnQocykgaXMgc3RyaWN0bHkgcHJvaGliaXRlZCBhbmQgbWF5IA0KYmUgdW5sYXdm dWwuIElmIHlvdSBhcmUgbm90IGFuIGludGVuZGVkIHJlY2lwaWVudCBvZiB0aGlzIGUtbWFpbCwg b3IgYmVsaWV2ZQ0KIA0KdGhhdCB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIGUtbWFpbCBpbiBlcnJv ciwgcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIA0KaW1tZWRpYXRlbHkgKGJ5IHJlcGx5aW5nIHRv IHRoaXMgZS1tYWlsKSwgZGVsZXRlIGFueSBhbmQgYWxsIGNvcGllcyBvZiANCnRoaXMgZS1tYWls IChpbmNsdWRpbmcgYW55IGF0dGFjaG1lbnRzKSBmcm9tIHlvdXIgc3lzdGVtLCBhbmQgZG8gbm90 DQpkaXNjbG9zZSB0aGUgY29udGVudCBvZiB0aGlzIGUtbWFpbCB0byBhbnkgb3RoZXIgcGVyc29u LiBUaGFuayB5b3UhDQo8L3ByZT48IS0tfS0tPg== --__=_Part_Boundary_003_1575240166.1124606075 Content-Type: text/plain Content-Transfer-Encoding: base64 MS4gQWRkIG10Njc3OSByZWdpc3RlcnMgZGVmaW5lIGZvciBpb21tdS4NCjIuIEFkZCBtdDY3Nzlf ZGF0YSBkZWZpbmUgdG8gc3VwcG9ydCBtdDY3NzkgaW9tbXUgSFcgaW5pdC4NCjMuIFRoZXJlIGFy ZSB0d28gaW9tbXVzLCBvbmUgaXMgbW1faW9tbXUsIHRoZSBvdGhlciBpcyB2cHVfaW9tbXUuDQpN TV9JT01NVSBpcyBjb25uZWN0ZWQgc21pX2xhcmIgdG8gc3VwcG9ydCBtdWx0aW1lZGlhIGVuZ2lu ZSB0bw0KYWNjZXNzIERSQU0sIGFuZCBWUFVfSU9NTVUgaXMgY29ubmVjdGVkIHRvIEFQVV9idXMg dG8gc3VwcG9ydA0KVlBVLE1ETEEsRURNQSB0byBhY2Nlc3MgRFJBTS4gTU1fSU9NTVUgYW5kIFZQ VV9JT01NVSB1c2UgdGhlIHNhbWUNCnBhZ2UgdGFibGUgdG8gc2ltcGxpZnkgZGVzaWduIGJ5ICJt dGtfaW9tbXVfZ2V0X200dV9kYXRhIi4NCjQuIEZvciBzbWlfbGFyYjYsIGl0IGRvZXNuJ3QgdXNl IG1tX2lvbW11LCBzbyB3ZSBjYW4gZGlzdGluZ3Vpc2gNCnZwdV9pb21tdSBieSBpdCB3aGVuIGV4 Y3V0ZXMgaW9tbXVfcHJvYmUuDQo1LiBGb3IgbXQ2Nzc5IEFQVV9JT01NVSBmYXVsdCBpZCBpcyBp cnJlZ3VsYXIsIHNvIGl0IHdhcyB0cmVhdGVkDQpzcGVjaWFsbHkuDQoNClNpZ25lZC1vZmYtYnk6 IENoYW8gSGFvIDxjaGFvLmhhb0BtZWRpYXRlay5jb20+DQotLS0NCiBkcml2ZXJzL2lvbW11L210 a19pb21tdS5jIHwgOTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tDQog ZHJpdmVycy9pb21tdS9tdGtfaW9tbXUuaCB8IDEwICsrKystDQogMiBmaWxlcyBjaGFuZ2VkLCA4 NyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv aW9tbXUvbXRrX2lvbW11LmMgYi9kcml2ZXJzL2lvbW11L210a19pb21tdS5jDQppbmRleCA4Y2Ey ZTk5OTY0ZmUuLmYyODQ3ZTY2MTEzNyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaW9tbXUvbXRrX2lv bW11LmMNCisrKyBiL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11LmMNCkBAIC0zOCwxMiArMzgsMjQg QEANCiAjZGVmaW5lIFJFR19NTVVfSU5WTERfRU5EX0EJCQkweDAyOA0KIA0KICNkZWZpbmUgUkVH X01NVV9JTlZfU0VMCQkJCTB4MDM4DQorI2RlZmluZSBSRUdfTU1VX0lOVl9TRUxfTVQ2Nzc5CQkJ MHgwMmMNCiAjZGVmaW5lIEZfSU5WTERfRU4wCQkJCUJJVCgwKQ0KICNkZWZpbmUgRl9JTlZMRF9F TjEJCQkJQklUKDEpDQogDQogI2RlZmluZSBSRUdfTU1VX1NUQU5EQVJEX0FYSV9NT0RFCQkweDA0 OA0KKw0KKyNkZWZpbmUgUkVHX01NVV9NSVNDX0NSVExfTVQ2Nzc5CQkweDA0OA0KKyNkZWZpbmUg UkVHX01NVV9TVEFOREFSRF9BWElfTU9ERV9NVDY3NzkJKEJJVCgzKSB8IEJJVCgxOSkpDQorI2Rl ZmluZSBSRUdfTU1VX0NPSEVSRU5DRV9FTgkJCShCSVQoMCkgfCBCSVQoMTYpKQ0KKyNkZWZpbmUg UkVHX01NVV9JTl9PUkRFUl9XUl9FTgkJCShCSVQoMSkgfCBCSVQoMTcpKQ0KKyNkZWZpbmUgRl9N TVVfSEFMRl9FTlRSWV9NT0RFX0wJCQkoQklUKDUpIHwgQklUKDIxKSkNCisjZGVmaW5lIEZfTU1V X0JMT0NLSU5HX01PREVfTAkJCShCSVQoNCkgfCBCSVQoMjApKQ0KKw0KICNkZWZpbmUgUkVHX01N VV9EQ01fRElTCQkJCTB4MDUwDQogDQorI2RlZmluZSBSRUdfTU1VX1dSX0xFTgkJCQkweDA1NA0K KyNkZWZpbmUgRl9NTVVfV1JfVEhST1RfRElTCQkJKEJJVCg1KSB8ICBCSVQoMjEpKQ0KKw0KICNk ZWZpbmUgUkVHX01NVV9DVFJMX1JFRwkJCTB4MTEwDQogI2RlZmluZSBGX01NVV9URl9QUk9UX1RP X1BST0dSQU1fQUREUgkJKDIgPDwgNCkNCiAjZGVmaW5lIEZfTU1VX1BSRUZFVENIX1JUX1JFUExB Q0VfTU9ECQlCSVQoNCkNCkBAIC04OCwxMCArMTAwLDE0IEBADQogI2RlZmluZSBSRUdfTU1VMV9J TlZMRF9QQQkJCTB4MTQ4DQogI2RlZmluZSBSRUdfTU1VMF9JTlRfSUQJCQkJMHgxNTANCiAjZGVm aW5lIFJFR19NTVUxX0lOVF9JRAkJCQkweDE1NA0KKyNkZWZpbmUgRl9NTVVfSU5UX0lEX0NPTU1f SUQoYSkJCQkoKChhKSA+PiA5KSAmIDB4NykNCisjZGVmaW5lIEZfTU1VX0lOVF9JRF9TVUJfQ09N TV9JRChhKQkJKCgoYSkgPj4gNykgJiAweDMpDQogI2RlZmluZSBGX01NVV9JTlRfSURfTEFSQl9J RChhKQkJCSgoKGEpID4+IDcpICYgMHg3KQ0KICNkZWZpbmUgRl9NTVVfSU5UX0lEX1BPUlRfSUQo YSkJCQkoKChhKSA+PiAyKSAmIDB4MWYpDQorI2RlZmluZSBGX01NVV9JTlRfSURfQ09NTV9BUFVf SUQoYSkJCSgoYSkgJiAweDMpDQorI2RlZmluZSBGX01NVV9JTlRfSURfU1VCX0FQVV9JRChhKQkJ KCgoYSkgPj4gMikgJiAweDMpDQogDQotI2RlZmluZSBNVEtfUFJPVEVDVF9QQV9BTElHTgkJCTEy OA0KKyNkZWZpbmUgTVRLX1BST1RFQ1RfUEFfQUxJR04JCQkyNTYNCiANCiAvKg0KICAqIEdldCB0 aGUgbG9jYWwgYXJiaXRlciBJRCBhbmQgdGhlIHBvcnRpZCB3aXRoaW4gdGhlIGxhcmIgYXJiaXRl cg0KQEAgLTE2NSw3ICsxODEsNyBAQCBzdGF0aWMgdm9pZCBtdGtfaW9tbXVfdGxiX2ZsdXNoX2Fs bCh2b2lkICpjb29raWUpDQogDQogCWZvcl9lYWNoX200dShkYXRhKSB7DQogCQl3cml0ZWxfcmVs YXhlZChGX0lOVkxEX0VOMSB8IEZfSU5WTERfRU4wLA0KLQkJCSAgICAgICBkYXRhLT5iYXNlICsg UkVHX01NVV9JTlZfU0VMKTsNCisJCQkgICAgICAgZGF0YS0+YmFzZSArIGRhdGEtPnBsYXRfZGF0 YS0+aW52X3NlbF9yZWcpOw0KIAkJd3JpdGVsX3JlbGF4ZWQoRl9BTExfSU5WTEQsIGRhdGEtPmJh c2UgKyBSRUdfTU1VX0lOVkFMSURBVEUpOw0KIAkJd21iKCk7IC8qIE1ha2Ugc3VyZSB0aGUgdGxi IGZsdXNoIGFsbCBkb25lICovDQogCX0NCkBAIC0xODIsNyArMTk4LDcgQEAgc3RhdGljIHZvaWQg bXRrX2lvbW11X3RsYl9mbHVzaF9yYW5nZV9zeW5jKHVuc2lnbmVkIGxvbmcgaW92YSwgc2l6ZV90 IHNpemUsDQogCWZvcl9lYWNoX200dShkYXRhKSB7DQogCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGF0 YS0+dGxiX2xvY2ssIGZsYWdzKTsNCiAJCXdyaXRlbF9yZWxheGVkKEZfSU5WTERfRU4xIHwgRl9J TlZMRF9FTjAsDQotCQkJICAgICAgIGRhdGEtPmJhc2UgKyBSRUdfTU1VX0lOVl9TRUwpOw0KKwkJ CSAgICAgICBkYXRhLT5iYXNlICsgZGF0YS0+cGxhdF9kYXRhLT5pbnZfc2VsX3JlZyk7DQogDQog CQl3cml0ZWxfcmVsYXhlZChpb3ZhLCBkYXRhLT5iYXNlICsgUkVHX01NVV9JTlZMRF9TVEFSVF9B KTsNCiAJCXdyaXRlbF9yZWxheGVkKGlvdmEgKyBzaXplIC0gMSwNCkBAIC0yMjYsNyArMjQyLDcg QEAgc3RhdGljIGlycXJldHVybl90IG10a19pb21tdV9pc3IoaW50IGlycSwgdm9pZCAqZGV2X2lk KQ0KIAlzdHJ1Y3QgbXRrX2lvbW11X2RhdGEgKmRhdGEgPSBkZXZfaWQ7DQogCXN0cnVjdCBtdGtf aW9tbXVfZG9tYWluICpkb20gPSBkYXRhLT5tNHVfZG9tOw0KIAl1MzIgaW50X3N0YXRlLCByZWd2 YWwsIGZhdWx0X2lvdmEsIGZhdWx0X3BhOw0KLQl1bnNpZ25lZCBpbnQgZmF1bHRfbGFyYiwgZmF1 bHRfcG9ydDsNCisJdW5zaWduZWQgaW50IGZhdWx0X2xhcmIsIGZhdWx0X3BvcnQsIHN1Yl9jb21t ID0gMDsNCiAJYm9vbCBsYXllciwgd3JpdGU7DQogDQogCS8qIFJlYWQgZXJyb3IgaW5mbyBmcm9t IHJlZ2lzdGVycyAqLw0KQEAgLTI0MiwxNyArMjU4LDMwIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBt dGtfaW9tbXVfaXNyKGludCBpcnEsIHZvaWQgKmRldl9pZCkNCiAJfQ0KIAlsYXllciA9IGZhdWx0 X2lvdmEgJiBGX01NVV9GQVVMVF9WQV9MQVlFUl9CSVQ7DQogCXdyaXRlID0gZmF1bHRfaW92YSAm IEZfTU1VX0ZBVUxUX1ZBX1dSSVRFX0JJVDsNCi0JZmF1bHRfbGFyYiA9IEZfTU1VX0lOVF9JRF9M QVJCX0lEKHJlZ3ZhbCk7DQogCWZhdWx0X3BvcnQgPSBGX01NVV9JTlRfSURfUE9SVF9JRChyZWd2 YWwpOw0KKwlpZiAoZGF0YS0+cGxhdF9kYXRhLT5oYXNfc3ViX2NvbW1bZGF0YS0+bTR1X2lkXSkg ew0KKwkJLyogbTR1MSBpcyBWUFUgaW4gbXQ2Nzc5LiovDQorCQlpZiAoZGF0YS0+bTR1X2lkICYm IGRhdGEtPnBsYXRfZGF0YS0+bTR1X3BsYXQgPT0gTTRVX01UNjc3OSkgew0KKwkJCWZhdWx0X2xh cmIgPSBGX01NVV9JTlRfSURfQ09NTV9BUFVfSUQocmVndmFsKTsNCisJCQlzdWJfY29tbSA9IEZf TU1VX0lOVF9JRF9TVUJfQVBVX0lEKHJlZ3ZhbCk7DQorCQkJZmF1bHRfcG9ydCA9IDA7IC8qIGZv ciBtdDY3NzkgQVBVIElEIGlzIGlycmVndWxhciAqLw0KKwkJfSBlbHNlIHsNCisJCQlmYXVsdF9s YXJiID0gRl9NTVVfSU5UX0lEX0NPTU1fSUQocmVndmFsKTsNCisJCQlzdWJfY29tbSA9IEZfTU1V X0lOVF9JRF9TVUJfQ09NTV9JRChyZWd2YWwpOw0KKwkJfQ0KKwl9IGVsc2Ugew0KKwkJZmF1bHRf bGFyYiA9IEZfTU1VX0lOVF9JRF9MQVJCX0lEKHJlZ3ZhbCk7DQorCX0NCiANCi0JZmF1bHRfbGFy YiA9IGRhdGEtPnBsYXRfZGF0YS0+bGFyYmlkX3JlbWFwW2ZhdWx0X2xhcmJdOw0KKwlmYXVsdF9s YXJiID0gZGF0YS0+cGxhdF9kYXRhLT5sYXJiaWRfcmVtYXBbZGF0YS0+bTR1X2lkXVtmYXVsdF9s YXJiXTsNCiANCiAJaWYgKHJlcG9ydF9pb21tdV9mYXVsdCgmZG9tLT5kb21haW4sIGRhdGEtPmRl diwgZmF1bHRfaW92YSwNCiAJCQkgICAgICAgd3JpdGUgPyBJT01NVV9GQVVMVF9XUklURSA6IElP TU1VX0ZBVUxUX1JFQUQpKSB7DQogCQlkZXZfZXJyX3JhdGVsaW1pdGVkKA0KIAkJCWRhdGEtPmRl diwNCi0JCQkiZmF1bHQgdHlwZT0weCV4IGlvdmE9MHgleCBwYT0weCV4IGxhcmI9JWQgcG9ydD0l ZCBsYXllcj0lZCAlc1xuIiwNCi0JCQlpbnRfc3RhdGUsIGZhdWx0X2lvdmEsIGZhdWx0X3BhLCBm YXVsdF9sYXJiLCBmYXVsdF9wb3J0LA0KKwkJCSJmYXVsdCB0eXBlPTB4JXggaW92YT0weCV4IHBh PTB4JXggbGFyYj0lZCBzdWJfY29tbT0lZCBwb3J0PSVkIHJlZ3ZhbD0weCV4IGxheWVyPSVkICVz XG4iLA0KKwkJCWludF9zdGF0ZSwgZmF1bHRfaW92YSwgZmF1bHRfcGEsIGZhdWx0X2xhcmIsDQor CQkJc3ViX2NvbW0sIGZhdWx0X3BvcnQsIHJlZ3ZhbCwNCiAJCQlsYXllciwgd3JpdGUgPyAid3Jp dGUiIDogInJlYWQiKTsNCiAJfQ0KIA0KQEAgLTU0NSwxMSArNTc0LDEyIEBAIHN0YXRpYyBpbnQg bXRrX2lvbW11X2h3X2luaXQoY29uc3Qgc3RydWN0IG10a19pb21tdV9kYXRhICpkYXRhKQ0KIAkJ cmV0dXJuIHJldDsNCiAJfQ0KIA0KKwlyZWd2YWwgPSByZWFkbF9yZWxheGVkKGRhdGEtPmJhc2Ug KyBSRUdfTU1VX0NUUkxfUkVHKTsNCiAJaWYgKGRhdGEtPnBsYXRfZGF0YS0+bTR1X3BsYXQgPT0g TTRVX01UODE3MykNCi0JCXJlZ3ZhbCA9IEZfTU1VX1BSRUZFVENIX1JUX1JFUExBQ0VfTU9EIHwN CisJCXJlZ3ZhbCB8PSBGX01NVV9QUkVGRVRDSF9SVF9SRVBMQUNFX01PRCB8DQogCQkJIEZfTU1V X1RGX1BST1RfVE9fUFJPR1JBTV9BRERSX01UODE3MzsNCiAJZWxzZQ0KLQkJcmVndmFsID0gRl9N TVVfVEZfUFJPVF9UT19QUk9HUkFNX0FERFI7DQorCQlyZWd2YWwgfD0gRl9NTVVfVEZfUFJPVF9U T19QUk9HUkFNX0FERFI7DQogCXdyaXRlbF9yZWxheGVkKHJlZ3ZhbCwgZGF0YS0+YmFzZSArIFJF R19NTVVfQ1RSTF9SRUcpOw0KIA0KIAlyZWd2YWwgPSBGX0wyX01VTElUX0hJVF9FTiB8DQpAQCAt NTg5LDYgKzYxOSwyMCBAQCBzdGF0aWMgaW50IG10a19pb21tdV9od19pbml0KGNvbnN0IHN0cnVj dCBtdGtfaW9tbXVfZGF0YSAqZGF0YSkNCiAJaWYgKGRhdGEtPnBsYXRfZGF0YS0+cmVzZXRfYXhp KQ0KIAkJd3JpdGVsX3JlbGF4ZWQoMCwgZGF0YS0+YmFzZSArIFJFR19NTVVfU1RBTkRBUkRfQVhJ X01PREUpOw0KIA0KKwlpZiAoZGF0YS0+cGxhdF9kYXRhLT5oYXNfd3JfbGVuKSB7DQorCQkvKiB3 cml0ZSBjb21tYW5kIHRocm90dGxpbmcgbW9kZSAqLw0KKwkJcmVndmFsID0gcmVhZGxfcmVsYXhl ZChkYXRhLT5iYXNlICsgUkVHX01NVV9XUl9MRU4pOw0KKwkJcmVndmFsICY9IH5GX01NVV9XUl9U SFJPVF9ESVM7DQorCQl3cml0ZWxfcmVsYXhlZChyZWd2YWwsIGRhdGEtPmJhc2UgKyBSRUdfTU1V X1dSX0xFTik7DQorCX0NCisJLyogc3BlY2lhbCBzZXR0aW5ncyBmb3IgbW11MCAobXVsdGltZWRp YSBpb21tdSkgKi8NCisJaWYgKGRhdGEtPnBsYXRfZGF0YS0+aGFzX21pc2NfY3RybFtkYXRhLT5t NHVfaWRdKSB7DQorCQlyZWd2YWwgPSByZWFkbF9yZWxheGVkKGRhdGEtPmJhc2UgKyBSRUdfTU1V X01JU0NfQ1JUTF9NVDY3NzkpOw0KKwkJLyogbm9uLXN0YW5kYXJkIEFYSSBtb2RlICovDQorCQly ZWd2YWwgJj0gflJFR19NTVVfU1RBTkRBUkRfQVhJX01PREVfTVQ2Nzc5Ow0KKwkJd3JpdGVsX3Jl bGF4ZWQocmVndmFsLCBkYXRhLT5iYXNlICsgUkVHX01NVV9NSVNDX0NSVExfTVQ2Nzc5KTsNCisJ fQ0KKw0KIAlpZiAoZGV2bV9yZXF1ZXN0X2lycShkYXRhLT5kZXYsIGRhdGEtPmlycSwgbXRrX2lv bW11X2lzciwgMCwNCiAJCQkgICAgIGRldl9uYW1lKGRhdGEtPmRldiksICh2b2lkICopZGF0YSkp IHsNCiAJCXdyaXRlbF9yZWxheGVkKDAsIGRhdGEtPmJhc2UgKyBSRUdfTU1VX1BUX0JBU0VfQURE Uik7DQpAQCAtNjc4LDYgKzcyMiw5IEBAIHN0YXRpYyBpbnQgbXRrX2lvbW11X3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogCQl9DQogCQlkYXRhLT5sYXJiX2ltdVtpZF0uZGV2 ID0gJnBsYXJiZGV2LT5kZXY7DQogDQorCQlpZiAoZGF0YS0+cGxhdF9kYXRhLT5tNHUxX21hc2sg PT0gKDEgPDwgaWQpKQ0KKwkJCWRhdGEtPm00dV9pZCA9IDE7DQorDQogCQljb21wb25lbnRfbWF0 Y2hfYWRkX3JlbGVhc2UoZGV2LCAmbWF0Y2gsIHJlbGVhc2Vfb2YsDQogCQkJCQkgICAgY29tcGFy ZV9vZiwgbGFyYm5vZGUpOw0KIAl9DQpAQCAtNzMxLDYgKzc3OCw3IEBAIHN0YXRpYyBpbnQgX19t YXliZV91bnVzZWQgbXRrX2lvbW11X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQ0KIAlzdHJ1 Y3QgbXRrX2lvbW11X3N1c3BlbmRfcmVnICpyZWcgPSAmZGF0YS0+cmVnOw0KIAl2b2lkIF9faW9t ZW0gKmJhc2UgPSBkYXRhLT5iYXNlOw0KIA0KKwlyZWctPndyX2xlbiA9IHJlYWRsX3JlbGF4ZWQo YmFzZSArIFJFR19NTVVfV1JfTEVOKTsNCiAJcmVnLT5zdGFuZGFyZF9heGlfbW9kZSA9IHJlYWRs X3JlbGF4ZWQoYmFzZSArDQogCQkJCQkgICAgICAgUkVHX01NVV9TVEFOREFSRF9BWElfTU9ERSk7 DQogCXJlZy0+ZGNtX2RpcyA9IHJlYWRsX3JlbGF4ZWQoYmFzZSArIFJFR19NTVVfRENNX0RJUyk7 DQpAQCAtNzU2LDYgKzgwNCw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbXRrX2lvbW11 X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQogCQlkZXZfZXJyKGRhdGEtPmRldiwgIkZhaWxl ZCB0byBlbmFibGUgY2xrKCVkKSBpbiByZXN1bWVcbiIsIHJldCk7DQogCQlyZXR1cm4gcmV0Ow0K IAl9DQorCXdyaXRlbF9yZWxheGVkKHJlZy0+d3JfbGVuLCBiYXNlICsgUkVHX01NVV9XUl9MRU4p Ow0KIAl3cml0ZWxfcmVsYXhlZChyZWctPnN0YW5kYXJkX2F4aV9tb2RlLA0KIAkJICAgICAgIGJh c2UgKyBSRUdfTU1VX1NUQU5EQVJEX0FYSV9NT0RFKTsNCiAJd3JpdGVsX3JlbGF4ZWQocmVnLT5k Y21fZGlzLCBiYXNlICsgUkVHX01NVV9EQ01fRElTKTsNCkBAIC03NzksNyArODI4LDIwIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2lvbW11X3BsYXRfZGF0YSBtdDI3MTJfZGF0YSA9IHsNCiAJ Lmhhc180Z2JfbW9kZSA9IHRydWUsDQogCS5oYXNfYmNsayAgICAgPSB0cnVlLA0KIAkuaGFzX3Zs ZF9wYV9ybmcgICA9IHRydWUsDQotCS5sYXJiaWRfcmVtYXAgPSB7MCwgMSwgMiwgMywgNCwgNSwg NiwgNywgOCwgOX0sDQorCS5sYXJiaWRfcmVtYXBbMF0gPSB7MCwgMSwgMiwgMywgNCwgNSwgNiwg NywgOCwgOX0sDQorCS5pbnZfc2VsX3JlZyA9IFJFR19NTVVfSU5WX1NFTCwNCit9Ow0KKw0KK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2lvbW11X3BsYXRfZGF0YSBtdDY3NzlfZGF0YSA9IHsNCisJ Lm00dV9wbGF0ID0gTTRVX01UNjc3OSwNCisJLmxhcmJpZF9yZW1hcFswXSA9IHswLCAxLCAyLCAz LCA1LCA3LCAxMCwgOX0sDQorCS8qIHZwNmEsIHZwNmIsIG1kbGEvY29yZTIsIG1kbGEvZWRtYyov DQorCS5sYXJiaWRfcmVtYXBbMV0gPSB7MiwgMCwgMywgMX0sDQorCS5oYXNfc3ViX2NvbW0gPSB7 dHJ1ZSwgdHJ1ZX0sDQorCS5oYXNfd3JfbGVuID0gdHJ1ZSwNCisJLmhhc19taXNjX2N0cmwgPSB7 dHJ1ZSwgZmFsc2V9LA0KKwkuaW52X3NlbF9yZWcgPSBSRUdfTU1VX0lOVl9TRUxfTVQ2Nzc5LA0K KwkubTR1MV9tYXNrID0gIEJJVCg2KSwNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRr X2lvbW11X3BsYXRfZGF0YSBtdDgxNzNfZGF0YSA9IHsNCkBAIC03ODcsMTcgKzg0OSwyMCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IG10a19pb21tdV9wbGF0X2RhdGEgbXQ4MTczX2RhdGEgPSB7DQog CS5oYXNfNGdiX21vZGUgPSB0cnVlLA0KIAkuaGFzX2JjbGsgICAgID0gdHJ1ZSwNCiAJLnJlc2V0 X2F4aSAgICA9IHRydWUsDQotCS5sYXJiaWRfcmVtYXAgPSB7MCwgMSwgMiwgMywgNCwgNX0sIC8q IExpbmVhciBtYXBwaW5nLiAqLw0KKwkubGFyYmlkX3JlbWFwWzBdID0gezAsIDEsIDIsIDMsIDQs IDV9LCAvKiBMaW5lYXIgbWFwcGluZy4gKi8NCisJLmludl9zZWxfcmVnID0gUkVHX01NVV9JTlZf U0VMLA0KIH07DQogDQogc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfaW9tbXVfcGxhdF9kYXRhIG10 ODE4M19kYXRhID0gew0KIAkubTR1X3BsYXQgICAgID0gTTRVX01UODE4MywNCiAJLnJlc2V0X2F4 aSAgICA9IHRydWUsDQotCS5sYXJiaWRfcmVtYXAgPSB7MCwgNCwgNSwgNiwgNywgMiwgMywgMX0s DQorCS5sYXJiaWRfcmVtYXBbMF0gPSB7MCwgNCwgNSwgNiwgNywgMiwgMywgMX0sDQorCS5pbnZf c2VsX3JlZyA9IFJFR19NTVVfSU5WX1NFTCwNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg b2ZfZGV2aWNlX2lkIG10a19pb21tdV9vZl9pZHNbXSA9IHsNCiAJeyAuY29tcGF0aWJsZSA9ICJt ZWRpYXRlayxtdDI3MTItbTR1IiwgLmRhdGEgPSAmbXQyNzEyX2RhdGF9LA0KKwl7IC5jb21wYXRp YmxlID0gIm1lZGlhdGVrLG10Njc3OS1tNHUiLCAuZGF0YSA9ICZtdDY3NzlfZGF0YX0sDQogCXsg LmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLW00dSIsIC5kYXRhID0gJm10ODE3M19kYXRh fSwNCiAJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxODMtbTR1IiwgLmRhdGEgPSAmbXQ4 MTgzX2RhdGF9LA0KIAl7fQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11Lmgg Yi9kcml2ZXJzL2lvbW11L210a19pb21tdS5oDQppbmRleCBlYTk0OWEzMjRlMzMuLjEzMmRjNzY1 YTQwYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11LmgNCisrKyBiL2RyaXZl cnMvaW9tbXUvbXRrX2lvbW11LmgNCkBAIC0yNSwxMSArMjUsMTMgQEAgc3RydWN0IG10a19pb21t dV9zdXNwZW5kX3JlZyB7DQogCXUzMgkJCQlpbnRfbWFpbl9jb250cm9sOw0KIAl1MzIJCQkJaXZy cF9wYWRkcjsNCiAJdTMyCQkJCXZsZF9wYV9ybmc7DQorCXUzMgkJCQl3cl9sZW47DQogfTsNCiAN CiBlbnVtIG10a19pb21tdV9wbGF0IHsNCiAJTTRVX01UMjcwMSwNCiAJTTRVX01UMjcxMiwNCisJ TTRVX01UNjc3OSwNCiAJTTRVX01UODE3MywNCiAJTTRVX01UODE4MywNCiB9Ow0KQEAgLTQyLDcg KzQ0LDEyIEBAIHN0cnVjdCBtdGtfaW9tbXVfcGxhdF9kYXRhIHsNCiAJYm9vbCAgICAgICAgICAg ICAgICBoYXNfYmNsazsNCiAJYm9vbCAgICAgICAgICAgICAgICBoYXNfdmxkX3BhX3JuZzsNCiAJ Ym9vbCAgICAgICAgICAgICAgICByZXNldF9heGk7DQotCXVuc2lnbmVkIGNoYXIgICAgICAgbGFy YmlkX3JlbWFwW01US19MQVJCX05SX01BWF07DQorCWJvb2wgICAgICAgICAgICAgICAgaGFzX3N1 Yl9jb21tWzJdOw0KKwlib29sICAgICAgICAgICAgICAgIGhhc193cl9sZW47DQorCWJvb2wgICAg ICAgICAgICAgICAgaGFzX21pc2NfY3RybFsyXTsNCisJdTMyICAgICAgICAgICAgICAgICBpbnZf c2VsX3JlZzsNCisJdTMyICAgICAgICAgICAgICAgICBtNHUxX21hc2s7DQorCXVuc2lnbmVkIGNo YXIgICAgICAgbGFyYmlkX3JlbWFwWzJdW01US19MQVJCX05SX01BWF07DQogfTsNCiANCiBzdHJ1 Y3QgbXRrX2lvbW11X2RvbWFpbjsNCkBAIC01OSw2ICs2Niw3IEBAIHN0cnVjdCBtdGtfaW9tbXVf ZGF0YSB7DQogCWJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlXzRHQjsNCiAJ c3BpbmxvY2tfdAkJCXRsYl9sb2NrOyAvKiBsb2NrIGZvciB0bGIgcmFuZ2UgZmx1c2ggKi8NCiAN CisJdTMyCQkJCW00dV9pZDsNCiAJc3RydWN0IGlvbW11X2RldmljZQkJaW9tbXU7DQogCWNvbnN0 IHN0cnVjdCBtdGtfaW9tbXVfcGxhdF9kYXRhICpwbGF0X2RhdGE7DQogDQotLSANCjIuMTguMA0K --__=_Part_Boundary_003_1575240166.1124606075-- --===============8422464841813252703== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu --===============8422464841813252703==--