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=-5.5 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,UNWANTED_LANGUAGE_BODY, USER_AGENT_SANE_2 autolearn=unavailable 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 4B8F8C2D0DA for ; Wed, 25 Dec 2019 06:59:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0BD592072A for ; Wed, 25 Dec 2019 06:59:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="PsJeMTkX" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726352AbfLYG7m (ORCPT ); Wed, 25 Dec 2019 01:59:42 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:60614 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725865AbfLYG7m (ORCPT ); Wed, 25 Dec 2019 01:59:42 -0500 X-UUID: 4a640fa9b08c4d2d91fbf6f0085d866f-20191225 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=Pg7AnzKAKzQJK/UPqk1ILEP4QA125SuECfkXqQGQ7mU=; b=PsJeMTkXvM2s2animk9dTA4gqWEbQZFIBkQKHx15xd2uOlO7X8TQqnFELShU487KoprmUW+r46bRbZjd1q9Locy6We+JuvtJxNHEtxh6jPWA70XK03VrIAaPc+lmLiE/I8E3V3n0B8yXTMxOYkc2J8vOTmDwtnQ2ofzWzag/ZaA=; X-UUID: 4a640fa9b08c4d2d91fbf6f0085d866f-20191225 Received: from mtkcas09.mediatek.inc [(172.21.101.178)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1338988706; Wed, 25 Dec 2019 14:59:26 +0800 Received: from mtkcas09.mediatek.inc (172.21.101.178) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 25 Dec 2019 14:59:05 +0800 Received: from [10.15.20.246] (10.15.20.246) by mtkcas09.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Wed, 25 Dec 2019 14:59:38 +0800 Message-ID: <1577257111.1137.3.camel@mbjsdccf07> Subject: Re: [RESEND,PATCH 02/13] iommu/mediatek: Add mt6779 IOMMU basic support From: chao hao To: Yong Wu CC: Joerg Roedel , Rob Herring , Matthias Brugger , , , , , , , Jun Yan , Cui Zhang , Guangming Cao , Anan Sun , Miles Chen , Chao Hao Date: Wed, 25 Dec 2019 14:58:31 +0800 In-Reply-To: <1576498063.28043.74.camel@mhfsdcap03> References: <20191104115238.2394-1-chao.hao@mediatek.com> <20191104115238.2394-3-chao.hao@mediatek.com> <1576498063.28043.74.camel@mhfsdcap03> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org T24gTW9uLCAyMDE5LTEyLTE2IGF0IDIwOjA3ICswODAwLCBZb25nIFd1IHdyb3RlOg0KPiBPbiBN b24sIDIwMTktMTEtMDQgYXQgMTk6NTIgKzA4MDAsIENoYW8gSGFvIHdyb3RlOg0KPiA+IDEuIEFk ZCBtdDY3NzkgcmVnaXN0ZXJzIGRlZmluZSBmb3IgaW9tbXUuDQo+ID4gMi4gQWRkIG10Njc3OV9k YXRhIGRlZmluZSB0byBzdXBwb3J0IG10Njc3OSBpb21tdSBIVyBpbml0Lg0KPiA+IDMuIFRoZXJl IGFyZSB0d28gaW9tbXVzLCBvbmUgaXMgbW1faW9tbXUsIHRoZSBvdGhlciBpcyB2cHVfaW9tbXUu DQo+ID4gTU1fSU9NTVUgaXMgY29ubmVjdGVkIHNtaV9sYXJiIHRvIHN1cHBvcnQgbXVsdGltZWRp YSBlbmdpbmUgdG8NCj4gPiBhY2Nlc3MgRFJBTSwgYW5kIFZQVV9JT01NVSBpcyBjb25uZWN0ZWQg dG8gQVBVX2J1cyB0byBzdXBwb3J0DQo+ID4gVlBVLE1ETEEsRURNQSB0byBhY2Nlc3MgRFJBTS4g TU1fSU9NTVUgYW5kIFZQVV9JT01NVSB1c2UgdGhlIHNhbWUNCj4gPiBwYWdlIHRhYmxlIHRvIHNp bXBsaWZ5IGRlc2lnbiBieSAibXRrX2lvbW11X2dldF9tNHVfZGF0YSIuDQo+ID4gNC4gRm9yIHNt aV9sYXJiNiwgaXQgZG9lc24ndCB1c2UgbW1faW9tbXUsIHNvIHdlIGNhbiBkaXN0aW5ndWlzaA0K PiA+IHZwdV9pb21tdSBieSBpdCB3aGVuIGV4Y3V0ZXMgaW9tbXVfcHJvYmUuDQo+ID4gNS4gRm9y IG10Njc3OSBBUFVfSU9NTVUgZmF1bHQgaWQgaXMgaXJyZWd1bGFyLCBzbyBpdCB3YXMgdHJlYXRl ZA0KPiA+IHNwZWNpYWxseS4NCj4gPiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBDaGFvIEhhbyA8Y2hh by5oYW9AbWVkaWF0ZWsuY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL2lvbW11L210a19pb21t dS5jIHwgOTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tDQo+ID4gIGRy aXZlcnMvaW9tbXUvbXRrX2lvbW11LmggfCAxMCArKysrLQ0KPiA+ICAyIGZpbGVzIGNoYW5nZWQs IDg3IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2lvbW11L210a19pb21tdS5jIGIvZHJpdmVycy9pb21tdS9tdGtfaW9tbXUuYw0K PiA+IGluZGV4IDhjYTJlOTk5NjRmZS4uZjI4NDdlNjYxMTM3IDEwMDY0NA0KPiA+IC0tLSBhL2Ry aXZlcnMvaW9tbXUvbXRrX2lvbW11LmMNCj4gPiArKysgYi9kcml2ZXJzL2lvbW11L210a19pb21t dS5jDQo+ID4gQEAgLTM4LDEyICszOCwyNCBAQA0KPiA+ICAjZGVmaW5lIFJFR19NTVVfSU5WTERf RU5EX0EJCQkweDAyOA0KPiA+ICANCj4gPiAgI2RlZmluZSBSRUdfTU1VX0lOVl9TRUwJCQkJMHgw MzgNCj4gPiArI2RlZmluZSBSRUdfTU1VX0lOVl9TRUxfTVQ2Nzc5CQkJMHgwMmMNCj4gPiAgI2Rl ZmluZSBGX0lOVkxEX0VOMAkJCQlCSVQoMCkNCj4gPiAgI2RlZmluZSBGX0lOVkxEX0VOMQkJCQlC SVQoMSkNCj4gPiAgDQo+ID4gICNkZWZpbmUgUkVHX01NVV9TVEFOREFSRF9BWElfTU9ERQkJMHgw NDgNCj4gPiArDQo+ID4gKyNkZWZpbmUgUkVHX01NVV9NSVNDX0NSVExfTVQ2Nzc5CQkweDA0OA0K PiANCj4gRGVmaW5pbmcgdHdvIHJlZ2lzdGVyIGluIHRoZSBzYW1lIG9mZnNldCBsb29rIHN0cmFu Z2UuIHNlZSBiZWxvdy4NCj4gDQo+ID4gKyNkZWZpbmUgUkVHX01NVV9TVEFOREFSRF9BWElfTU9E RV9NVDY3NzkJKEJJVCgzKSB8IEJJVCgxOSkpDQo+ID4gKyNkZWZpbmUgUkVHX01NVV9DT0hFUkVO Q0VfRU4JCQkoQklUKDApIHwgQklUKDE2KSkNCj4gPiArI2RlZmluZSBSRUdfTU1VX0lOX09SREVS X1dSX0VOCQkJKEJJVCgxKSB8IEJJVCgxNykpDQo+ID4gKyNkZWZpbmUgRl9NTVVfSEFMRl9FTlRS WV9NT0RFX0wJCQkoQklUKDUpIHwgQklUKDIxKSkNCj4gPiArI2RlZmluZSBGX01NVV9CTE9DS0lO R19NT0RFX0wJCQkoQklUKDQpIHwgQklUKDIwKSkNCj4gDQo+IFRoZSBsYXN0IGZvdXIgb25lcyBh cmUgbm90IHVzZWQuIFBsZWFzZSByZW1vdmUuDQo+IA0KPiA+ICsNCj4gPiAgI2RlZmluZSBSRUdf TU1VX0RDTV9ESVMJCQkJMHgwNTANCj4gPiAgDQo+ID4gKyNkZWZpbmUgUkVHX01NVV9XUl9MRU4J CQkJMHgwNTQNCj4gPiArI2RlZmluZSBGX01NVV9XUl9USFJPVF9ESVMJCQkoQklUKDUpIHwgIEJJ VCgyMSkpDQo+ID4gKw0KPiA+ICAjZGVmaW5lIFJFR19NTVVfQ1RSTF9SRUcJCQkweDExMA0KPiA+ ICAjZGVmaW5lIEZfTU1VX1RGX1BST1RfVE9fUFJPR1JBTV9BRERSCQkoMiA8PCA0KQ0KPiA+ICAj ZGVmaW5lIEZfTU1VX1BSRUZFVENIX1JUX1JFUExBQ0VfTU9ECQlCSVQoNCkNCj4gPiBAQCAtODgs MTAgKzEwMCwxNCBAQA0KPiA+ICAjZGVmaW5lIFJFR19NTVUxX0lOVkxEX1BBCQkJMHgxNDgNCj4g PiAgI2RlZmluZSBSRUdfTU1VMF9JTlRfSUQJCQkJMHgxNTANCj4gPiAgI2RlZmluZSBSRUdfTU1V MV9JTlRfSUQJCQkJMHgxNTQNCj4gPiArI2RlZmluZSBGX01NVV9JTlRfSURfQ09NTV9JRChhKQkJ CSgoKGEpID4+IDkpICYgMHg3KQ0KPiA+ICsjZGVmaW5lIEZfTU1VX0lOVF9JRF9TVUJfQ09NTV9J RChhKQkJKCgoYSkgPj4gNykgJiAweDMpDQo+ID4gICNkZWZpbmUgRl9NTVVfSU5UX0lEX0xBUkJf SUQoYSkJCQkoKChhKSA+PiA3KSAmIDB4NykNCj4gPiAgI2RlZmluZSBGX01NVV9JTlRfSURfUE9S VF9JRChhKQkJCSgoKGEpID4+IDIpICYgMHgxZikNCj4gPiArI2RlZmluZSBGX01NVV9JTlRfSURf Q09NTV9BUFVfSUQoYSkJCSgoYSkgJiAweDMpDQo+ID4gKyNkZWZpbmUgRl9NTVVfSU5UX0lEX1NV Ql9BUFVfSUQoYSkJCSgoKGEpID4+IDIpICYgMHgzKQ0KPiA+ICANCj4gPiAtI2RlZmluZSBNVEtf UFJPVEVDVF9QQV9BTElHTgkJCTEyOA0KPiA+ICsjZGVmaW5lIE1US19QUk9URUNUX1BBX0FMSUdO CQkJMjU2DQo+ID4gIA0KPiA+ICAvKg0KPiA+ICAgKiBHZXQgdGhlIGxvY2FsIGFyYml0ZXIgSUQg YW5kIHRoZSBwb3J0aWQgd2l0aGluIHRoZSBsYXJiIGFyYml0ZXINCj4gPiBAQCAtMTY1LDcgKzE4 MSw3IEBAIHN0YXRpYyB2b2lkIG10a19pb21tdV90bGJfZmx1c2hfYWxsKHZvaWQgKmNvb2tpZSkN Cj4gPiAgDQo+ID4gIAlmb3JfZWFjaF9tNHUoZGF0YSkgew0KPiA+ICAJCXdyaXRlbF9yZWxheGVk KEZfSU5WTERfRU4xIHwgRl9JTlZMRF9FTjAsDQo+ID4gLQkJCSAgICAgICBkYXRhLT5iYXNlICsg UkVHX01NVV9JTlZfU0VMKTsNCj4gPiArCQkJICAgICAgIGRhdGEtPmJhc2UgKyBkYXRhLT5wbGF0 X2RhdGEtPmludl9zZWxfcmVnKTsNCj4gPiAgCQl3cml0ZWxfcmVsYXhlZChGX0FMTF9JTlZMRCwg ZGF0YS0+YmFzZSArIFJFR19NTVVfSU5WQUxJREFURSk7DQo+ID4gIAkJd21iKCk7IC8qIE1ha2Ug c3VyZSB0aGUgdGxiIGZsdXNoIGFsbCBkb25lICovDQo+ID4gIAl9DQo+ID4gQEAgLTE4Miw3ICsx OTgsNyBAQCBzdGF0aWMgdm9pZCBtdGtfaW9tbXVfdGxiX2ZsdXNoX3JhbmdlX3N5bmModW5zaWdu ZWQgbG9uZyBpb3ZhLCBzaXplX3Qgc2l6ZSwNCj4gPiAgCWZvcl9lYWNoX200dShkYXRhKSB7DQo+ ID4gIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmRhdGEtPnRsYl9sb2NrLCBmbGFncyk7DQo+ID4gIAkJ d3JpdGVsX3JlbGF4ZWQoRl9JTlZMRF9FTjEgfCBGX0lOVkxEX0VOMCwNCj4gPiAtCQkJICAgICAg IGRhdGEtPmJhc2UgKyBSRUdfTU1VX0lOVl9TRUwpOw0KPiA+ICsJCQkgICAgICAgZGF0YS0+YmFz ZSArIGRhdGEtPnBsYXRfZGF0YS0+aW52X3NlbF9yZWcpOw0KPiA+ICANCj4gPiAgCQl3cml0ZWxf cmVsYXhlZChpb3ZhLCBkYXRhLT5iYXNlICsgUkVHX01NVV9JTlZMRF9TVEFSVF9BKTsNCj4gPiAg CQl3cml0ZWxfcmVsYXhlZChpb3ZhICsgc2l6ZSAtIDEsDQo+ID4gQEAgLTIyNiw3ICsyNDIsNyBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgbXRrX2lvbW11X2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQp DQo+ID4gIAlzdHJ1Y3QgbXRrX2lvbW11X2RhdGEgKmRhdGEgPSBkZXZfaWQ7DQo+ID4gIAlzdHJ1 Y3QgbXRrX2lvbW11X2RvbWFpbiAqZG9tID0gZGF0YS0+bTR1X2RvbTsNCj4gPiAgCXUzMiBpbnRf c3RhdGUsIHJlZ3ZhbCwgZmF1bHRfaW92YSwgZmF1bHRfcGE7DQo+ID4gLQl1bnNpZ25lZCBpbnQg ZmF1bHRfbGFyYiwgZmF1bHRfcG9ydDsNCj4gPiArCXVuc2lnbmVkIGludCBmYXVsdF9sYXJiLCBm YXVsdF9wb3J0LCBzdWJfY29tbSA9IDA7DQo+ID4gIAlib29sIGxheWVyLCB3cml0ZTsNCj4gPiAg DQo+ID4gIAkvKiBSZWFkIGVycm9yIGluZm8gZnJvbSByZWdpc3RlcnMgKi8NCj4gPiBAQCAtMjQy LDE3ICsyNTgsMzAgQEAgc3RhdGljIGlycXJldHVybl90IG10a19pb21tdV9pc3IoaW50IGlycSwg dm9pZCAqZGV2X2lkKQ0KPiA+ICAJfQ0KPiA+ICAJbGF5ZXIgPSBmYXVsdF9pb3ZhICYgRl9NTVVf RkFVTFRfVkFfTEFZRVJfQklUOw0KPiA+ICAJd3JpdGUgPSBmYXVsdF9pb3ZhICYgRl9NTVVfRkFV TFRfVkFfV1JJVEVfQklUOw0KPiA+IC0JZmF1bHRfbGFyYiA9IEZfTU1VX0lOVF9JRF9MQVJCX0lE KHJlZ3ZhbCk7DQo+ID4gIAlmYXVsdF9wb3J0ID0gRl9NTVVfSU5UX0lEX1BPUlRfSUQocmVndmFs KTsNCj4gPiArCWlmIChkYXRhLT5wbGF0X2RhdGEtPmhhc19zdWJfY29tbVtkYXRhLT5tNHVfaWRd KSB7DQo+ID4gKwkJLyogbTR1MSBpcyBWUFUgaW4gbXQ2Nzc5LiovDQo+ID4gKwkJaWYgKGRhdGEt Pm00dV9pZCAmJiBkYXRhLT5wbGF0X2RhdGEtPm00dV9wbGF0ID09IE00VV9NVDY3NzkpIHsNCj4g PiArCQkJZmF1bHRfbGFyYiA9IEZfTU1VX0lOVF9JRF9DT01NX0FQVV9JRChyZWd2YWwpOw0KPiA+ ICsJCQlzdWJfY29tbSA9IEZfTU1VX0lOVF9JRF9TVUJfQVBVX0lEKHJlZ3ZhbCk7DQo+ID4gKwkJ CWZhdWx0X3BvcnQgPSAwOyAvKiBmb3IgbXQ2Nzc5IEFQVSBJRCBpcyBpcnJlZ3VsYXIgKi8NCj4g PiArCQl9IGVsc2Ugew0KPiA+ICsJCQlmYXVsdF9sYXJiID0gRl9NTVVfSU5UX0lEX0NPTU1fSUQo cmVndmFsKTsNCj4gPiArCQkJc3ViX2NvbW0gPSBGX01NVV9JTlRfSURfU1VCX0NPTU1fSUQocmVn dmFsKTsNCj4gPiArCQl9DQo+ID4gKwl9IGVsc2Ugew0KPiA+ICsJCWZhdWx0X2xhcmIgPSBGX01N VV9JTlRfSURfTEFSQl9JRChyZWd2YWwpOw0KPiA+ICsJfQ0KPiA+ICANCj4gPiAtCWZhdWx0X2xh cmIgPSBkYXRhLT5wbGF0X2RhdGEtPmxhcmJpZF9yZW1hcFtmYXVsdF9sYXJiXTsNCj4gPiArCWZh dWx0X2xhcmIgPSBkYXRhLT5wbGF0X2RhdGEtPmxhcmJpZF9yZW1hcFtkYXRhLT5tNHVfaWRdW2Zh dWx0X2xhcmJdOw0KPiA+ICANCj4gPiAgCWlmIChyZXBvcnRfaW9tbXVfZmF1bHQoJmRvbS0+ZG9t YWluLCBkYXRhLT5kZXYsIGZhdWx0X2lvdmEsDQo+ID4gIAkJCSAgICAgICB3cml0ZSA/IElPTU1V X0ZBVUxUX1dSSVRFIDogSU9NTVVfRkFVTFRfUkVBRCkpIHsNCj4gPiAgCQlkZXZfZXJyX3JhdGVs aW1pdGVkKA0KPiA+ICAJCQlkYXRhLT5kZXYsDQo+ID4gLQkJCSJmYXVsdCB0eXBlPTB4JXggaW92 YT0weCV4IHBhPTB4JXggbGFyYj0lZCBwb3J0PSVkIGxheWVyPSVkICVzXG4iLA0KPiA+IC0JCQlp bnRfc3RhdGUsIGZhdWx0X2lvdmEsIGZhdWx0X3BhLCBmYXVsdF9sYXJiLCBmYXVsdF9wb3J0LA0K PiA+ICsJCQkiZmF1bHQgdHlwZT0weCV4IGlvdmE9MHgleCBwYT0weCV4IGxhcmI9JWQgc3ViX2Nv bW09JWQgcG9ydD0lZCByZWd2YWw9MHgleCBsYXllcj0lZCAlc1xuIiwNCj4gPiArCQkJaW50X3N0 YXRlLCBmYXVsdF9pb3ZhLCBmYXVsdF9wYSwgZmF1bHRfbGFyYiwNCj4gPiArCQkJc3ViX2NvbW0s IGZhdWx0X3BvcnQsIHJlZ3ZhbCwNCj4gPiAgCQkJbGF5ZXIsIHdyaXRlID8gIndyaXRlIiA6ICJy ZWFkIik7DQo+ID4gIAl9DQo+ID4gIA0KPiA+IEBAIC01NDUsMTEgKzU3NCwxMiBAQCBzdGF0aWMg aW50IG10a19pb21tdV9od19pbml0KGNvbnN0IHN0cnVjdCBtdGtfaW9tbXVfZGF0YSAqZGF0YSkN Cj4gPiAgCQlyZXR1cm4gcmV0Ow0KPiA+ICAJfQ0KPiA+ICANCj4gPiArCXJlZ3ZhbCA9IHJlYWRs X3JlbGF4ZWQoZGF0YS0+YmFzZSArIFJFR19NTVVfQ1RSTF9SRUcpOw0KPiA+ICAJaWYgKGRhdGEt PnBsYXRfZGF0YS0+bTR1X3BsYXQgPT0gTTRVX01UODE3MykNCj4gPiAtCQlyZWd2YWwgPSBGX01N VV9QUkVGRVRDSF9SVF9SRVBMQUNFX01PRCB8DQo+ID4gKwkJcmVndmFsIHw9IEZfTU1VX1BSRUZF VENIX1JUX1JFUExBQ0VfTU9EIHwNCj4gPiAgCQkJIEZfTU1VX1RGX1BST1RfVE9fUFJPR1JBTV9B RERSX01UODE3MzsNCj4gPiAgCWVsc2UNCj4gPiAtCQlyZWd2YWwgPSBGX01NVV9URl9QUk9UX1RP X1BST0dSQU1fQUREUjsNCj4gPiArCQlyZWd2YWwgfD0gRl9NTVVfVEZfUFJPVF9UT19QUk9HUkFN X0FERFI7DQo+ID4gIAl3cml0ZWxfcmVsYXhlZChyZWd2YWwsIGRhdGEtPmJhc2UgKyBSRUdfTU1V X0NUUkxfUkVHKTsNCj4gPiAgDQo+ID4gIAlyZWd2YWwgPSBGX0wyX01VTElUX0hJVF9FTiB8DQo+ ID4gQEAgLTU4OSw2ICs2MTksMjAgQEAgc3RhdGljIGludCBtdGtfaW9tbXVfaHdfaW5pdChjb25z dCBzdHJ1Y3QgbXRrX2lvbW11X2RhdGEgKmRhdGEpDQo+ID4gIAlpZiAoZGF0YS0+cGxhdF9kYXRh LT5yZXNldF9heGkpDQo+ID4gIAkJd3JpdGVsX3JlbGF4ZWQoMCwgZGF0YS0+YmFzZSArIFJFR19N TVVfU1RBTkRBUkRfQVhJX01PREUpOw0KPiA+ICANCj4gPiArCWlmIChkYXRhLT5wbGF0X2RhdGEt Pmhhc193cl9sZW4pIHsNCj4gPiArCQkvKiB3cml0ZSBjb21tYW5kIHRocm90dGxpbmcgbW9kZSAq Lw0KPiA+ICsJCXJlZ3ZhbCA9IHJlYWRsX3JlbGF4ZWQoZGF0YS0+YmFzZSArIFJFR19NTVVfV1Jf TEVOKTsNCj4gPiArCQlyZWd2YWwgJj0gfkZfTU1VX1dSX1RIUk9UX0RJUzsNCj4gPiArCQl3cml0 ZWxfcmVsYXhlZChyZWd2YWwsIGRhdGEtPmJhc2UgKyBSRUdfTU1VX1dSX0xFTik7DQo+ID4gKwl9 DQo+ID4gKwkvKiBzcGVjaWFsIHNldHRpbmdzIGZvciBtbXUwIChtdWx0aW1lZGlhIGlvbW11KSAq Lw0KPiA+ICsJaWYgKGRhdGEtPnBsYXRfZGF0YS0+aGFzX21pc2NfY3RybFtkYXRhLT5tNHVfaWRd KSB7DQo+ID4gKwkJcmVndmFsID0gcmVhZGxfcmVsYXhlZChkYXRhLT5iYXNlICsgUkVHX01NVV9N SVNDX0NSVExfTVQ2Nzc5KTsNCj4gPiArCQkvKiBub24tc3RhbmRhcmQgQVhJIG1vZGUgKi8NCj4g PiArCQlyZWd2YWwgJj0gflJFR19NTVVfU1RBTkRBUkRfQVhJX01PREVfTVQ2Nzc5Ow0KPiA+ICsJ CXdyaXRlbF9yZWxheGVkKHJlZ3ZhbCwgZGF0YS0+YmFzZSArIFJFR19NTVVfTUlTQ19DUlRMX01U Njc3OSk7DQo+ID4gKwl9DQo+IA0KPiAgICAgIDB4NDggYXJlIFJFR19NTVVfU1RBTkRBUkRfQVhJ X01PREUgaW4gYm90aCBtdDgxNzMgYW5kIG10ODE4Mywgd2hpbGUNCj4gaXQgaXMgUkVHX01NVV9N SVNDX0NSVEwgaW4gbXQyNzEyLCBtdDY3NzkgYW5kIHRoZSBsYXRlc3Qgc29jLCByaWdodD8gSQ0K PiB0aGluayB3ZSBjYW4gdXNlIG9uZSBkZWZpbmluZywgbGlrZSB0aGlzOg0KPiANCj4gICAgICAg ICAgICNkZWZpbmUgIFJFR19NTVVfTUlTQ19DVFJMIDB4NDgNCj4gDQo+ICAgICAgICAgIGlmICgh ZGF0YS0+cGxhdF9kYXRhLT5oYXNfbWlzY19jdHJsW2RhdGEtPm00dV9pZF0pIHsNCj4gICAgICAg ICAgICAgICAgLyogRGlzYWJsZSBzdGFuZGFyZCBheGkgbW9kZSB3aGlsZSBpdCBpcw0KPiBSRUdf TU1VX1NUQU5EQVJEX0FYSV9NT0RFICovDQo+IAkJd3JpdGVsX3JlbGF4ZWQoMCwgZGF0YS0+YmFz ZSArIFJFR19NTVVfTUlTQ19DVFJMKTsNCj4gCSB9IGVsc2UgaWYgKGRhdGEtPm00dV9pZCA9PSAw KSB7DQo+IAkJcmVndmFsID0gcmVhZGxfcmVsYXhlZChkYXRhLT5iYXNlICsgUkVHX01NVV9NSVND X0NUUkwpOw0KPiAJCXJlZ3ZhbCAmPSB+UkVHX01NVV9TVEFOREFSRF9BWElfTU9ERV9NVDY3Nzk7 DQo+IAkJd3JpdGVsX3JlbGF4ZWQocmVndmFsLCBkYXRhLT5iYXNlICsgUkVHX01NVV9NSVNDX0NU UkwpOw0KPiAgICAgICAgICB9DQo+IA0KPiAJIE1lYW53aGlsZSByZW1vdmUgdGhlIHNldHRpbmcg Zm9yIFJFR19NTVVfU1RBTkRBUkRfQVhJX01PREUgYWJvdmUuDQo+IA0KPiA+ICsNCj4gPiAgCWlm IChkZXZtX3JlcXVlc3RfaXJxKGRhdGEtPmRldiwgZGF0YS0+aXJxLCBtdGtfaW9tbXVfaXNyLCAw LA0KPiA+ICAJCQkgICAgIGRldl9uYW1lKGRhdGEtPmRldiksICh2b2lkICopZGF0YSkpIHsNCj4g PiAgCQl3cml0ZWxfcmVsYXhlZCgwLCBkYXRhLT5iYXNlICsgUkVHX01NVV9QVF9CQVNFX0FERFIp Ow0KPiA+IEBAIC02NzgsNiArNzIyLDkgQEAgc3RhdGljIGludCBtdGtfaW9tbXVfcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgCQl9DQo+ID4gIAkJZGF0YS0+bGFyYl9p bXVbaWRdLmRldiA9ICZwbGFyYmRldi0+ZGV2Ow0KPiA+ICANCj4gPiArCQlpZiAoZGF0YS0+cGxh dF9kYXRhLT5tNHUxX21hc2sgPT0gKDEgPDwgaWQpKQ0KPiA+ICsJCQlkYXRhLT5tNHVfaWQgPSAx Ow0KPiA+ICsNCj4gPiAgCQljb21wb25lbnRfbWF0Y2hfYWRkX3JlbGVhc2UoZGV2LCAmbWF0Y2gs IHJlbGVhc2Vfb2YsDQo+ID4gIAkJCQkJICAgIGNvbXBhcmVfb2YsIGxhcmJub2RlKTsNCj4gPiAg CX0NCj4gPiBAQCAtNzMxLDYgKzc3OCw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbXRr X2lvbW11X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICAJc3RydWN0IG10a19pb21t dV9zdXNwZW5kX3JlZyAqcmVnID0gJmRhdGEtPnJlZzsNCj4gPiAgCXZvaWQgX19pb21lbSAqYmFz ZSA9IGRhdGEtPmJhc2U7DQo+ID4gIA0KPiA+ICsJcmVnLT53cl9sZW4gPSByZWFkbF9yZWxheGVk KGJhc2UgKyBSRUdfTU1VX1dSX0xFTik7DQo+ID4gIAlyZWctPnN0YW5kYXJkX2F4aV9tb2RlID0g cmVhZGxfcmVsYXhlZChiYXNlICsNCj4gPiAgCQkJCQkgICAgICAgUkVHX01NVV9TVEFOREFSRF9B WElfTU9ERSk7DQo+ID4gIAlyZWctPmRjbV9kaXMgPSByZWFkbF9yZWxheGVkKGJhc2UgKyBSRUdf TU1VX0RDTV9ESVMpOw0KPiA+IEBAIC03NTYsNiArODA0LDcgQEAgc3RhdGljIGludCBfX21heWJl X3VudXNlZCBtdGtfaW9tbXVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiAgCQlkZXZf ZXJyKGRhdGEtPmRldiwgIkZhaWxlZCB0byBlbmFibGUgY2xrKCVkKSBpbiByZXN1bWVcbiIsIHJl dCk7DQo+ID4gIAkJcmV0dXJuIHJldDsNCj4gPiAgCX0NCj4gPiArCXdyaXRlbF9yZWxheGVkKHJl Zy0+d3JfbGVuLCBiYXNlICsgUkVHX01NVV9XUl9MRU4pOw0KPiA+ICAJd3JpdGVsX3JlbGF4ZWQo cmVnLT5zdGFuZGFyZF9heGlfbW9kZSwNCj4gPiAgCQkgICAgICAgYmFzZSArIFJFR19NTVVfU1RB TkRBUkRfQVhJX01PREUpOw0KPiA+ICAJd3JpdGVsX3JlbGF4ZWQocmVnLT5kY21fZGlzLCBiYXNl ICsgUkVHX01NVV9EQ01fRElTKTsNCj4gPiBAQCAtNzc5LDcgKzgyOCwyMCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IG10a19pb21tdV9wbGF0X2RhdGEgbXQyNzEyX2RhdGEgPSB7DQo+ID4gIAkuaGFz XzRnYl9tb2RlID0gdHJ1ZSwNCj4gPiAgCS5oYXNfYmNsayAgICAgPSB0cnVlLA0KPiA+ICAJLmhh c192bGRfcGFfcm5nICAgPSB0cnVlLA0KPiA+IC0JLmxhcmJpZF9yZW1hcCA9IHswLCAxLCAyLCAz LCA0LCA1LCA2LCA3LCA4LCA5fSwNCj4gPiArCS5sYXJiaWRfcmVtYXBbMF0gPSB7MCwgMSwgMiwg MywgNCwgNSwgNiwgNywgOCwgOX0sDQo+ID4gKwkuaW52X3NlbF9yZWcgPSBSRUdfTU1VX0lOVl9T RUwsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG10a19pb21tdV9w bGF0X2RhdGEgbXQ2Nzc5X2RhdGEgPSB7DQo+ID4gKwkubTR1X3BsYXQgPSBNNFVfTVQ2Nzc5LA0K PiA+ICsJLmxhcmJpZF9yZW1hcFswXSA9IHswLCAxLCAyLCAzLCA1LCA3LCAxMCwgOX0sDQo+ID4g KwkvKiB2cDZhLCB2cDZiLCBtZGxhL2NvcmUyLCBtZGxhL2VkbWMqLw0KPiA+ICsJLmxhcmJpZF9y ZW1hcFsxXSA9IHsyLCAwLCAzLCAxfSwNCj4gPiArCS5oYXNfc3ViX2NvbW0gPSB7dHJ1ZSwgdHJ1 ZX0sDQo+ID4gKwkuaGFzX3dyX2xlbiA9IHRydWUsDQo+ID4gKwkuaGFzX21pc2NfY3RybCA9IHt0 cnVlLCBmYWxzZX0sDQo+ID4gKwkuaW52X3NlbF9yZWcgPSBSRUdfTU1VX0lOVl9TRUxfTVQ2Nzc5 LA0KPiA+ICsJLm00dTFfbWFzayA9ICBCSVQoNiksDQo+ID4gIH07DQo+ID4gIA0KPiA+ICBzdGF0 aWMgY29uc3Qgc3RydWN0IG10a19pb21tdV9wbGF0X2RhdGEgbXQ4MTczX2RhdGEgPSB7DQo+ID4g QEAgLTc4NywxNyArODQ5LDIwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2lvbW11X3BsYXRf ZGF0YSBtdDgxNzNfZGF0YSA9IHsNCj4gPiAgCS5oYXNfNGdiX21vZGUgPSB0cnVlLA0KPiA+ICAJ Lmhhc19iY2xrICAgICA9IHRydWUsDQo+ID4gIAkucmVzZXRfYXhpICAgID0gdHJ1ZSwNCj4gPiAt CS5sYXJiaWRfcmVtYXAgPSB7MCwgMSwgMiwgMywgNCwgNX0sIC8qIExpbmVhciBtYXBwaW5nLiAq Lw0KPiA+ICsJLmxhcmJpZF9yZW1hcFswXSA9IHswLCAxLCAyLCAzLCA0LCA1fSwgLyogTGluZWFy IG1hcHBpbmcuICovDQo+ID4gKwkuaW52X3NlbF9yZWcgPSBSRUdfTU1VX0lOVl9TRUwsDQo+ID4g IH07DQo+ID4gIA0KPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19pb21tdV9wbGF0X2RhdGEg bXQ4MTgzX2RhdGEgPSB7DQo+ID4gIAkubTR1X3BsYXQgICAgID0gTTRVX01UODE4MywNCj4gPiAg CS5yZXNldF9heGkgICAgPSB0cnVlLA0KPiA+IC0JLmxhcmJpZF9yZW1hcCA9IHswLCA0LCA1LCA2 LCA3LCAyLCAzLCAxfSwNCj4gPiArCS5sYXJiaWRfcmVtYXBbMF0gPSB7MCwgNCwgNSwgNiwgNywg MiwgMywgMX0sDQo+ID4gKwkuaW52X3NlbF9yZWcgPSBSRUdfTU1VX0lOVl9TRUwsDQo+ID4gIH07 DQo+ID4gIA0KPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfaW9tbXVf b2ZfaWRzW10gPSB7DQo+ID4gIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10MjcxMi1tNHUi LCAuZGF0YSA9ICZtdDI3MTJfZGF0YX0sDQo+ID4gKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVr LG10Njc3OS1tNHUiLCAuZGF0YSA9ICZtdDY3NzlfZGF0YX0sDQo+ID4gIAl7IC5jb21wYXRpYmxl ID0gIm1lZGlhdGVrLG10ODE3My1tNHUiLCAuZGF0YSA9ICZtdDgxNzNfZGF0YX0sDQo+ID4gIAl7 IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE4My1tNHUiLCAuZGF0YSA9ICZtdDgxODNfZGF0 YX0sDQo+ID4gIAl7fQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L210a19pb21tdS5o IGIvZHJpdmVycy9pb21tdS9tdGtfaW9tbXUuaA0KPiA+IGluZGV4IGVhOTQ5YTMyNGUzMy4uMTMy ZGM3NjVhNDBiIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11LmgNCj4g PiArKysgYi9kcml2ZXJzL2lvbW11L210a19pb21tdS5oDQo+ID4gQEAgLTI1LDExICsyNSwxMyBA QCBzdHJ1Y3QgbXRrX2lvbW11X3N1c3BlbmRfcmVnIHsNCj4gPiAgCXUzMgkJCQlpbnRfbWFpbl9j b250cm9sOw0KPiA+ICAJdTMyCQkJCWl2cnBfcGFkZHI7DQo+ID4gIAl1MzIJCQkJdmxkX3BhX3Ju ZzsNCj4gPiArCXUzMgkJCQl3cl9sZW47DQo+ID4gIH07DQo+ID4gIA0KPiA+ICBlbnVtIG10a19p b21tdV9wbGF0IHsNCj4gPiAgCU00VV9NVDI3MDEsDQo+ID4gIAlNNFVfTVQyNzEyLA0KPiA+ICsJ TTRVX01UNjc3OSwNCj4gPiAgCU00VV9NVDgxNzMsDQo+ID4gIAlNNFVfTVQ4MTgzLA0KPiA+ICB9 Ow0KPiA+IEBAIC00Miw3ICs0NCwxMiBAQCBzdHJ1Y3QgbXRrX2lvbW11X3BsYXRfZGF0YSB7DQo+ ID4gIAlib29sICAgICAgICAgICAgICAgIGhhc19iY2xrOw0KPiA+ICAJYm9vbCAgICAgICAgICAg ICAgICBoYXNfdmxkX3BhX3JuZzsNCj4gPiAgCWJvb2wgICAgICAgICAgICAgICAgcmVzZXRfYXhp Ow0KPiA+IC0JdW5zaWduZWQgY2hhciAgICAgICBsYXJiaWRfcmVtYXBbTVRLX0xBUkJfTlJfTUFY XTsNCj4gPiArCWJvb2wgICAgICAgICAgICAgICAgaGFzX3N1Yl9jb21tWzJdOw0KPiA+ICsJYm9v bCAgICAgICAgICAgICAgICBoYXNfd3JfbGVuOw0KPiA+ICsJYm9vbCAgICAgICAgICAgICAgICBo YXNfbWlzY19jdHJsWzJdOw0KPiA+ICsJdTMyICAgICAgICAgICAgICAgICBpbnZfc2VsX3JlZzsN Cj4gPiArCXUzMiAgICAgICAgICAgICAgICAgbTR1MV9tYXNrOw0KPiANCj4gYWxwaGFiZXRpY2Fs bHkgZm9yIHRoZSBuZXcgb25lcy4NCj4gDQo+ID4gKwl1bnNpZ25lZCBjaGFyICAgICAgIGxhcmJp ZF9yZW1hcFsyXVtNVEtfTEFSQl9OUl9NQVhdOw0KPiA+ICB9Ow0KPiA+ICANCj4gPiAgc3RydWN0 IG10a19pb21tdV9kb21haW47DQo+ID4gQEAgLTU5LDYgKzY2LDcgQEAgc3RydWN0IG10a19pb21t dV9kYXRhIHsNCj4gPiAgCWJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlXzRH QjsNCj4gPiAgCXNwaW5sb2NrX3QJCQl0bGJfbG9jazsgLyogbG9jayBmb3IgdGxiIHJhbmdlIGZs dXNoICovDQo+ID4gIA0KPiA+ICsJdTMyCQkJCW00dV9pZDsNCj4gPiAgCXN0cnVjdCBpb21tdV9k ZXZpY2UJCWlvbW11Ow0KPiA+ICAJY29uc3Qgc3RydWN0IG10a19pb21tdV9wbGF0X2RhdGEgKnBs YXRfZGF0YTsNCj4gDQo+IEJhc2ljYWxseSB0aGlzIHBhdGNoIGxvb2tzIG9rIGZvciBtZS4gQnV0 IHBsZWFzZSBzcGxpdCBpdCB0byBzZXZlcmFsDQo+IHBhdGNoZXM6DQo+IA0KPiAxKSBFeHRlbmQg bGFyYmlkX3JlbWFwIHRvIGxhcmJpZF9yZW1hcFsyXS4NCj4gICAgQWN0dWFsbHkgbXQyNzEyIGFs c28gbmVlZCB0aGlzLiB0aGlzIGlzIHRoZSBtdDI3MTIgZGVmaW5pdGlvbi4NCj4gICAgbGFyYmlk X3JlbWFwWzBdID0gezAsIDEsIDIsIDN9LA0KPiAgICBsYXJiaWRfcmVtYXBbMV0gPSB7NCwgNSwg NywgOCwgOX0sDQo+IA0KPiAyKSBSZWdhcmRpbmcgdGhlIDB4NDgobWlzY19jdHJsIHJlZ2lzdGVy KQ0KPiANCj4gMykgQWRkIG00dTFfbWFzayB0byBkaXN0aW5ndWlzaCB0aGUgbTR1X2lkLg0KPiAN Cj4gNCkgQWRkIFJFR19NTVVfV1JfTEVOIGlmIHlvdSBuZWVkLg0KPiANCj4gNSkgUHV0IGludl9z ZWxfcmVnIGluIHRoZSBwbGF0X2RhdGEgZm9yIHByZXBhcmluZyBhZGQgMHgyYyBzdXBwb3J0IGlu DQo+IG10Njc3OS4NCj4gDQo+IDYpIEFkZCBuZXcgZmxvdyB0byBnZXQgU1VCX0NPTU1PTiBJRCBh bmQgVlBVIGxhcmJpZCBpbiB0aGUgdHJhbnNsYXRpb24NCj4gZmF1bHQuDQo+IA0KPiA3KSBBZGQg bXQ2Nzc5IHN1cHBvcnQuDQo+IA0KPiA+IA0KDQpvaywgSSB3aWxsIG1vZGlmeSB0aGVtIGZvciB5 b3VyIGFib3ZlIGNvbW1lbnRzIGluIG5leHQgdmVyc2lvbiwgdGhhbmtzDQoNCj4gIA0KPiANCj4g DQoNCg==