Received: by 10.213.65.68 with SMTP id h4csp444199imn; Tue, 13 Mar 2018 09:14:02 -0700 (PDT) X-Google-Smtp-Source: AG47ELv9MIwMxAfViisrYW25J2DHe/n0UlO4scdUEiXNR9Pkbcc+o/9Z8ZkbJ3NtIuqq4MJFApK6 X-Received: by 2002:a17:902:20ca:: with SMTP id v10-v6mr1078212plg.9.1520957642342; Tue, 13 Mar 2018 09:14:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1520957642; cv=none; d=google.com; s=arc-20160816; b=I5GMfJFB0HfYWSZM7FYGaEvbwiKsnOMwnVe+fCenCXNcsqoK4tBS8Dqae0hBtpvka1 3LVM3DNPX83+VhpYCi74me6Lo/vMSbyPUEMjwN18622xknPestL03mPzGZDKJA7R9zmr 2xKTBzceQ9wTLcAPdJ8gLajgkvkE+KvXvFrcuMhx+TvQWi1O6ZZDbMH8kAFOPwhvmIQt SLYS2IhU0Wh8jP33hIGuo8Hm58dHZHDk/Ejti1tjFArUhRA99/ndWE9qTiPp4lUHQamF BD5/A4dhXeGGYe6J5joK/WiPgz46uB2q3Zx1tF0gVjdP8yyA64YSBtbClJmR09qNWWUS Ol/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=2uhZSKwSXxjf1MmvskbK2tfTSHIrx2aGhDe4b8k2wgM=; b=SS7xEy/FetjhJnYCcPYpQvr/cdF4+Y0VqTRmZ1hbb8KGNrQZl3B5FSbTYtJ1hv6YZn DABKgu52/OET7yOWg4zJM4Tc/sHBWQleDHnO93gDCmmdM2f6nCqL343/uWWa6GMqkIEh 7/ZL0tKHq0yE1WSiL+qfANie7QJ/DhoL6J62s8Z4bV1cu9Wmir5i5ZCIS0+PYkETosaI WmwrAgtB7BIHno/vlo5Hsn1RPM0LwM9W2lyW+MhuMZKvm6T0dZc6VckTxm0sU5GFR3iu GEuSv6INlkGRE5GgXtzkguSKFKAR4hIUY/BLmaEu8LH/4ml7yLOgVIi05Ax4v4jhZ2aO hU5A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector1 header.b=gE8Uah6P; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t18si309729pfg.246.2018.03.13.09.13.47; Tue, 13 Mar 2018 09:14:02 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector1 header.b=gE8Uah6P; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933996AbeCMQLi (ORCPT + 99 others); Tue, 13 Mar 2018 12:11:38 -0400 Received: from mail-eopbgr10054.outbound.protection.outlook.com ([40.107.1.54]:43712 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932869AbeCMQLd (ORCPT ); Tue, 13 Mar 2018 12:11:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=2uhZSKwSXxjf1MmvskbK2tfTSHIrx2aGhDe4b8k2wgM=; b=gE8Uah6PZ0zPlPdx0baU0oF9oW/Vc/oBRqJjhBQEh1LzFMuiFfLI1sy0TkOAvG1SinipOI+WVf2RxSQKm7hUd+NwZpVtFbUiW1MFZvsXJEBWeiv7vVY4GSPnFTfCwzY4rEK3vl8jfLsMUvnrvvqpoErx6v43P3vFU+KW2KzJlWU= Received: from HE1PR0401MB2425.eurprd04.prod.outlook.com (10.168.33.22) by HE1SPR8PMB319.eurprd04.prod.outlook.com (10.164.53.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.567.16; Tue, 13 Mar 2018 16:11:28 +0000 Received: from HE1PR0401MB2425.eurprd04.prod.outlook.com ([fe80::a409:1898:a18e:6e85]) by HE1PR0401MB2425.eurprd04.prod.outlook.com ([fe80::a409:1898:a18e:6e85%18]) with mapi id 15.20.0588.013; Tue, 13 Mar 2018 16:11:28 +0000 From: Nipun Gupta To: Robin Murphy , "hch@lst.de" , "linux@armlinux.org.uk" , "gregkh@linuxfoundation.org" , "m.szyprowski@samsung.com" , "bhelgaas@google.com" CC: "dmitry.torokhov@gmail.com" , "rafael.j.wysocki@intel.com" , "jarkko.sakkinen@linux.intel.com" , "linus.walleij@linaro.org" , "johan@kernel.org" , "msuchanek@suse.de" , "linux-kernel@vger.kernel.org" , "iommu@lists.linux-foundation.org" , "linux-pci@vger.kernel.org" Subject: RE: [PATCH] dma-mapping: move dma configuration to bus infrastructure Thread-Topic: [PATCH] dma-mapping: move dma configuration to bus infrastructure Thread-Index: AQHTuhZRcz681iNeqU+MbBDXy/Xb6aPOCrwAgABJyWA= Date: Tue, 13 Mar 2018 16:11:28 +0000 Message-ID: References: <1520868292-2479-1-git-send-email-nipun.gupta@nxp.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=nipun.gupta@nxp.com; x-originating-ip: [182.68.81.59] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;HE1SPR8PMB319;7:Yi+dy2khQFFxKAFOstOkHyU9YsBNvCrZIh3E8zHMy34C+p0P6RsnDJSOfd+BOt9sGwT9Rppdz42NVQn4k4X9o/oPu/qoZbfdekIFlTB51gLf/8kVVNYz0Dkno7IgHFXIfDdJup2FMyuyNZM6uC1nXvyq1ld+5DOyl77+QmXzTmNvrp4ENAEgSwb/h3+EfibJMNYj7XyXLva5pJaeYG/egy6os5F+GeHPDyH9OQCh8quBd1iHQtt1uTHdXYgHbqao x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 5968f235-a460-4f27-dc34-08d588fd1415 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:HE1SPR8PMB319; x-ms-traffictypediagnostic: HE1SPR8PMB319: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(189930954265078)(185117386973197)(45079756050767); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231221)(944501244)(52105095)(6055026)(6041310)(20161123560045)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(6072148)(201708071742011);SRVR:HE1SPR8PMB319;BCL:0;PCL:0;RULEID:;SRVR:HE1SPR8PMB319; x-forefront-prvs: 0610D16BBE x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(346002)(396003)(39380400002)(366004)(39860400002)(13464003)(199004)(189003)(39060400002)(3280700002)(59450400001)(316002)(5660300001)(9686003)(54906003)(105586002)(4326008)(6306002)(106356001)(110136005)(7696005)(186003)(2201001)(45080400002)(53936002)(76176011)(2900100001)(3660700001)(86362001)(66066001)(2950100002)(99286004)(97736004)(6116002)(26005)(966005)(102836004)(5250100002)(74316002)(229853002)(33656002)(2501003)(305945005)(3846002)(14454004)(7736002)(6436002)(478600001)(7416002)(8936002)(55016002)(25786009)(6246003)(8676002)(5890100001)(68736007)(81156014)(2906002)(53546011)(81166006)(6506007);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1SPR8PMB319;H:HE1PR0401MB2425.eurprd04.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: RwHdhmtpXdvklJg9JcTA6AS2qeFNXoKnHEfVovpJ6QkcemZOwWKWIwVuVqbLDQ2oWNHgqAKwM8RrdgRUdr5mbBg9Emm+eE6k5c9gxw51Clx4X0bxW4slBKgWUyYqz/BaofjpZTHzXAwsfUHvDps4tkXXcSWNTCOvcO/G9cHpSuH/KrSZcuyAX/aJSXT7xdUuMoljAgOU7aWgDbfbRQw2+8i0Q6s0O4DuyUgu27VtgcQ3hxmNNIkvf93PttN5aoiCjzVgnR6RAZLF5/VJaHLiPCrR55+FuFO6DQO28SoFWmUS30zCuTu0JQQbWrhfTfUv8kdfeuiyoVvpuwAjibAZrA== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5968f235-a460-4f27-dc34-08d588fd1415 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2018 16:11:28.6311 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1SPR8PMB319 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUm9iaW4gTXVycGh5IFtt YWlsdG86cm9iaW4ubXVycGh5QGFybS5jb21dDQo+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDEzLCAy MDE4IDE3OjA2DQo+IA0KPiBPbiAxMi8wMy8xOCAxNToyNCwgTmlwdW4gR3VwdGEgd3JvdGU6DQo+ ID4gVGhlIGNoYW5nZSBpbnRyb2R1Y2VzICdkbWFfY29uZmlndXJlJyAmICdkbWFfZGVjb25maWd1 cmUnYXMNCj4gPiBidXMgY2FsbGJhY2sgZnVuY3Rpb25zIHNvIGVhY2ggYnVzIGNhbiBjaG9vc2Ug dG8gaW1wbGVtZW50DQo+ID4gaXRzIG93biBkbWEgY29uZmlndXJhdGlvbiBmdW5jdGlvbi4NCj4g PiBUaGlzIGVhc2VzIHRoZSBhZGRpdGlvbiBvZiBuZXcgYnVzc2VzIHcuci50LiBhZGRpbmcgdGhl IGRtYQ0KPiA+IGNvbmZpZ3VyYXRpb24gZnVuY3Rpb25hbGl0eS4NCj4gDQo+IEl0J3MgcHJvYmFi bHkgd29ydGggY2xhcmlmeWluZyAtIGVpdGhlciBpbiB0aGUgY29tbWl0IG1lc3NhZ2UsIHRoZQ0K PiBrZXJuZWxkb2MsIG9yIGJvdGggLSB0aGF0IHRoZSBidXMtc3BlY2lmaWMgYXNwZWN0IGlzIHRo YXQgb2YgbWFwcGluZw0KPiBiZXR3ZWVuIGEgZ2l2ZW4gZGV2aWNlIG9uIHRoZSBidXMgYW5kIHRo ZSByZWxldmFudCBmaXJtd2FyZSBkZXNjcmlwdGlvbg0KPiBvZiBpdHMgRE1BIGNvbmZpZ3VyYXRp b24uDQoNCk9rYXkuDQoNCj4NCj4gPiBUaGUgY2hhbmdlIGFsc28gdXBkYXRlcyB0aGUgUENJLCBQ bGF0Zm9ybSBhbmQgQUNQSSBidXMgdG8gdXNlDQo+ID4gbmV3IGludHJvZHVjZWQgY2FsbGJhY2tz Lg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogTmlwdW4gR3VwdGEgPG5pcHVuLmd1cHRhQG54cC5j b20+DQo+ID4gLS0tDQo+ID4gICAtIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIGNvbW1lbnRz IG9uOg0KPiA+DQo+IGh0dHBzOi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2su Y29tLz91cmw9aHR0cHMlM0ElMkYlMkZwYXRjaHdvDQo+IHJrLmtlcm5lbC5vcmclMkZwYXRjaCUy RjEwMjU5MDg3JTJGJmRhdGE9MDIlN0MwMSU3Q25pcHVuLmd1cHRhJTQwbnhwLmNvbSU3DQo+IENj NTQxMTAwZWNiOTQ0ZTc2NTBhNDA4ZDU4OGQ2OWFiMCU3QzY4NmVhMWQzYmMyYjRjNmZhOTJjZDk5 YzVjMzAxNjM1JTdDMCU3DQo+IEMwJTdDNjM2NTY1Mzc3NjY1Njc2NjMxJnNkYXRhPWsyWGpuNUIx R0VDeDRVakNnOXRDaE9wT3JEM05QTTdCa3pJWExMU3YzckklDQo+IDNEJnJlc2VydmVkPTANCj4g PiAgIC0gSSBoYXZlIHZhbGlkYXRlZCBmb3IgUENJIGFuZCBwbGF0Zm9ybSwgYnV0IG5vdCBmb3Ig QU1CQSBhcyBJDQo+ID4gICAgIGRvIG5vdCBoYXZlIGluZnJhc3RydWN0dXJlIHRvIHZhbGlkYXRl IGl0Lg0KPiA+ICAgICBDYW4gYW55b25lIHBsZWFzZSB2YWxpZGF0ZSB0aGVtIG9uIEFNQkE/DQo+ ID4NCj4gPiAgIGRyaXZlcnMvYW1iYS9idXMuYyAgICAgICAgICB8IDM4ICsrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tDQo+ID4gICBkcml2ZXJzL2Jhc2UvZGQuYyAgICAgICAgICAgfCAxNCAr KysrKysrLS0tLQ0KPiA+ICAgZHJpdmVycy9iYXNlL2RtYS1tYXBwaW5nLmMgIHwgNDEgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICAgZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMg ICAgIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tDQo+ID4gICBkcml2ZXJzL3BjaS9w Y2ktZHJpdmVyLmMgICAgfCA1OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst DQo+IC0tLS0tLS0tDQo+ID4gICBpbmNsdWRlL2xpbnV4L2RldmljZS5oICAgICAgfCAgNiArKysr Kw0KPiA+ICAgaW5jbHVkZS9saW51eC9kbWEtbWFwcGluZy5oIHwgMTIgLS0tLS0tLS0tDQo+ID4g ICA3IGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCA4MiBkZWxldGlvbnMoLSkNCj4g Pg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FtYmEvYnVzLmMgYi9kcml2ZXJzL2FtYmEvYnVz LmMNCj4gPiBpbmRleCA1OTRjMjI4Li41ODI0MWQyIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMv YW1iYS9idXMuYw0KPiA+ICsrKyBiL2RyaXZlcnMvYW1iYS9idXMuYw0KPiA+IEBAIC0yMCw2ICsy MCw4IEBADQo+ID4gICAjaW5jbHVkZSA8bGludXgvc2l6ZXMuaD4NCj4gPiAgICNpbmNsdWRlIDxs aW51eC9saW1pdHMuaD4NCj4gPiAgICNpbmNsdWRlIDxsaW51eC9jbGsvY2xrLWNvbmYuaD4NCj4g PiArI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L29mX2Rldmlj ZS5oPg0KPiA+DQo+ID4gICAjaW5jbHVkZSA8YXNtL2lycS5oPg0KPiA+DQo+ID4gQEAgLTE3MSw2 ICsxNzMsMjggQEAgc3RhdGljIGludCBhbWJhX3BtX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZp Y2UNCj4gKmRldikNCj4gPiAgIH0NCj4gPiAgICNlbmRpZiAvKiBDT05GSUdfUE0gKi8NCj4gPg0K PiA+ICtpbnQgYW1iYV9kbWFfY29uZmlndXJlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0K PiA+ICsJZW51bSBkZXZfZG1hX2F0dHIgYXR0cjsNCj4gPiArCWludCByZXQgPSAwOw0KPiA+ICsN Cj4gPiArCWlmIChkZXYtPm9mX25vZGUpIHsNCj4gPiArCQlyZXQgPSBvZl9kbWFfY29uZmlndXJl KGRldiwgZGV2LT5vZl9ub2RlKTsNCj4gPiArCX0gZWxzZSBpZiAoaGFzX2FjcGlfY29tcGFuaW9u KGRldikpIHsNCj4gPiArCQlhdHRyID0gYWNwaV9nZXRfZG1hX2F0dHIodG9fYWNwaV9kZXZpY2Vf bm9kZShkZXYtPmZ3bm9kZSkpOw0KPiA+ICsJCWlmIChhdHRyICE9IERFVl9ETUFfTk9UX1NVUFBP UlRFRCkNCj4gPiArCQkJcmV0ID0gYWNwaV9kbWFfY29uZmlndXJlKGRldiwgYXR0cik7DQo+ID4g Kwl9DQo+ID4gKw0KPiA+ICsJcmV0dXJuIHJldDsNCj4gPiArfQ0KPiANCj4gSSB3b3VsZCBiZSBp bmNsaW5lZCB0byBoYXZlIGFtYmFfYnVzdHlwZSBqdXN0IHJlZmVyZW5jZQ0KPiBwbGF0Zm9ybV9k bWFfY29uZmlndXJlKCkgZGlyZWN0bHkgcmF0aGVyIHRoYW4gZHVwbGljYXRlIGl0IGxpa2UgdGhp cywNCj4gc2luY2UgdGhlcmUncyBubyBzZW5zaWJsZSByZWFzb24gZm9yIHRoZW0gdG8gZXZlciBk aWZmZXIuDQoNCkkgdGhpbmsgZG1hX2NvbW1vbl9jb25maWd1cmUoKSBoYXZpbmcgdGhpcyBhcyB0 aGUgY29tbW9uIGNvZGUgc2VlbXMgcHJldHR5DQpEZWNlbnQuIEFsbCB0aGUgYnVzc2VzIHdpbGwg cHJvYmFibHkgY2FsbCB0aGlzIEFQSS4NCg0KPiANCj4gPiArDQo+ID4gK3ZvaWQgYW1iYV9kbWFf ZGVjb25maWd1cmUoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4gKwlvZl9kbWFfZGVj b25maWd1cmUoZGV2KTsNCj4gPiArCWFjcGlfZG1hX2RlY29uZmlndXJlKGRldik7DQo+ID4gK30N Cj4gPiArDQo+ID4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgYW1iYV9wbSA9IHsN Cj4gPiAgIAkuc3VzcGVuZAk9IHBtX2dlbmVyaWNfc3VzcGVuZCwNCj4gPiAgIAkucmVzdW1lCQk9 IHBtX2dlbmVyaWNfcmVzdW1lLA0KPiA+IEBAIC0xOTAsMTIgKzIxNCwxNCBAQCBzdGF0aWMgaW50 IGFtYmFfcG1fcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZQ0KPiAqZGV2KQ0KPiA+ICAgICog c28gd2UgY2FsbCB0aGUgYnVzICJhbWJhIi4NCj4gPiAgICAqLw0KPiA+ICAgc3RydWN0IGJ1c190 eXBlIGFtYmFfYnVzdHlwZSA9IHsNCj4gPiAtCS5uYW1lCQk9ICJhbWJhIiwNCj4gPiAtCS5kZXZf Z3JvdXBzCT0gYW1iYV9kZXZfZ3JvdXBzLA0KPiA+IC0JLm1hdGNoCQk9IGFtYmFfbWF0Y2gsDQo+ ID4gLQkudWV2ZW50CQk9IGFtYmFfdWV2ZW50LA0KPiA+IC0JLnBtCQk9ICZhbWJhX3BtLA0KPiA+ IC0JLmZvcmNlX2RtYQk9IHRydWUsDQo+ID4gKwkubmFtZQkJCT0gImFtYmEiLA0KPiA+ICsJLmRl dl9ncm91cHMJCT0gYW1iYV9kZXZfZ3JvdXBzLA0KPiA+ICsJLm1hdGNoCQkJPSBhbWJhX21hdGNo LA0KPiA+ICsJLnVldmVudAkJCT0gYW1iYV91ZXZlbnQsDQo+ID4gKwkucG0JCQk9ICZhbWJhX3Bt LA0KPiA+ICsJLmRtYV9jb25maWd1cmUJCT0gYW1iYV9kbWFfY29uZmlndXJlLA0KPiA+ICsJLmRt YV9kZWNvbmZpZ3VyZQk9IGFtYmFfZG1hX2RlY29uZmlndXJlLA0KPiA+ICsJLmZvcmNlX2RtYQkJ PSB0cnVlLA0KPiANCj4gVGhpcyBwYXRjaCBzaG91bGQgYWxzbyBiZSByZW1vdmluZyBmb3JjZV9k bWEgYmVjYXVzZSBpdCBubyBsb25nZXIgbWFrZXMNCj4gc2Vuc2UuIElmIERNQSBjb25maWd1cmF0 aW9uIGlzIG5vdyBkb25lIGJ5IGEgYnVzLWxldmVsIGNhbGxiYWNrLCB0aGVuIGENCj4gYnVzIHdo aWNoIHdhbnRzIGl0cyBjaGlsZHJlbiB0byBnZXQgRE1BIGNvbmZpZ3VyYXRpb24gbmVlZHMgdG8g aW1wbGVtZW50DQo+IHRoYXQgY2FsbGJhY2s7IHRoZXJlJ3Mgbm93aGVyZSB0byBmb3JjZSBhICJk ZWZhdWx0IiBnbG9iYWwgYmVoYXZpb3VyIGFueQ0KPiBtb3JlLg0KDQpBZ3JlZS4gV2Ugd2lsbCBh bHNvIG5lZWQgdG8gcGFzcyBhIGZvcmNlX2RtYSBmbGFnIGluIG9mX2RtYV9jb25maWd1cmUoKSBh cw0KQ2hyaXN0b3BoIHN1Z2dlc3RzLiBJbGwgdXBkYXRlIHRoaXMuDQoNCj4gDQo+ID4gICB9Ow0K PiA+DQo+ID4gICBzdGF0aWMgaW50IF9faW5pdCBhbWJhX2luaXQodm9pZCkNCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9iYXNlL2RkLmMgYi9kcml2ZXJzL2Jhc2UvZGQuYw0KPiA+IGluZGV4IGRl NmZkMDkuLmYxMjRmM2YgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9iYXNlL2RkLmMNCj4gPiAr KysgYi9kcml2ZXJzL2Jhc2UvZGQuYw0KPiA+IEBAIC00MjEsOSArNDIxLDExIEBAIHN0YXRpYyBp bnQgcmVhbGx5X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0DQo+IGRldmljZV9kcml2 ZXIgKmRydikNCj4gPiAgIAlpZiAocmV0KQ0KPiA+ICAgCQlnb3RvIHBpbmN0cmxfYmluZF9mYWls ZWQ7DQo+ID4NCj4gPiAtCXJldCA9IGRtYV9jb25maWd1cmUoZGV2KTsNCj4gPiAtCWlmIChyZXQp DQo+ID4gLQkJZ290byBkbWFfZmFpbGVkOw0KPiA+ICsJaWYgKGRldi0+YnVzLT5kbWFfY29uZmln dXJlKSB7DQo+ID4gKwkJcmV0ID0gZGV2LT5idXMtPmRtYV9jb25maWd1cmUoZGV2KTsNCj4gPiAr CQlpZiAocmV0KQ0KPiA+ICsJCQlnb3RvIGRtYV9mYWlsZWQ7DQo+ID4gKwl9DQo+ID4NCj4gPiAg IAlpZiAoZHJpdmVyX3N5c2ZzX2FkZChkZXYpKSB7DQo+ID4gICAJCXByaW50ayhLRVJOX0VSUiAi JXM6IGRyaXZlcl9zeXNmc19hZGQoJXMpIGZhaWxlZFxuIiwNCj4gPiBAQCAtNDg2LDcgKzQ4OCw4 IEBAIHN0YXRpYyBpbnQgcmVhbGx5X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0DQo+ IGRldmljZV9kcml2ZXIgKmRydikNCj4gPiAgIAlnb3RvIGRvbmU7DQo+ID4NCj4gPiAgIHByb2Jl X2ZhaWxlZDoNCj4gPiAtCWRtYV9kZWNvbmZpZ3VyZShkZXYpOw0KPiA+ICsJaWYgKGRldi0+YnVz LT5kbWFfZGVjb25maWd1cmUpDQo+ID4gKwkJZGV2LT5idXMtPmRtYV9kZWNvbmZpZ3VyZShkZXYp Ow0KPiA+ICAgZG1hX2ZhaWxlZDoNCj4gPiAgIAlpZiAoZGV2LT5idXMpDQo+ID4gICAJCWJsb2Nr aW5nX25vdGlmaWVyX2NhbGxfY2hhaW4oJmRldi0+YnVzLT5wLT5idXNfbm90aWZpZXIsDQo+ID4g QEAgLTg5NSw3ICs4OTgsOCBAQCBzdGF0aWMgdm9pZCBfX2RldmljZV9yZWxlYXNlX2RyaXZlcihz dHJ1Y3QgZGV2aWNlDQo+ICpkZXYsIHN0cnVjdCBkZXZpY2UgKnBhcmVudCkNCj4gPiAgIAkJCWRy di0+cmVtb3ZlKGRldik7DQo+ID4NCj4gPiAgIAkJZGV2aWNlX2xpbmtzX2RyaXZlcl9jbGVhbnVw KGRldik7DQo+ID4gLQkJZG1hX2RlY29uZmlndXJlKGRldik7DQo+ID4gKwkJaWYgKGRldi0+YnVz LT5kbWFfZGVjb25maWd1cmUpDQo+ID4gKwkJCWRldi0+YnVzLT5kbWFfZGVjb25maWd1cmUoZGV2 KTsNCj4gPg0KPiA+ICAgCQlkZXZyZXNfcmVsZWFzZV9hbGwoZGV2KTsNCj4gPiAgIAkJZGV2LT5k cml2ZXIgPSBOVUxMOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvZG1hLW1hcHBpbmcu YyBiL2RyaXZlcnMvYmFzZS9kbWEtbWFwcGluZy5jDQo+ID4gaW5kZXggM2IxMTgzNS4uZjE2YmQ0 OSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2Jhc2UvZG1hLW1hcHBpbmcuYw0KPiA+ICsrKyBi L2RyaXZlcnMvYmFzZS9kbWEtbWFwcGluZy5jDQo+ID4gQEAgLTYsMTEgKzYsOSBAQA0KPiA+ICAg ICogQ29weXJpZ2h0IChjKSAyMDA2ICBUZWp1biBIZW8gPHRlaGVvQHN1c2UuZGU+DQo+ID4gICAg Ki8NCj4gPg0KPiA+IC0jaW5jbHVkZSA8bGludXgvYWNwaS5oPg0KPiA+ICAgI2luY2x1ZGUgPGxp bnV4L2RtYS1tYXBwaW5nLmg+DQo+ID4gICAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+DQo+ID4g ICAjaW5jbHVkZSA8bGludXgvZ2ZwLmg+DQo+ID4gLSNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2Uu aD4NCj4gPiAgICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQo+ID4gICAjaW5jbHVkZSA8bGludXgv dm1hbGxvYy5oPg0KPiA+DQo+ID4gQEAgLTMyOSw0MiArMzI3LDMgQEAgdm9pZCBkbWFfY29tbW9u X2ZyZWVfcmVtYXAodm9pZCAqY3B1X2FkZHIsIHNpemVfdA0KPiBzaXplLCB1bnNpZ25lZCBsb25n IHZtX2ZsYWdzKQ0KPiA+ICAgCXZ1bm1hcChjcHVfYWRkcik7DQo+ID4gICB9DQo+ID4gICAjZW5k aWYNCj4gPiAtDQo+ID4gLS8qDQo+ID4gLSAqIENvbW1vbiBjb25maWd1cmF0aW9uIHRvIGVuYWJs ZSBETUEgQVBJIHVzZSBmb3IgYSBkZXZpY2UNCj4gPiAtICovDQo+ID4gLSNpbmNsdWRlIDxsaW51 eC9wY2kuaD4NCj4gPiAtDQo+ID4gLWludCBkbWFfY29uZmlndXJlKHN0cnVjdCBkZXZpY2UgKmRl dikNCj4gPiAtew0KPiA+IC0Jc3RydWN0IGRldmljZSAqYnJpZGdlID0gTlVMTCwgKmRtYV9kZXYg PSBkZXY7DQo+ID4gLQllbnVtIGRldl9kbWFfYXR0ciBhdHRyOw0KPiA+IC0JaW50IHJldCA9IDA7 DQo+ID4gLQ0KPiA+IC0JaWYgKGRldl9pc19wY2koZGV2KSkgew0KPiA+IC0JCWJyaWRnZSA9IHBj aV9nZXRfaG9zdF9icmlkZ2VfZGV2aWNlKHRvX3BjaV9kZXYoZGV2KSk7DQo+ID4gLQkJZG1hX2Rl diA9IGJyaWRnZTsNCj4gPiAtCQlpZiAoSVNfRU5BQkxFRChDT05GSUdfT0YpICYmIGRtYV9kZXYt PnBhcmVudCAmJg0KPiA+IC0JCSAgICBkbWFfZGV2LT5wYXJlbnQtPm9mX25vZGUpDQo+ID4gLQkJ CWRtYV9kZXYgPSBkbWFfZGV2LT5wYXJlbnQ7DQo+ID4gLQl9DQo+ID4gLQ0KPiA+IC0JaWYgKGRt YV9kZXYtPm9mX25vZGUpIHsNCj4gPiAtCQlyZXQgPSBvZl9kbWFfY29uZmlndXJlKGRldiwgZG1h X2Rldi0+b2Zfbm9kZSk7DQo+ID4gLQl9IGVsc2UgaWYgKGhhc19hY3BpX2NvbXBhbmlvbihkbWFf ZGV2KSkgew0KPiA+IC0JCWF0dHIgPSBhY3BpX2dldF9kbWFfYXR0cih0b19hY3BpX2RldmljZV9u b2RlKGRtYV9kZXYtPmZ3bm9kZSkpOw0KPiA+IC0JCWlmIChhdHRyICE9IERFVl9ETUFfTk9UX1NV UFBPUlRFRCkNCj4gPiAtCQkJcmV0ID0gYWNwaV9kbWFfY29uZmlndXJlKGRldiwgYXR0cik7DQo+ ID4gLQl9DQo+ID4gLQ0KPiA+IC0JaWYgKGJyaWRnZSkNCj4gPiAtCQlwY2lfcHV0X2hvc3RfYnJp ZGdlX2RldmljZShicmlkZ2UpOw0KPiA+IC0NCj4gPiAtCXJldHVybiByZXQ7DQo+ID4gLX0NCj4g PiAtDQo+ID4gLXZvaWQgZG1hX2RlY29uZmlndXJlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiAt ew0KPiA+IC0Jb2ZfZG1hX2RlY29uZmlndXJlKGRldik7DQo+ID4gLQlhY3BpX2RtYV9kZWNvbmZp Z3VyZShkZXYpOw0KPiA+IC19DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9wbGF0Zm9y bS5jIGIvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMNCj4gPiBpbmRleCBmMWJmN2IzLi5hZGY5NGVi IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jDQo+ID4gKysrIGIvZHJp dmVycy9iYXNlL3BsYXRmb3JtLmMNCj4gPiBAQCAtMTEzMCw2ICsxMTMwLDI4IEBAIGludCBwbGF0 Zm9ybV9wbV9yZXN0b3JlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPg0KPiA+ICAgI2VuZGlmIC8q IENPTkZJR19ISUJFUk5BVEVfQ0FMTEJBQ0tTICovDQo+ID4NCj4gPiAraW50IHBsYXRmb3JtX2Rt YV9jb25maWd1cmUoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4gKwllbnVtIGRldl9k bWFfYXR0ciBhdHRyOw0KPiA+ICsJaW50IHJldCA9IDA7DQo+ID4gKw0KPiA+ICsJaWYgKGRldi0+ b2Zfbm9kZSkgew0KPiA+ICsJCXJldCA9IG9mX2RtYV9jb25maWd1cmUoZGV2LCBkZXYtPm9mX25v ZGUpOw0KPiA+ICsJfSBlbHNlIGlmIChoYXNfYWNwaV9jb21wYW5pb24oZGV2KSkgew0KPiA+ICsJ CWF0dHIgPSBhY3BpX2dldF9kbWFfYXR0cih0b19hY3BpX2RldmljZV9ub2RlKGRldi0+Zndub2Rl KSk7DQo+ID4gKwkJaWYgKGF0dHIgIT0gREVWX0RNQV9OT1RfU1VQUE9SVEVEKQ0KPiA+ICsJCQly ZXQgPSBhY3BpX2RtYV9jb25maWd1cmUoZGV2LCBhdHRyKTsNCj4gPiArCX0NCj4gPiArDQo+ID4g KwlyZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIHBsYXRmb3JtX2RtYV9kZWNv bmZpZ3VyZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gK3sNCj4gPiArCW9mX2RtYV9kZWNvbmZp Z3VyZShkZXYpOw0KPiA+ICsJYWNwaV9kbWFfZGVjb25maWd1cmUoZGV2KTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBwbGF0Zm9ybV9kZXZfcG1f b3BzID0gew0KPiA+ICAgCS5ydW50aW1lX3N1c3BlbmQgPSBwbV9nZW5lcmljX3J1bnRpbWVfc3Vz cGVuZCwNCj4gPiAgIAkucnVudGltZV9yZXN1bWUgPSBwbV9nZW5lcmljX3J1bnRpbWVfcmVzdW1l LA0KPiA+IEBAIC0xMTM3LDEyICsxMTU5LDE0IEBAIGludCBwbGF0Zm9ybV9wbV9yZXN0b3JlKHN0 cnVjdCBkZXZpY2UgKmRldikNCj4gPiAgIH07DQo+ID4NCj4gPiAgIHN0cnVjdCBidXNfdHlwZSBw bGF0Zm9ybV9idXNfdHlwZSA9IHsNCj4gPiAtCS5uYW1lCQk9ICJwbGF0Zm9ybSIsDQo+ID4gLQku ZGV2X2dyb3Vwcwk9IHBsYXRmb3JtX2Rldl9ncm91cHMsDQo+ID4gLQkubWF0Y2gJCT0gcGxhdGZv cm1fbWF0Y2gsDQo+ID4gLQkudWV2ZW50CQk9IHBsYXRmb3JtX3VldmVudCwNCj4gPiAtCS5wbQkJ PSAmcGxhdGZvcm1fZGV2X3BtX29wcywNCj4gPiAtCS5mb3JjZV9kbWEJPSB0cnVlLA0KPiA+ICsJ Lm5hbWUJCQk9ICJwbGF0Zm9ybSIsDQo+ID4gKwkuZGV2X2dyb3VwcwkJPSBwbGF0Zm9ybV9kZXZf Z3JvdXBzLA0KPiA+ICsJLm1hdGNoCQkJPSBwbGF0Zm9ybV9tYXRjaCwNCj4gPiArCS51ZXZlbnQJ CQk9IHBsYXRmb3JtX3VldmVudCwNCj4gPiArCS5wbQkJCT0gJnBsYXRmb3JtX2Rldl9wbV9vcHMs DQo+ID4gKwkuZG1hX2NvbmZpZ3VyZQkJPSBwbGF0Zm9ybV9kbWFfY29uZmlndXJlLA0KPiA+ICsJ LmRtYV9kZWNvbmZpZ3VyZQk9IHBsYXRmb3JtX2RtYV9kZWNvbmZpZ3VyZSwNCj4gPiArCS5mb3Jj ZV9kbWEJCT0gdHJ1ZSwNCj4gPiAgIH07DQo+ID4gICBFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9y bV9idXNfdHlwZSk7DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLWRyaXZl ci5jIGIvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jDQo+ID4gaW5kZXggM2JlZDZiZS4uNGE3Nzgx NCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmMNCj4gPiArKysgYi9k cml2ZXJzL3BjaS9wY2ktZHJpdmVyLmMNCj4gPiBAQCAtMTgsNiArMTgsOCBAQA0KPiA+ICAgI2lu Y2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4NCj4gPiAgICNpbmNsdWRlIDxsaW51eC9zdXNwZW5k Lmg+DQo+ID4gICAjaW5jbHVkZSA8bGludXgva2V4ZWMuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4 L2FjcGkuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPg0KPiA+ICAgI2luY2x1 ZGUgInBjaS5oIg0KPiA+DQo+ID4gICBzdHJ1Y3QgcGNpX2R5bmlkIHsNCj4gPiBAQCAtMTUyMiwx OSArMTUyNCw1MiBAQCBzdGF0aWMgaW50IHBjaV9idXNfbnVtX3ZmKHN0cnVjdCBkZXZpY2UgKmRl dikNCj4gPiAgIAlyZXR1cm4gcGNpX251bV92Zih0b19wY2lfZGV2KGRldikpOw0KPiA+ICAgfQ0K PiA+DQo+ID4gK2ludCBwY2lfZG1hX2NvbmZpZ3VyZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4g K3sNCj4gPiArCXN0cnVjdCBkZXZpY2UgKmJyaWRnZSwgKmRtYV9kZXY7DQo+IA0KPiBZb3UgZG9u J3QgbmVlZCBkbWFfZGV2IGhlcmU7IHNlZSB0aGUgY29kZSByZW1vdmVkIGluIDA5NTE1ZWY1ZGRh ZCBmb3INCj4gaG93IHRoZSBsb2dpYyBvcmlnaW5hbGx5IHdvcmtlZC4NCg0KT2theS4gSSB3aWxs IGhhdmUgYSBsb29rIGluIHRoaXMgY29tbWl0IGlkLg0KDQo+IA0KPiA+ICsJZW51bSBkZXZfZG1h X2F0dHIgYXR0cjsNCj4gPiArCWludCByZXQgPSAwOw0KPiA+ICsNCj4gPiArCWJyaWRnZSA9IHBj aV9nZXRfaG9zdF9icmlkZ2VfZGV2aWNlKHRvX3BjaV9kZXYoZGV2KSk7DQo+ID4gKwlkbWFfZGV2 ID0gYnJpZGdlOw0KPiA+ICsJaWYgKElTX0VOQUJMRUQoQ09ORklHX09GKSAmJiBkbWFfZGV2LT5w YXJlbnQgJiYNCj4gPiArCSAgICBkbWFfZGV2LT5wYXJlbnQtPm9mX25vZGUpDQo+ID4gKwkJZG1h X2RldiA9IGRtYV9kZXYtPnBhcmVudDsNCj4gPiArDQo+ID4gKwlpZiAoZG1hX2Rldi0+b2Zfbm9k ZSkgew0KPiA+ICsJCXJldCA9IG9mX2RtYV9jb25maWd1cmUoZGV2LCBkbWFfZGV2LT5vZl9ub2Rl KTsNCj4gPiArCX0gZWxzZSBpZiAoaGFzX2FjcGlfY29tcGFuaW9uKGRtYV9kZXYpKSB7DQo+ID4g KwkJYXR0ciA9IGFjcGlfZ2V0X2RtYV9hdHRyKHRvX2FjcGlfZGV2aWNlX25vZGUoZG1hX2Rldi0+ Zndub2RlKSk7DQo+ID4gKwkJaWYgKGF0dHIgIT0gREVWX0RNQV9OT1RfU1VQUE9SVEVEKQ0KPiA+ ICsJCQlyZXQgPSBhY3BpX2RtYV9jb25maWd1cmUoZGV2LCBhdHRyKTsNCj4gPiArCX0NCj4gPiAr DQo+ID4gKwlwY2lfcHV0X2hvc3RfYnJpZGdlX2RldmljZShicmlkZ2UpOw0KPiA+ICsNCj4gPiAr CXJldHVybiByZXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgcGNpX2RtYV9kZWNvbmZpZ3Vy ZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gK3sNCj4gPiArCW9mX2RtYV9kZWNvbmZpZ3VyZShk ZXYpOw0KPiA+ICsJYWNwaV9kbWFfZGVjb25maWd1cmUoZGV2KTsNCj4gPiArfQ0KPiA+ICsNCj4g PiAgIHN0cnVjdCBidXNfdHlwZSBwY2lfYnVzX3R5cGUgPSB7DQo+ID4gLQkubmFtZQkJPSAicGNp IiwNCj4gPiAtCS5tYXRjaAkJPSBwY2lfYnVzX21hdGNoLA0KPiA+IC0JLnVldmVudAkJPSBwY2lf dWV2ZW50LA0KPiA+IC0JLnByb2JlCQk9IHBjaV9kZXZpY2VfcHJvYmUsDQo+ID4gLQkucmVtb3Zl CQk9IHBjaV9kZXZpY2VfcmVtb3ZlLA0KPiA+IC0JLnNodXRkb3duCT0gcGNpX2RldmljZV9zaHV0 ZG93biwNCj4gPiAtCS5kZXZfZ3JvdXBzCT0gcGNpX2Rldl9ncm91cHMsDQo+ID4gLQkuYnVzX2dy b3Vwcwk9IHBjaV9idXNfZ3JvdXBzLA0KPiA+IC0JLmRydl9ncm91cHMJPSBwY2lfZHJ2X2dyb3Vw cywNCj4gPiAtCS5wbQkJPSBQQ0lfUE1fT1BTX1BUUiwNCj4gPiAtCS5udW1fdmYJCT0gcGNpX2J1 c19udW1fdmYsDQo+ID4gLQkuZm9yY2VfZG1hCT0gdHJ1ZSwNCj4gPiArCS5uYW1lCQkJPSAicGNp IiwNCj4gPiArCS5tYXRjaAkJCT0gcGNpX2J1c19tYXRjaCwNCj4gPiArCS51ZXZlbnQJCQk9IHBj aV91ZXZlbnQsDQo+ID4gKwkucHJvYmUJCQk9IHBjaV9kZXZpY2VfcHJvYmUsDQo+ID4gKwkucmVt b3ZlCQkJPSBwY2lfZGV2aWNlX3JlbW92ZSwNCj4gPiArCS5zaHV0ZG93bgkJPSBwY2lfZGV2aWNl X3NodXRkb3duLA0KPiA+ICsJLmRldl9ncm91cHMJCT0gcGNpX2Rldl9ncm91cHMsDQo+ID4gKwku YnVzX2dyb3VwcwkJPSBwY2lfYnVzX2dyb3VwcywNCj4gPiArCS5kcnZfZ3JvdXBzCQk9IHBjaV9k cnZfZ3JvdXBzLA0KPiA+ICsJLnBtCQkJPSBQQ0lfUE1fT1BTX1BUUiwNCj4gPiArCS5udW1fdmYJ CQk9IHBjaV9idXNfbnVtX3ZmLA0KPiA+ICsJLmRtYV9jb25maWd1cmUJCT0gcGNpX2RtYV9jb25m aWd1cmUsDQo+ID4gKwkuZG1hX2RlY29uZmlndXJlCT0gcGNpX2RtYV9kZWNvbmZpZ3VyZSwNCj4g PiArCS5mb3JjZV9kbWEJCT0gdHJ1ZSwNCj4gPiAgIH07DQo+ID4gICBFWFBPUlRfU1lNQk9MKHBj aV9idXNfdHlwZSk7DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kZXZpY2Uu aCBiL2luY2x1ZGUvbGludXgvZGV2aWNlLmgNCj4gPiBpbmRleCBiMDkzNDA1Li45YjJkY2Y2IDEw MDY0NA0KPiA+IC0tLSBhL2luY2x1ZGUvbGludXgvZGV2aWNlLmgNCj4gPiArKysgYi9pbmNsdWRl L2xpbnV4L2RldmljZS5oDQo+ID4gQEAgLTg4LDYgKzg4LDkgQEAgZXh0ZXJuIGludCBfX211c3Rf Y2hlY2sgYnVzX2NyZWF0ZV9maWxlKHN0cnVjdA0KPiBidXNfdHlwZSAqLA0KPiA+ICAgICogQHJl c3VtZToJQ2FsbGVkIHRvIGJyaW5nIGEgZGV2aWNlIG9uIHRoaXMgYnVzIG91dCBvZiBzbGVlcCBt b2RlLg0KPiA+ICAgICogQG51bV92ZjoJQ2FsbGVkIHRvIGZpbmQgb3V0IGhvdyBtYW55IHZpcnR1 YWwgZnVuY3Rpb25zIGEgZGV2aWNlIG9uDQo+IHRoaXMNCj4gPiAgICAqCQlidXMgc3VwcG9ydHMu DQo+ID4gKyAqIEBkbWFfY29uZmlndXJlOglDYWxsZWQgdG8gc2V0dXAgRE1BIGNvbmZpZ3VyYXRp b24gb24gYSBkZXZpY2Ugb24NCj4gPiArCQkJdGhpcyBidXMuDQo+ID4gKyAqIEBkbWFfZGVjb25m aWd1cmU6CUNhbGxlZCB0byB0ZWFyIGRvd24gdGhlIERNQSBjb25maWd1cmF0aW9uLg0KPiA+ICAg ICogQHBtOgkJUG93ZXIgbWFuYWdlbWVudCBvcGVyYXRpb25zIG9mIHRoaXMgYnVzLCBjYWxsYmFj aw0KPiB0aGUgc3BlY2lmaWMNCj4gPiAgICAqCQlkZXZpY2UgZHJpdmVyJ3MgcG0tb3BzLg0KPiA+ ICAgICogQGlvbW11X29wczogIElPTU1VIHNwZWNpZmljIG9wZXJhdGlvbnMgZm9yIHRoaXMgYnVz LCB1c2VkIHRvIGF0dGFjaA0KPiBJT01NVQ0KPiA+IEBAIC0xMzAsNiArMTMzLDkgQEAgc3RydWN0 IGJ1c190eXBlIHsNCj4gPg0KPiA+ICAgCWludCAoKm51bV92Zikoc3RydWN0IGRldmljZSAqZGV2 KTsNCj4gPg0KPiA+ICsJaW50ICgqZG1hX2NvbmZpZ3VyZSkoc3RydWN0IGRldmljZSAqZGV2KTsN Cj4gPiArCXZvaWQgKCpkbWFfZGVjb25maWd1cmUpKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+IA0K PiBTZWVpbmcgaXQgbGFpZCBvdXQgaW4gdGhlIHBhdGNoLCBJIHJlYWxseSBkb24ndCB0aGluayB3 ZSBuZWVkIGENCj4gZGVjb25maWd1cmUgY2FsbGJhY2sgbGlrZSB0aGlzIC0gdGhlIGZhY3QgdGhh dCB3ZSdyZSBqdXN0IGNvcHktcGFzdGluZw0KPiB0aGUgZXhpc3RpbmcgaW1wbGVtZW50YXRpb24g ZXZlcnl3aGVyZSBpcyBhIGJpZyBoaW50LCBidXQgbW9yZQ0KPiBjb25jZXB0dWFsbHkgSSBjYW4n dCBzZWUgYSBnb29kIHJlYXNvbiBmb3IgaXQgdG8gZXZlciBuZWVkIGJ1cy1zcGVjaWZpYw0KPiBi ZWhhdmlvdXIgaW4gdGhlIHNhbWUgd2F5IHRoYXQgY29uZmlndXJlIGRvZXMuDQo+IA0KPiBNYXli ZSB0aGF0IG1lYW5zIHdlIGtlZXAgZG1hX2NvbmZpZ3VyZSgpIGFyb3VuZCBmb3IgdGhlIHNha2Ug b2YNCj4gc3ltbWV0cnksIGJ1dCBqdXN0IHJlZHVjZSBpdCB0bzoNCj4gDQo+IGludCBkbWFfY29u ZmlndXJlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gew0KPiAJaWYgKGRldi0+YnVzLT5kbWFfY29u ZmlndXJlKQ0KPiAJCXJldHVybiBkZXYtPmJ1cy0+ZG1hX2NvbmZpZ3VyZShkZXYpOw0KPiAJcmV0 dXJuIDA7DQo+IH0NCj4gDQo+IFJlYWxpc3RpY2FsbHkgdGhvdWdoLCBkbWFfZGVjb25maWd1cmUo KSBvbmx5IGV4aXN0cyBmb3IgdGhlIHNha2Ugb2YNCj4gY2FsbGluZyBhcmNoX3RlYXJkb3duX2Rt YV9vcHMoKSwgYW5kIHRoYXQgb25seSByZWFsbHkgZXhpc3RzIGZvciB0aGUNCj4gc2FrZSBvZiB0 aGUgb2xkIEFSTSBJT01NVSBjb2RlLCBzbyBJJ20gbm90IGluY2xpbmVkIHRvIHByZXRlbmQgaXQn cw0KPiBhbnl3aGVyZSBuZWFyIGFzIGltcG9ydGFudCBhcyB0aGUgZG1hX2NvbmZpZ3VyZSgpIHBh dGggaW4gZGVzaWduIHRlcm1zLg0KDQpZZXMsIEkgd2lsbCByZW1vdmUgZG1hX2RlY29uZmlndXJl IGNhbGxiYWNrLg0KDQpUaGFua3MsDQpOaXB1bg0KDQo+IA0KPiBSb2Jpbi4NCj4gDQo+ID4gKw0K PiA+ICAgCWNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzICpwbTsNCj4gPg0KPiA+ICAgCWNvbnN0IHN0 cnVjdCBpb21tdV9vcHMgKmlvbW11X29wczsNCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9kbWEtbWFwcGluZy5oIGIvaW5jbHVkZS9saW51eC9kbWEtbWFwcGluZy5oDQo+ID4gaW5kZXgg ZWI5ZWFiNC4uMDM5MjI0YiAxMDA2NDQNCj4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1tYXBw aW5nLmgNCj4gPiArKysgYi9pbmNsdWRlL2xpbnV4L2RtYS1tYXBwaW5nLmgNCj4gPiBAQCAtNzYx LDE4ICs3NjEsNiBAQCB2b2lkICpkbWFfbWFya19kZWNsYXJlZF9tZW1vcnlfb2NjdXBpZWQoc3Ry dWN0DQo+IGRldmljZSAqZGV2LA0KPiA+ICAgfQ0KPiA+ICAgI2VuZGlmIC8qIENPTkZJR19IQVZF X0dFTkVSSUNfRE1BX0NPSEVSRU5UICovDQo+ID4NCj4gPiAtI2lmZGVmIENPTkZJR19IQVNfRE1B DQo+ID4gLWludCBkbWFfY29uZmlndXJlKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gLXZvaWQg ZG1hX2RlY29uZmlndXJlKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gLSNlbHNlDQo+ID4gLXN0 YXRpYyBpbmxpbmUgaW50IGRtYV9jb25maWd1cmUoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+IC17 DQo+ID4gLQlyZXR1cm4gMDsNCj4gPiAtfQ0KPiA+IC0NCj4gPiAtc3RhdGljIGlubGluZSB2b2lk IGRtYV9kZWNvbmZpZ3VyZShzdHJ1Y3QgZGV2aWNlICpkZXYpIHt9DQo+ID4gLSNlbmRpZg0KPiA+ IC0NCj4gPiAgIC8qDQo+ID4gICAgKiBNYW5hZ2VkIERNQSBBUEkNCj4gPiAgICAqLw0KPiA+DQo=