Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 34199C433FE for ; Sat, 4 Dec 2021 02:20:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1384086AbhLDCYJ (ORCPT ); Fri, 3 Dec 2021 21:24:09 -0500 Received: from mail-am6eur05on2079.outbound.protection.outlook.com ([40.107.22.79]:21184 "EHLO EUR05-AM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1384063AbhLDCYG (ORCPT ); Fri, 3 Dec 2021 21:24:06 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SWWqQmw/CdwA1XieaKxKOmT4qEGFc6AYKXo/sshAhcEQ3QNPsDq4vWc0Dooy21BFAEOky97pLJcbG5sWSPunCdoAWDtpfs2IJdMIvSOYCO5NmVy9T9b1hmgT+XneADy43w9j5VWw48oOUQt6ZNkr0jIHBwSWd6r5TvI+1nFrou7Y4aliq9P2QiVUT+Ugra21kX79D/+CVtUa41zAQYZSIKXqxXfXf68RSI9aZie86xDCD6oUEBySkA3iR9wsKGJhFJlmqvxqsbp0EqM0fcZoy+VwczN3JRTaWIUsPyeOKTfaWaR7Hm9Hp73bHQtKFJN0UY9+CW6Envee4/p4u3lS1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Ih3URHdJl3LwUiCX0D6mjAJG3lgUI1+qkyBmbmoQQ34=; b=cmMPdKzG9dE90v5Sw6NheOdKEZVIPY7OmIpRqwoQL3AzhMCEn5QuXSZ0ZoNrvROXY7SA/B6XLnO0Q2DA9YlASThpb7XfI/DmS0A2iTx4fwN6uzfdzmj1ehXAbdSFqjeyOVqV/LueFj3h3li3mDfTre4j8fMdXfX8guhnVG/jUMJq89JjXxyXVkLBOExBuMm9EsK2uUxc/mWJumRzVI0vBXR67v0zWMlHKH4CmWRoSTy88sBj/wGj+viFoziZRLMW94SAHrZvCXgCRioBt/fNxUspGdBLVibAqsFh9MigBeRSs7pH8qypPpo9Np5rrY7TEwJZqIsb2JiIdtR9T1RA8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ih3URHdJl3LwUiCX0D6mjAJG3lgUI1+qkyBmbmoQQ34=; b=TDKVaT8w6FUWEZNHyxt5cFxx3aUsTrqXUFOQsuo7s9C9s8IrXblUvBxeqQYiQhTCxOEmaz5lIZTM0oLFmmWzvRG+a880dr8hwRgUbG3bU3ApImwcBPLjP8/SJlu8FGs8K7o6uR4DKLkSgEEE3MfYsB1MfwtjGp4YJSqmU3I/oME= Received: from VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) by VI1PR04MB4815.eurprd04.prod.outlook.com (2603:10a6:803:5d::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.28; Sat, 4 Dec 2021 02:20:38 +0000 Received: from VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::796e:38c:5706:b802]) by VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::796e:38c:5706:b802%3]) with mapi id 15.20.4755.019; Sat, 4 Dec 2021 02:20:38 +0000 From: Vladimir Oltean To: Colin Foster CC: "linux-kernel@vger.kernel.org" , "netdev@vger.kernel.org" , "linux-gpio@vger.kernel.org" , Lee Jones , Linus Walleij , "katie.morris@in-advantage.com" Subject: Re: [RFC v1] mfd: pinctrl: RFC only: add and utilze mfd option in pinctrl-ocelot Thread-Topic: [RFC v1] mfd: pinctrl: RFC only: add and utilze mfd option in pinctrl-ocelot Thread-Index: AQHX6IsIWtKLsGNWo0WEOaNOzBJHnawhmfaA Date: Sat, 4 Dec 2021 02:20:37 +0000 Message-ID: <20211204022037.dkipkk42qet4u7go@skbuf> References: <20211203211611.946658-1-colin.foster@in-advantage.com> In-Reply-To: <20211203211611.946658-1-colin.foster@in-advantage.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b1b98d5a-e09e-446a-1c7f-08d9b6cca95b x-ms-traffictypediagnostic: VI1PR04MB4815: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /CWq+5HkPsVYbJYmAjPpYFUDve797i8vmmou3hmvkHVH5/p+GlKTCpm9Pr7Z6PK5n+3Yz38SuyeyEYARUDw6BKj/wM3XUBtGOTxnFX4LqxojbZDD5dIw2bcWKGZGsJtSO2YcldstdDmhFjkSISuHgiIWpmx2U1pqG6UthK96+D3p1cX3ZGQB/BO5PUNvvTK7Bn3bT4XZ+yFm64nG7lCQ7Y2/8Ue6YhjteXDetW/A3PE+/wN3yKsuYWi6+CV1SiUXU1KFoREWBCE8HgrcT62sBSlCScB7luBpTUmPtOn5lB5RIZCiRLeLRrJxz/CCgHpF5pmsEt7o3L62AAxbwuF9c5flFTYncl3KAx+A3etlAAg4DcNcy/cjlfWh8R49+fi61bnUmLfwvp6M0L0U9SIkpRjfORdCPjtYmLp+RkoQMWHd4r4adbo7gc30bf+VxbJOWCTbvyyjbppGb4/+EKsF5Qq+ERVbK/txQUX6ZOthMg6RagYxrwBcta6PaosAKd9VZIjHaeNjcKnnuxZt1B3yf1IsMtIMAfwNn9OB4YyanNqkdCzxu6kSErBt454/1c+Jt27ASGLklSzlDwVroh65DZ1EWlx+XcwafGcjI0INYkn/psxjSryH67AHk/FPsvMgydLs8YbGOXwOq1y+S7rwOFzLR5qUn8dTi6VF83wAtlmIkQ5X1m1BOTH7iC86sZsghHgKDvjpmgBDca2iyJMz+/7dpYFGJ4F9E0GXQSXknLAuIG2TcAy4VIXKV/bi7PKFc4sU3/usiy1IsgZEckzvetcIxMA82r33wDCYyzMrhoDuf8CfbKksZ9QtjPPCX5MLK0zSNOQGvM8IJ1cFCiCu9g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5136.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(7916004)(366004)(316002)(86362001)(66556008)(66446008)(38070700005)(54906003)(122000001)(66476007)(38100700002)(8676002)(64756008)(33716001)(66946007)(8936002)(5660300002)(44832011)(26005)(2906002)(76116006)(508600001)(71200400001)(66574015)(91956017)(186003)(966005)(6486002)(6506007)(1076003)(9686003)(30864003)(4326008)(83380400001)(6512007)(6916009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SmhkWDB5QjNNQ3ZtZEQzY0tXNEtXUVFsRUlCZzZQZnZ5TCtxYVAwSG1VK3pk?= =?utf-8?B?Mk1Va3Y1ZE9QT1oxaldSck1FdE5ObEc3b3RVRG9pVGw1bWlZWC9aN1g4d0R6?= =?utf-8?B?cUhNanArOVNGZTVsd3Jvb0JPanBielhyamhBWktNMUVmN0J5OStvbVdnaHFw?= =?utf-8?B?LzV3NVRINXpLUFcwZWY2ejB2L0YxMWZqcnpTU2FkM2xLTjdmTTB6Z1BpOU1m?= =?utf-8?B?anhpejRWalEvNDZIazd0Q25JN1ljcENQOUNtZG1DWWxFcnB2cVJ3SlUrWkVu?= =?utf-8?B?Nkgra252U0Jhc1B1MUZHNGppcFFyZExRTU1RclljblVIdUFYc1hMZit4b3NB?= =?utf-8?B?VjNXZFZCN1k2Y2NBVGJBMVNUZU0wVmJKL0pFS0hMYUNPNXJKcXBDZ1NMbE11?= =?utf-8?B?VDJzZmJOOG1nK012MFVHbUpwd0hvYXhyZWo0REFQeHZ1SEhjTEhIUk0yaHIr?= =?utf-8?B?ekQvUWpJSG85T1ZlaitiUE5GVCszYVY5REFxckdJa3RtZEZWcC9YUjFzWWhH?= =?utf-8?B?eC8rL0NvMkRJckV1eitlWHhvK3NWeEt1L1dEZUgrcjJURVdPb2dVMm9DUlpC?= =?utf-8?B?NFIxSkdDZEorZW5NMG9HZE9HbGxWa1M0TDlMZjMwamN3UzZFN0p5aHRETTRJ?= =?utf-8?B?VHZzdkZReDAzeDFrY1JlMHRVQlYraVZZbzBGV2xFTkp2cVN2a0V5a3V3SXdM?= =?utf-8?B?dXVIRXpZYXlWN3FGNEx1aklpdWdjVk5CZk9vc1hDYXVqRDRzc1NMSnJpd3pC?= =?utf-8?B?cEFHdE1NLzJWWFZFb2hSN3JpZ3VjZG9Hb3hhbXNqTFpMTlF0VW0yTWc2Snlu?= =?utf-8?B?Nmt5UlRNYXExWVhzdFB5STFkK2RoK3pqMEZIV2VJakhiZlBBNGpVUDBKSHV2?= =?utf-8?B?SnBxMDRETWQrZ21IdTNrYUFma2ZibTVyeXpiQ2pnODVNaXFtdGVGczNzaDRG?= =?utf-8?B?RUEyZ3kzNGVXMjNLTW1zdmh4Q1lEVnhzaHBOWjZoajA4TFZjbkx0aFQrZ21G?= =?utf-8?B?UkRWY2d2ZnA5SXJaMCs3MVhENWp3YU9FUkhHQlo5ZitYcU5SZkR2UXIzZ3B0?= =?utf-8?B?RWZTa1pGcTBvMW9ZMmgxWm4vTmhobEV1aklBTUlxdzhpdjlkSGNuaUVtcGV3?= =?utf-8?B?U21yeTVHQWNvZnB2cmJ6QTFHT3l6Z1NzZVc1a1Yxc2pNMjBHczBXWUx0NTNr?= =?utf-8?B?RDF5ZEtkTFVOZ2luYVZJZVFnY1g0Nk9OYUpHQlVJU29ycW13eldUK05IRWlZ?= =?utf-8?B?Rzk4UHd6QVVWK1Y0SzgyYVBuUDlpWkszczRwQ05JcmNDREpJUzRUeUN4UFNp?= =?utf-8?B?UDRMVlYybjFPenR6L1d1cE0wRWdpVW9DL3hXM052REN2WWlGQ0Vsa1U5d3BP?= =?utf-8?B?MlFWb0I2VVhDN00rT2M0Y0VnbDNaWFA1Y3BhU2U1TUlpdS9PMGpIcEZVL0ly?= =?utf-8?B?M3d3RHdhSFZFSXNOdVpTUDl2dzJyMTdid2R6K1k2Tjl0WHBwRjFyUldrWXpT?= =?utf-8?B?eWthdUxWQjFkRlpnQnY3enNTbXNoOUJCdUcxbXQyOWE0RTF5dDhxK2tyNXdX?= =?utf-8?B?WmpZWVBuVmxhakpRd0kyaWRJb252K3RINS9DcGFYQk5qL0kwN3hFREs3enZR?= =?utf-8?B?eHBtUVNyTEVLMzNYYTNJOEt4ejFzYzBEU2JzMmFrelBzTWhtK2djU2xod2w5?= =?utf-8?B?czhjMDV5dW9OWERoZmJkQWNENkNZVFU5NENCQ3lWWnd0cHdCMHg2WnNCclVl?= =?utf-8?B?d1VpdE1tWFFqMXVQWHN3aXdWY1VOUzloUk9OZUV2OFpxaDMxYm1mZ3FTY0Zw?= =?utf-8?B?SzlpandmT2NQZGE1Um1CM3ViQjFDMFUyOTdramRWMFd1TFNCK2ljclVCQWVP?= =?utf-8?B?MW9xZjVYTGora1hJYW9EK2dpeCtqNmFLd2dxU3FUQ1dEQ2JWMkxSSjJNaEc4?= =?utf-8?B?YXVCM0J4VjNUK3RYMjFRSkUzQjNuNGcxNFh4a3RmQ2ZGa1BtUCtNeHU2NGh5?= =?utf-8?B?MmFHNm4xaXlibVR5cjdVdkhiMEV4MEd1RkxlVkgyTWZOWlR5WDhuQjhOdjJz?= =?utf-8?B?c1U2cmo0Q2pCSHpOQXNML3R6U3ZtU1dyVFoxTml2cm5VLzFDbEJpV0lPR0Fl?= =?utf-8?B?TXJBTFJOODlOVnRVdGMvQkpZN1orZUVpM09JWTBWMHFhajBZc0V0VkhTS1RR?= =?utf-8?Q?MFjA7GYzpQqZusC7OenPq2s=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <3C4471F521056B47ACC00311B6BE7D0B@eurprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5136.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b1b98d5a-e09e-446a-1c7f-08d9b6cca95b X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2021 02:20:37.8977 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 63yuyUeiHugTBuviPC3Rb39WidqTyvxa5Y/HJpSQpldZ8vLU7EGnoihEpKt4ZoR4SRZjG8G/3RmJUCST0B3CZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4815 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gRnJpLCBEZWMgMDMsIDIwMjEgYXQgMDE6MTY6MTFQTSAtMDgwMCwgQ29saW4gRm9zdGVyIHdy b3RlOg0KPiBUaGlzIGlzIGEgcHN1ZWRvLWNvbW1pdCwgYnV0IG9uZSB0aGF0IHRlbGxzIHRoZSBj b21wbGV0ZSBzdG9yeSBvZiB3aGF0IEknbQ0KPiBsb29raW5nIGF0LiBEdXJpbmcgYW4gYWN0dWFs IHN1Ym1pc3Npb24gdGhpcydsbCBiZSBicm9rZW4gdXAgaW50byB0d28NCj4gY29tbWl0cywgYnV0 IEknZCBsaWtlIHRvIGdldCBzb21lIGZlZWRiYWNrIG9uIHdoZXRoZXIgdGhpcyBpcyB0aGUgY29y cmVjdA0KPiBwYXRoIGZvciBtZSB0byBiZSBnb2luZyBkb3duLg0KPiANCj4gQmFja2dyb3VuZDoN Cj4gDQo+IE1pY3JvY2hpcCBoYXMgYSBmYW1pbHkgb2YgY2hpcHMgLSB0aGUgVlNDNzUxMSwgNzUx MiwgNzUxMywgYW5kIDc1MTQuIFRoZQ0KPiBsYXN0IHR3byBoYXZlIGFuIGludGVybmFsIE1JUFMg cHJvY2Vzc29yLCB3aGljaCBhcmUgc3VwcG9ydGVkIGJ5DQo+IGRyaXZlcnMvbmV0L2V0aGVybmV0 L21zY2Mvb2NlbG90XyouIFRoZSBmb3JtZXIgdHdvIGxhY2sgdGhpcyBwcm9jZXNzb3IuDQo+IA0K PiBBbGwgZm91ciBjaGlwcyBjYW4gYmUgY29uZmlndXJlZCBleHRlcm5hbGx5IHZpYSBhIG51bWJl ciBvZiBpbnRlcmZhY2VzOg0KPiBTUEksIEkyQywgUENJZS4uLiBUaGlzIGlzIGN1cnJlbnRseSBu b3Qgc3VwcG9ydGVkIGFuZCBpcyBteSBlbmQgZ29hbC4NCj4gDQo+IFRoZSBuZXR3b3JraW5nIHBv cnRpb24gb2YgdGhlc2UgY2hpcHMgaGF2ZSBiZWVuIHJldXNlZCBpbiBvdGhlciBwcm9kdWN0cyBh cw0KPiB3ZWxsLiBUaGVzZSB1dGlsaXplIHRoZSBjb21tb24gY29kZSBieSB3YXkgb2YgbXNjY19v Y2Vsb3Rfc3dpdGNoX2xpYiBhbmQNCj4gbmV0L2RzYS9vY2Vsb3QvKi4gU3BlY2lmaWNhbGx5IHRo ZSAiRmVsaXgiIGRyaXZlci4NCj4gDQo+IEN1cnJlbnQgc3RhdHVzOg0KPiANCj4gSSd2ZSBwdXQg b3V0IGEgZmV3IFJGQ3Mgb24gdGhlICJvY2Vsb3Rfc3BpIiBkcml2ZXIuIEl0IHV0aWxpemVzIEZl bGl4IGFuZA0KPiBpbnZva2VzIG11Y2ggb2YgdGhlIG5ldHdvcmsgcG9ydGlvbiBvZiB0aGUgaGFy ZHdhcmUgKFZTQzc1MTIpLiBJdCB3b3Jrcw0KPiBncmVhdCEgVGhhbmtzIGNvbW11bml0eSA6KQ0K PiANCj4gVGhlcmUncyBtb3JlIGhhcmR3YXJlIHRoYXQgbmVlZHMgdG8gZ2V0IGNvbmZpZ3VyZWQs IGhvd2V2ZXIuIEN1cnJlbnRseSB0aGF0DQo+IGluY2x1ZGVzIGdlbmVyYWwgcGluIGNvbmZpZ3Vy YXRpb24sIGFuZCBhbiBvcHRpb25hbCBzZXJpYWwgR1BJTyBleHBhbmRlci4NCj4gVGhlIGZvcm1l ciBpcyBzdXBwb3J0ZWQgYnkgZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtb2NlbG90LmMgYW5kIHRo ZSBsYXR0ZXINCj4gYnkgZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtbWljcm9jaGlwLXNncGlvLmMu DQo+IA0KPiBUaGVzZSBkcml2ZXJzIGhhdmUgYmVlbiB1cGRhdGVkIHRvIHVzZSByZWdtYXAgaW5z dGVhZCBvZiBpb21lbSwgYnV0IHRoYXQNCj4gaXNuJ3QgdGhlIGNvbXBsZXRlIHN0b3J5LiBUaGVy ZSBhcmUgdHdvIG9wdGlvbnMgSSBrbm93IGFib3V0LCBhbmQgbWF5YmUNCj4gb3RoZXJzIEkgZG9u J3QuDQo+IA0KPiBPcHRpb24gMSAtIGRpcmVjdGx5IGhvb2sgaW50byB0aGUgZHJpdmVyOg0KPiAN Cj4gVGhpcyB3YXMgdGhlIHBhdGggdGhhdCB3YXMgZG9uZSBpbg0KPiBjb21taXQgYjk5NjU4NDUy MzU1ICgibmV0OiBkc2E6IG9jZWxvdDogZmVsaXg6IHV0aWxpemUgc2hhcmVkIG1zY2MtbWlpbQ0K PiBkcml2ZXIgZm9yIGluZGlyZWN0IE1ESU8gYWNjZXNzIikuDQo+IFRoaXMgaXMgaW4gdGhlIG5l dC1uZXh0IHRyZWUuIEluIHRoaXMgY2FzZSB0aGUgU2V2aWxsZSBkcml2ZXIgcGFzc2VzIGluIGl0 cw0KPiByZWdtYXAgdG8gdGhlIG1zY2NfbWlpbV9zZXR1cCBmdW5jdGlvbiwgd2hpY2ggYnlwYXNz ZXMgbXNjY19taWltX3Byb2JlIGJ1dA0KPiBhbGxvd3MgdGhlIHNhbWUgZHJpdmVyIHRvIGJlIHVz ZWQuDQo+IA0KPiBUaGlzIHdhcyBteSBpbml0aWFsIGltcGxlbWVudGF0aW9uIHRvIGhvb2sgaW50 byBwaW5jdHJsLW9jZWxvdCBhbmQNCj4gcGluY3RybC1taWNyb2NoaXAtc2dwaW8uIFRoZSBnb29k IHRoaW5nIGFib3V0IHRoaXMgaW1wbGVtZW50YXRpb24gaXMgSSBoYXZlDQo+IGRpcmVjdCBjb250 cm9sIG92ZXIgdGhlIG9yZGVyIG9mIHRoaW5ncyBoYXBwZW5pbmcuIEZvciBpbnN0YW5jZSwgcGlu Y3RybA0KPiBtaWdodCBuZWVkIHRvIGJlIGNvbmZpZ3VyZWQgYmVmb3JlIHRoZSBNRElPIGJ1cyBn ZXRzIHByb2JlZC4NCj4gDQo+IFRoZSBiYWQgdGhpbmcgYWJvdXQgdGhpcyBpbXBsZW1lbnRhdGlv biBpcy4uLiBpdCBkb2Vzbid0IHdvcmsgeWV0LiBNeQ0KPiBtZW1vcnkgaXMgZnV6enkgb24gdGhp cywgYnV0IEkgcmVjYWxsIG5vdGljaW5nIHRoYXQgdGhlIGFwcGxpY2F0aW9uIG9mIGENCj4gZGV2 aWNldHJlZSBwaW5jdHJsIGZ1bmN0aW9uIGhhcHBlbnMgaW4gdGhlIGRyaXZlciBwcm9iZS4gSSB2 ZW50dXJlZCBkb3duDQo+IHRoaXMgcGF0aCBvZiB3YWxraW5nIHRoZSBkZXZpY2V0cmVlLCBhcHBs eWluZyBwaW5jZmcsIGV0Yy4gVGhhdCB3YXMgYSBwYXRoDQo+IHRvIGRhcmtuZXNzIHRoYXQgSSBo YXZlIGFiYW5kb25lZC4NCj4gDQo+IFdoYXQgaXMgZnVuY3Rpb25pbmcgaXMgSSBoYXZlIGRlYnVn ZnMgLyBzeXNmcyBjb250cm9sLCBzbyBJIGRvIGhhdmUgdGhlDQo+IGFiaWxpdHkgdG8gZG8gc29t ZSBydW50aW1lIHRlc3RpbmcgYW5kIHZlcmlmaWNhdGlvbi4NCj4gDQo+IE9wdGlvbiAyIC0gTUZE ICh0aGlzICJwYXRjaCIpDQo+IA0KPiBJdCByZWFsbHkgc2VlbXMgbGlrZSBhbnl0aGluZyBpbiBk cml2ZXJzL25ldC9kc2EvIHNob3VsZCBhdm9pZA0KPiBkcml2ZXJzL3BpbmN0bCwgYW5kIHRoYXQg TUZEIGlzIHRoZSBhbnN3ZXIuIFRoaXMgYWRkcyBzb21lIGNvbXBsZXhpdHkgdG8NCj4gcGluY3Ry bC1vY2Vsb3QsIGFuZCBJJ20gbm90IHN1cmUgd2hldGhlciB0aGF0IGJyZWFrcyB0aGUgY29uY2Vw dCBvZiBNRkQuIFNvDQo+IGl0IHNlZW1zIGxpa2UgSSdtIGVpdGhlciBkb2luZyBzb21ldGhpbmcg dW5pcXVlLCBvciBJJ20gZG9pbmcgc29tZXRoaW5nDQo+IHdyb25nLg0KPiANCj4gSSBlcnIgb24g dGhlIGFzc3VtcHRpb24gdGhhdCBJJ20gZG9pbmcgc29tZXRoaW5nIHdyb25nLg0KPiANCj4gcGlu Y3RybC1vY2Vsb3QgZ2V0cyBpdHMgcmVzb3VyY2VzIHRoZSBkZXZpY2UgdHJlZSBieSB3YXkgb2YN Cj4gcGxhdGZvcm1fZ2V0X2FuZF9pb3JlbWFwX3Jlc291cmNlLiBUaGlzIGRyaXZlciBoYXMgYmVl biB1cGRhdGVkIHRvIHN1cHBvcnQNCj4gcmVnbWFwIGluIHRoZSBwaW5jdHJsIHRyZWU6DQo+IGNv bW1pdCAwNzZkOWU3MWJjZjggKCJwaW5jdHJsOiBvY2Vsb3Q6IGNvbnZlcnQgcGluY3RybCB0byBy ZWdtYXAiKQ0KPiANCj4gVGhlIHByb2JsZW0gY29tZXMgYWJvdXQgd2hlbiB0aGlzIGRyaXZlciBp cyBwcm9iZWQgYnkgd2F5IG9mDQo+ICJtZmRfYWRkX2RldmljZXMiLiBJbiBhbiBpZGVhbCB3b3Js ZCBpdCBzZWVtcyBsaWtlIHRoaXMgd291bGQgYmUgaGFuZGxlZCBieQ0KPiByZXNvdXJjZXMuIE1G RCBhZGRzIHJlc291cmNlcyB0byB0aGUgZGV2aWNlIGJlZm9yZSBpdCBnZXRzIHByb2JlZC4gVGhl DQo+IHByb2JlIGhhcHBlbnMgYW5kIHRoZSBkcml2ZXIgaXMgaGFwcHkgYmVjYXVzZSBwbGF0Zm9y bV9nZXRfcmVzb3VyY2UNCj4gc3VjY2VlZHMuDQo+IA0KPiBJbiB0aGlzIHNjZW5hcmlvIHRoZSBk ZXZpY2UgZ2V0cyBwcm9iZWQsIGJ1dCBuZWVkcyB0byBrbm93IGhvdyB0byBnZXQgaXRzDQo+IHJl Z21hcC4uLiBub3QgaXRzIHJlc291cmNlLiBJbiB0aGUgIkknbSBydW5uaW5nIGZyb20gYW4gaW50 ZXJuYWwgY2hpcCINCj4gc2NlbmFyaW8sIHRoZSBleGlzdGluZyBwcm9jZXNzIG9mICJkZXZtX3Jl Z21hcF9pbml0X21taW8iIHdpbGwgc3VmZmljZS4gQnV0DQo+IGluIHRoZSAiSSdtIHJ1bm5pbmcg ZnJvbSBhbiBleHRlcm5hbGx5IGNvbnRyb2xsZWQgc2V0dXAgdmlhIHtTUEksSTJDLFBDSWV9Ig0K PiB0aGUgcHJvY2VzcyBuZWVkcyB0byBiZSAiZ2V0IG1lIHRoaXMgcmVnbWFwIGZyb20gbXkgcGFy ZW50Ii4gSXQgc2VlbXMgbGlrZQ0KPiBkZXZfZ2V0X3JlZ21hcCBpcyBhIHBlcmZlY3QgY2FuZGlk YXRlIGZvciB0aGlzLg0KPiANCj4gUGVyaGFwcyB0aGVyZSBpcyBzb21ldGhpbmcgSSdtIG1pc3Np bmcgaW4gdGhlIGNvbmNlcHQgb2YgcmVzb3VyY2VzIC8NCj4gcmVnbWFwcy4gQnV0IGl0IHNlZW1z IGxpa2UgcGluY3RybC1vY2Vsb3QgbmVlZHMgdG8ga25vdyB3aGV0aGVyIGl0IGlzIGluIGFuDQo+ IE1GRCBzY2VuYXJpbywgYW5kIHRoYXQgY29uY2VwdCBkaWRuJ3QgZXhpc3QuIEhlbmNlIHRoZSBh ZGRpdGlvbiBvZg0KPiBkZXZpY2VfaXNfbWZkIGFzIHBhcnQgb2YgdGhpcyBwYXRjaC4gU2luY2Ug ImRldmljZV9pc19tZmQiIGRpZG4ndCBleGlzdCwgaXQNCj4gZmVlbHMgbGlrZSBJIG1pZ2h0IGJl IGJyZWFraW5nIHRoZSBjb25jZXB0IG9mIE1GRC4NCg0KSW4gdGhlIHBvc3NpYmlsaXR5IHRoYXQg ImRldmljZV9pc19tZmQoKSIgaXMgbm90IGFjY2VwdGFibGUgZm9yIHRoZQ0KcGluY3RybCBhbmQg bWZkIG1haW50YWluZXJzLCBvbmUgb3RoZXIgd2F5IGluIHdoaWNoIHlvdSBjb3VsZCBzb2x2ZSB0 aGlzDQpjb251bmRydW0sIHdpdGhvdXQgY2hhbmdpbmcgYW55dGhpbmcgaW4gdGhlIGNvcmUsIHdv dWxkIGJlIHRvIGludHJvZHVjZQ0KYSBkaWZmZXJlbnQgY29tcGF0aWJsZSBzdHJpbmcgZm9yIHlv dXIgZHJpdmVyIHZhcmlhbnQsIGFuZCB0aGUNCnBpbmN0cmwtb2NlbG90IGRyaXZlciBjb3VsZCBm aWd1cmUgb3V0IGJhc2VkIG9uIHRoYXQgd2hldGhlciB0byByZXF1ZXN0DQphIHJlc291cmNlIG9y IGEgcmVnbWFwLiBJIGRvbid0IHNlZSB0aGlzIGJlaW5nIGRvbmUsIGVpdGhlciwgYnV0IEkNCnN1 cHBvc2UgaXQgY291bGQgYmUgbWFkZSB0byB3b3JrIHF1aXRlIGVhc2lseS4gU29tZXRoaW5nIGxp a2UNCiJtc2NjLG9jZWxvdC1tZmQtcGluY3RybCIgaW5zdGVhZCBvZiAibXNjYyxvY2Vsb3QtcGlu Y3RybCIuDQoNCj4gDQo+IEkgdGhpbmsgdGhpcyB3b3VsZCBsZW5kIGl0c2VsZiB0byBhIHByZXR0 eSBlbGVnYW50IGFyY2hpdGVjdHVyZSBmb3IgdGhlDQo+IFZTQzc1MVggZXh0ZXJuYWxseSBjb250 cm9sbGVkIGNoaXBzLiBJbiBhIG1hbm5lciBzaW1pbGFyIHRvDQo+IGRyaXZlcnMvbWZkL21hZGVy YSogdGhlcmUgd291bGQgYmUgc21hbGwgZHJpdmVycyBoYW5kbGluZyB0aGUgcHJvY29jb2wNCj4g bGF5ZXJzIGZvciBTUEksIEkyQy4uLiBBIGNvcmUgZHJpdmVyIHdvdWxkIGhhbmRsZSB0aGUgcmVn aXN0ZXIgbWFwcGluZ3MsDQo+IGFuZCBjb3VsZCBiZSBnb3R0ZW4gYnkgZGV2X2dldF9yZWdtYXAu IEV2ZXJ5IHN1Yi1kZXZpY2UgKERTQSwgcGluY3RybCwNCj4gb3RoZXIgcGluY3RybCwgb3RoZXIg dGhpbmdzIEkgaGF2ZW4ndCBjb25zaWRlcmVkIHlldCkgY291bGQgZWl0aGVyIHJlbHkgb24NCj4g ZGV2LT5wYXJlbnQgZGlyZWN0bHksIG9yIGluIHRoaXMgY2FzZSBhZGp1c3QuIEkgY2FuJ3QgaW1h Z2luZSBhIHNjZW5hcmlvDQo+IHdoZXJlIHNvbWVvbmUgd291bGQgd2FudCBwaW5jdHJsIGZvciB0 aGUgVlNDNzUxMiB3aXRob3V0IHRoZSBEU0Egc2lkZSBvZg0KPiB0aGluZ3MuLi4gYnV0IHRoYXQg d291bGQgYmUgcG9zc2libGUgaW4gdGhpcyBhcmNoaXRlY3R1cmUgdGhhdCB3b3VsZA0KPiBvdGhl cndpc2Ugbm90Lg0KDQpOb3QgcGluY3RybCwgYnV0IGxldCBtZSB0cnkgdG8gZ2l2ZSB5b3UgYW4g ZXhhbXBsZSB3aGljaCBpcyBwZXJoYXBzDQpyZWxldmFudC4NCg0KRWFybGllciB0aGlzIHllYXIs IEFsdmluIMWgaXByYWdhIGRyb3BwZWQgYSBib21iIHN0YXRpbmcgdGhhdCBmb3Igc29tZQ0KRFNB IGRyaXZlcnMgZm9yIHN3aXRjaGVzIHdpdGggZW1iZWRkZWQgUEhZcywgdGhvc2UgUEhZcyB3b3Vs ZCBmYWxsIGJhY2sNCnRvIHVzaW5nIHRoZSBsZXNzIHNwZWNpZmljIChnZW5lcmljKSBQSFkgZHJp dmVyIF9pZl8gdGhleSBhcmUgcmVxdWVzdGluZw0KaW50ZXJydXB0cy4NCmh0dHBzOi8vbG9yZS5r ZXJuZWwub3JnL25ldGRldi9jZDBkOWM0MC1kMDdiLWUyYWItYjA2OC1kMGJjYjQ2ODVkMDlAYmFu Zy1vbHVmc2VuLmRrLw0KDQpJdCB3YXMgYSBodWdlIGRpc2N1c3Npb24sIGRyaXZlciBjb3JlIG1h aW50YWluZXJzIGdvdCBpbnZvbHZlZCwNCnJlc3RydWN0dXJpbmcgdGhlIERTQSBjcm9zcy1jaGlw IHByb2JpbmcgZGVzaWduIHdhcyBvbiB0aGUgdGFibGUsIHRoZQ0KUEhZIGxpYnJhcnkgdG9vLCB5 ZXQgdG8gbXkga25vd2xlZGdlIG5vdGhpbmcgZ290IHJlc29sdmVkLCBhbmQgZXZlbiBpZg0KaXQg ZGlkLCBpdCB3YXMgdGhyb3VnaCB0aGUgaW50cm9kdWN0aW9uIG9mIGEgaGFja3kgZmxhZw0KKEZX Tk9ERV9GTEFHX0JST0tFTl9QQVJFTlQpLiBJIGRvbid0IHJlbWVtYmVyIGlmIHRoYXQgd29ya2Fy b3VuZCBldmVuDQpnb3QgYXBwbGllZCBvciBub3QuDQoNCiJCcm9rZW4gcGFyZW50Ij8gV2h5IGJy b2tlbj8NCg0KU2VlLCBvY2Vsb3QgaXMgbm90IHRoZSBvbmx5IERTQSBzd2l0Y2ggU29DIHRoYXQg aGFzIG1vcmUgc3R1ZmYgZ29pbmcgb24NCm9uYm9hcmQgdGhhbiBqdXN0IHRoZSBzd2l0Y2hpbmcg ZmFicmljLiBGb3IgbW9zdCBvdGhlciBEU0EgZHJpdmVycywgdGhpcw0KZ3JldyBxdWl0ZSBvcmdh bmljYWxseSwgZnJvbSBhIHNpbXBsZSBNRElPIGRldmljZSBkcml2ZXIsIHRvIGEgZGV2aWNlDQpk cml2ZXIgZm9yIGEgc3dpdGNoIHRoYXQgYWxzbyByZWdpc3RlcnMgbWFueSBvdGhlciBkcml2ZXJz LCBhbmQgYnVzZXMsDQpmcm9tIGl0cyBvd24gcHJvYmUgZnVuY3Rpb24uIEFuZCB0aGUgT0YgYmlu ZGluZ3MgYWxzbyBncmV3IG9yZ2FuaWNhbGx5Li4NCmFuZCBoaWVyYXJjaGljYWxseSB3aXRoIHRo ZSBzd2l0Y2ggb24gdG9wLCBkcml2aW5nIGV2ZXJ5dGhpbmcgKHRoaXMgd2lsbA0KYmVjb21lIGlt cG9ydGFudCBpbiBhIG1pbnV0ZSkuDQoNCkZvciBleGFtcGxlLCB0aGUgTWFydmVsbCBtdjg4ZTZ4 eHggZHJpdmVyLCBvciBBbHZpbidzIHJ0bDgzNjVtYiBkcml2ZXIuDQpUaGVzZSBkcml2ZXJzIHJl Z2lzdGVyIGFuIGludGVybmFsIE1ESU8gYnVzIGZvciB0aGVpciBQSFlzLCBhbmQgdG8gYXZvaWQN CnBvbGxpbmcgdGhvc2UgZXZlcnkgc2Vjb25kLCB0aGV5IGFsc28gcmVnaXN0ZXIgYSBjYXNjYWRl ZCBpcnFjaGlwIGRyaXZlci4NCkEgbG90IG9mIGNhcmUgaXMgdGFrZW4gc3VjaCB0aGF0IHRoZSBp cnFjaGlwIGRyaXZlciBpcyByZWdpc3RlcmVkIGJlZm9yZQ0KdGhlIGludGVybmFsIE1ESU8gYnVz IGlzLCBiZWNhdXNlIFBIWXMgb24gdGhlIGludGVybmFsIE1ESU8gYnVzIHdpbGwNCm5lZWQgSVJR cy4gWWV0IHRoaXMgYXBwZWFyZWQgdG8gYmUgaW5zdWZmaWNpZW50OiBvbiBBbHZpbidzIHN5c3Rl bSwgdGhlDQpwcm9iaW5nIG9mIHRoZSBQSFkgZHJpdmVyIGlzIGF0dGVtcHRlZCBhcyBzb29uIGFz IHRoZSBQSFlzIHdlcmUNCmRpc2NvdmVyZWQgb24gdGhlIGJ1cyAoZXhwZWN0ZWQpLCBhbmQgaW1t ZWRpYXRlbHkgcmVmdXNlZC4gRGlhZ25vc2lzPw0KLUVQUk9CRV9ERUZFUi4gV2hhdCByZXNvdXJj ZSB3ZXJlIHRoZXNlIGludGVybmFsIFBIWXMgbWlzc2luZz8NClRoZSBpbnRlcnJ1cHQgcGFyZW50 LiBCdXQgaG93PyBUaGUgaXJxY2hpcCB3YXMgcmVnaXN0ZXJlZCBqdXN0IGJlZm9yZSwNCml0J3Mg dGhlcmUsIHdhaXRpbmcuDQoNCkFzIGl0IHR1cm5zIG91dCwgdGhlcmUgaXMgdGhpcyBtZWNoYW5p c20gY2FsbGVkICJmd19kZXZsaW5rIiAocGFydCBvZg0KZGV2aWNlIGxpbmtzKQ0KaHR0cHM6Ly93 d3cua2VybmVsLm9yZy9kb2MvaHRtbC9sYXRlc3QvZHJpdmVyLWFwaS9kZXZpY2VfbGluay5odG1s DQp0aGF0IHRyaWVzIHRvIGJlIGhlbHBmdWwgYW5kIHNoYXZlIG9mZiBhIGZldyBodW5kcmVkcyBv ZiBtcyBmcm9tIHRoZQ0KYm9vdCB0aW1lLiBUbyBnaXZlIHlvdSBhbiBleGFtcGxlIG9mIHRoZSBr aW5kIG9mIHRoaW5nIGl0J3MgZGVzaWduZWQgdG8NCmJlIGhlbHBmdWwgd2l0aDogc2F5IHlvdSBo YXZlIGFuIE1ESU8tYXR0YWNoZWQgRFNBIHN3aXRjaCwgd2hpY2ggaXMNCnNpdHRpbmcgb24gYW4g TURJTyBidXMgdGhhdCBoYXBwZW5zIHRvIGJlIHJlZ2lzdGVyZWQgYnkgdGhlIERTQSBtYXN0ZXIN Cml0c2VsZi4gQW55IHNhbmUgRXRoZXJuZXQgZHJpdmVyIHRoYXQgaGFzIGFuIE1ESU8gYnVzIG9u IGl0cyBoYW5kcyB3aWxsDQpmaXJzdCByZWdpc3RlciB0aGUgTURJTyBidXMsIHRoZW4gdGhlIG5l dCBkZXZpY2UgKGJlY2F1c2UgcmVnaXN0ZXJpbmcNCnRoZSBuZXQgZGV2aWNlIHdpbGwgZXhwb3Nl IHRoZSBwb3NzaWJpbGl0eSBmb3IgaXQgdG8gY29ubmVjdCB0byB0aGUgUEhZLA0Kd2hpY2ggbWF5 IGJlIGxvY2F0ZWQgb24gaXRzIG93biBNRElPIGJ1cywgd2hpY2ggbmVlZHMgdG8gYmUgYXZhaWxh YmxlKS4NClNvIGl0IGlzIG5hdHVyYWwgdG8gYXNzdW1lIHRoYXQgdGhpcyBpcyBhbHNvIHdoYXQg aGFwcGVucyBpbnNpZGUgb3VyDQpFdGhlcm5ldCBjb250cm9sbGVyIHRoYXQgaXMgYSBEU0EgbWFz dGVyIGhlcmUuIFNvIHRoZSBpbXBsaWNhdGlvbiBpcw0KdGhhdCB3aGVuIHRoZSBEU0EgbWFzdGVy IHJlZ2lzdGVycyBpdHMgTURJTyBidXMsIHRoZSBkZXZpY2VzIG9uIGl0IHdpbGwNCmF0dGVtcHQg dG8gcHJvYmUsIGFuZCB0aGVyZWZvcmUgdGhlIHN3aXRjaCB0b28uIFRoZSBzd2l0Y2ggZHJpdmVy LCBhbmQNCkRTQSwgd2lsbCBhbGxvY2F0ZSBzb21lIHJlc291cmNlcyBhbmQgZmluYWxseSBzZWFy Y2ggZm9yIGl0cyBEU0EgbWFzdGVyDQp2aWEgb2ZfZmluZF9uZXRfZGV2aWNlX2J5X25vZGUoKS4N ClRoaXMgd2lsbCBpbmV2aXRhYmx5IGZhaWwgYmVjYXVzZSB0aGUgRFNBIG1hc3RlciBoYXMgcmVn aXN0ZXJlZCB0aGUgTURJTw0KYnVzIGJ1dCBub3QgdGhlIG5ldCBkZXZpY2UgKHlldCksIGFuZCB0 aGUgc3dpdGNoIHdpbGwgaGF2ZSB0byByZXR1cm4NCi1FUFJPQkVfREVGRVIgYW5kIHNvbWUgQ1BV IGN5Y2xlcyBoYXZlIGJlZW4gdXNlbGVzc2x5IHdhc3RlZC4NClByb2Jpbmcgd2lsbCBvZiBjb3Vy c2UgYmUgcmVzdW1lZCBsYXRlciwgYW5kIHdpbGwgc3VjY2VlZCBhZnRlciB0aGUgRFNBDQptYXN0 ZXIgaGFzIHJlZ2lzdGVyZWQgdGhlIG5ldCBkZXZpY2UgdG9vLg0KDQpXaGVyZSBmd19kZXZsaW5r IGNvbWVzIGludG8gYWxsIG9mIHRoaXMgaXMgdGhhdCBpdCBzYXlzICJ5b3Uga25vdyB3aGF0LA0K SSdtIG5vdCBldmVuIGxldHRpbmcgeW91IHBsYXkuIEknbSBnb2luZyB0byBpbmZlciBzb21lIHJl bGF0aW9uc2hpcHMNCmJldHdlZW4gc3RydWN0IGRldmljZXMgYmFzZWQgb24gZmlybXdhcmUgbm9k ZSBwaGFuZGxlcyAoaW4gdGhpcyBjYXNlLA0KdGhpbmsgb2YgdGhlICdldGhlcm5ldCA9IDwmZHNh X21hc3Rlcj4nIHRoYXQgRFNBIGhhcyksIGFuZCBpZiBJIGRldGVjdA0KdGhhdCB0aGUgc3VwcGxp ZXIgb2YgdGhhdCBwaGFuZGxlIGhhc24ndCBmaW5pc2hlZCBwcm9iaW5nIHlldCwgSSdsbCBqdXN0 DQpyZXR1cm4gLUVQUk9CRV9ERUZFUiBmcm9tIHRoZSBkZXZpY2UgY29yZSwgbm90IGludm9raW5n IGFueSBEU0Egc3dpdGNoDQpwcm9iZSBmdW5jdGlvbiBhdCBhbGwuIEknbGwgY2FsbCB5b3Ugd2hl biB5b3VyIHN1cHBsaWVycyBhcmUgcmVhZHkiLg0KDQpSZWFzb25hYmxlLCByaWdodD8NCg0KV2Vs bCwgYmFjayB0byBBbHZpbi4gVG8gdW5kZXJzdGFuZCB0aGUgcHJvYmxlbSBoZSBoYWQgKGhhcz8p LCB5b3UgbmVlZA0KdG8gYmV0dGVyIHVuZGVyc3RhbmQgdGhlIGZsYXdzIGluIGZ3X2Rldmxpbmsu IFRoaXMgbWVjaGFuaXNtIGVzc2VudGlhbGx5DQpzYXlzIHRoYXQgaWYgdGhlcmUncyBhIHN1cHBs aWVyLWNvbnN1bWVyIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHR3byBPRg0Kbm9kZXMgYnkgd2F5IG9m IGEgcGhhbmRsZSwgdGhlcmUncyBhbHNvIGEgc3VwcGxpZXItY29uc3VtZXIgcmVsYXRpb25zaGlw DQpiZXR3ZWVuIHRoZSBkZXZpY2VzIHRoYXQgcHJvYmUgb24gdGhvc2UgT0Ygbm9kZXMuIFNvIGl0 IGNyZWF0ZXMgZGV2aWNlDQpsaW5rcyBiZXR3ZWVuIHRob3NlIGRldmljZXMuDQoNCkJ1dCB0aGUg cHJvYmxlbSBpcyB0aGF0IHRoZSBEU0Egc3dpdGNoIGRyaXZlcnMgbWF5IG5vdCBoYXZlIGEgc2Vw YXJhdGUNCk9GIG5vZGUgZm9yIHRoZSBpbnRlcnJ1cHQgY29udHJvbGxlciwgZXNwZWNpYWxseSBz aW5jZSB0aGUgZHJpdmVyDQp3cml0ZXJzIGRpZG4ndCBrbm93IGFueSBiZXR0ZXIsIGFnZXMgYWdv LiBUaGVyZSBhcmVuJ3QgZGVkaWNhdGVkIHN0cnVjdA0KZGV2aWNlcyBmb3IgdGhlIHNlcGFyYXRl IGNvbXBvbmVudHMgbGlrZSB0aGUgaXJxY2hpcCwgZWl0aGVyLCBvdGhlciB0aGFuDQp0aGUgTURJ TyBkZXZpY2UgaXRzZWxmLCBiZWNhdXNlIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgYnVzZXMgb24g d2hpY2gNCnRob3NlIG90aGVyIHN0cnVjdCBkZXZpY2VzIHNob3VsZCBleGlzdC4gIFNvIHdoZW4g dGhlICJpbnRlcnJ1cHQtcGFyZW50Ig0KcGhhbmRsZSBnZXRzIHRyYW5zbGF0ZWQgYnkgZndfZGV2 bGluayBpbnRvIGEgZGV2aWNlIGxpbmsgcmVsYXRpb25zaGlwLA0KdGhhdCByZWxhdGlvbnNoaXAg aXMgYmV0d2VlbiB0aGUgaW50ZXJuYWwgUEhZIChjb25zdW1lcikgYW5kIG5vbmUgb3RoZXINCnRo YW4gdGhlIHN3aXRjaCBkZXZpY2UgaXRzZWxmIChzdXBwbGllcikuDQpTbyB0aGUgUEhZIGRyaXZl ciB3aWxsIGJlIGJsb2NrZWQgd2l0aCAtRVBST0JFX0RFRkVSIGZyb20gcHJvYmluZywNCmJlY2F1 c2UgaXRzIHN1cHBsaWVyIGhhcyBub3QgZmluaXNoZWQgcHJvYmluZyAob2YgY291cnNlIGl0IGRp ZG4ndCwNCnRoYXQncyB3aGF0IGl0J3MgZG9pbmcgY3VycmVudGx5KS4gQW5kIHRoZSBzdXBwbGll ciAoc3dpdGNoKSBhdHRlbXB0cyB0bw0KY29ubmVjdCB0byB0aGUgUEhZIGZyb20gaXRzIHByb2Jl IHBhdGguIFNpbmNlIGJpbmRpbmcgdGhlIHNwZWNpZmljIFBIWQ0KZHJpdmVyICJmYWlsZWQiICgt RVBST0JFX0RFRkVSIGlzIHN0aWxsIGEgZmFpbHVyZSksIGFuZCB0aGUgcGh5X2Nvbm5lY3QoKQ0K Y2FsbCB3YW50cyB0aGluZ3MgdG8gaGFwcGVuICJub3ciLCB0aGUgUEhZIGxpYnJhcnkgc2F5cyAi YWxsIHJpZ2h0IGFsbA0KcmlnaHQsIGhlcmUncyB0aGUgZ2VuZXJpYyBQSFkgZHJpdmVyLCBqdXN0 IHNodXQgdXAiLiBUaGUgZ2VuZXJpYyBkcml2ZXINCm1heSBvciBtYXkgbm90IGJlIHN1ZmZpY2ll bnQgdG8gYnJpbmcgdGhlc2UgaW50ZXJuYWwgUEhZcyB1cCB0byBhDQpzYXRpc2ZhY3RvcnkgZGVn cmVlIG9mIGluaXRpYWxpemF0aW9uLCBoZW5jZSBzb21lIG9mIHRoZSBhbmdyeSByZXBsaWVzDQpv biB0aGlzIHRvcGljLiBOb3QgdG8gbWVudGlvbiwgbm8gc3BlY2lmaWMgUEhZIGRyaXZlciA9PiBu byBpbnRlcnJ1cHRzLg0KDQpJbiB0aGUgcmVhc29uYWJsZSBhbmQgdW5yZWFzb25hYmxlIGNhc2Vz LCB0aGUgbWVjaGFuaXNtIGJlaGluZA0KZndfZGV2bGluayBpcyB0aGUgc2FtZS4gWWV0IGluIG9u ZSBjYXNlIGl0IGlzIGhlbHBmdWwgYW5kIGluIHRoZSBvdGhlcg0KaXQgaXMgbm90LiBUaGUgZ29h bCBpcyB0byBvbmUgZGF5IG1ha2UgZndfZGV2bGluayBlbmFibGVkIGJ5IGRlZmF1bHQgYW5kDQpi ZSBhd2FyZSBvZiBtYW55IHN1cHBsaWVyL2NvbnN1bWVyIHJlbGF0aW9uc2hpcHMuDQoNCkkgaGF2 ZSBicm91Z2h0IHVwIHRoaXMgbm90IHNvIGRpc3RhbnQgc3RvcnkgYmVjYXVzZSBJIGJlbGlldmUg aXQgdG8gYmUNCmluZGlyZWN0bHkgcmVsZXZhbnQgdG8gdGhlIGRlc2lnbiB5b3UgY2hvb3NlIGZv ciB0aGUgdnNjNzUxMi1zcGkgZHJpdmVyLg0KSWYgeW91IGtlZXAgbW92aW5nIGZvcndhcmQgd2l0 aCB0aGUgdHJhZGl0aW9uYWwgaGllcmFyY2hpY2FsIG1vZGVsIHdoZXJlDQp0aGUgRFNBIGRyaXZl ciBpcyB0aGUgc3BpX2RldmljZSBkcml2ZXIsIGFuZCB0aGlzIHJlZ2lzdGVycyB3aGF0ZXZlcg0K Y29tcG9uZW50IG9mIHRoZSBzd2l0Y2ggU29DIGlzIG5lZWRlZCAoTURJTyBidXMsIGlycWNoaXAs IEdQSU8sIHBpbmN0cmwNCmFuZCB3aGF0bm90KSwgeW91IHdpbGwgZXZlbnR1YWxseSBydW4gaW50 byBBbHZpbidzIHByb2JsZW0uIEFuZCBkb24ndA0KcmVseSBvbiB0aGUgRFNBIGNvcmUsIG9yIGZ3 X2RldmxpbmssICJkb2luZyBzb21ldGhpbmciLCBiZWNhdXNlIHRoZXJlDQppc24ndCBzb21ldGhp bmcgdG8gYmUgZG9uZSB0aGVyZS4NCkluc3RlYWQsIEkgYmVsaWV2ZSB0aGF0IHdoYXQgd291bGQg cHJvZHVjZSBtb3JlIGZ1dHVyZS1wcm9vZiByZXN1bHRzIGlzDQp0aGUgbWZkIG1vZGVsLCB3aGVy ZSB0aGUgc3dpdGNoLCBtZGlvYnVzLCBpcnFjaGlwLCBncGlvLCBwaW5jdHJsIGRyaXZlcnMNCmV0 YyBhcmUgYWxsIGZsYXQgYW5kIGxvY2F0ZWQgYmVsb3cgdGhlIGJhcmUgc3BpX2RldmljZSBkcml2 ZXIgZm9yIHRoZQ0Kc3dpdGNoIFNvQy4gVGhpcyBtb2RlbCB3b3VsZCBpbmhlcmVudGx5IGF2b2lk IHRoZSBmd19kZXZsaW5rIGxpbWl0YXRpb25zLA0Kd2hpY2ggZm9yIGdvb2Qgb3IgYmFkIGFyZW4n dCBnb2luZyBhd2F5LCBzaW5jZSB0aGV5J3JlICJmZWF0dXJlcyBub3QgYnVncyIuDQpJdCBhbHNv IGFsbG93cyBmb3IgdGhlIHZhcmlvdXMgY29tcG9uZW50cyBvZiB0aGUgc3dpdGNoIFNvQyB0byBw cm9iZQ0KaW5kZXBlbmRlbnRseSwgYXMgZmFyIGFzIEkgY2FuIHRlbGwuIE15IGJlbGllZiBpcyB0 aGF0IG1hbnkgb3RoZXIgRFNBDQpkcml2ZXJzIHdvdWxkIGJlbmVmaXQgZnJvbSBhIHJld3JpdGUg dXNpbmcgdGhlIG1mZCBtb2RlbC4gVGhlIGNhdGNoIGlzDQp0aGF0IE9GIGJpbmRpbmdzIHdvdWxk IG5lZWQgdG8gY2hhbmdlLCB3aGljaCBpcyBraW5kIG9mIHRoZSBwb2ludCwgYnV0DQpzdGlsbCB1 bmRlc2lyYWJsZSB0byBzb21lLiBXZSB3YW50IGEgcGhhbmRsZSBsaWtlICJpbnRlcnJ1cHQtcGFy ZW50IiwgaWYNCmFueSwgdG8gcG9pbnQgbGF0ZXJhbGx5IGJldHdlZW4gc3dpdGNoIFNvQyBjb21w b25lbnRzLCBhbmQgbm90DQp2ZXJ0aWNhbGx5LCB0aGVyZWZvcmUgYXZvaWRpbmcgcHJvYmluZyBs b29wcy4NCg0KU28gZG9uJ3QgZmVlbCBiYWQgZm9yIGRvaW5nIHNvbWV0aGluZyBkaWZmZXJlbnQs IGNvbnNpZGVyIHlvdXJzZWxmIGENCnRyYWlsYmxhemVyIDopDQoNCj4gDQo+IFNpZ25lZC1vZmYt Ynk6IENvbGluIEZvc3RlciA8Y29saW4uZm9zdGVyQGluLWFkdmFudGFnZS5jb20+DQo+IC0tLQ0K PiAgZHJpdmVycy9tZmQvbWZkLWNvcmUuYyAgICAgICAgICAgfCA2ICsrKysrKw0KPiAgZHJpdmVy cy9waW5jdHJsL3BpbmN0cmwtb2NlbG90LmMgfCA3ICsrKysrKy0NCj4gIGluY2x1ZGUvbGludXgv bWZkL2NvcmUuaCAgICAgICAgIHwgMiArKw0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvbWZk LWNvcmUuYyBiL2RyaXZlcnMvbWZkL21mZC1jb3JlLmMNCj4gaW5kZXggNjg0YTAxMWE2Mzk2Li4y YmE2YTY5MjQ5OWIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbWZkL21mZC1jb3JlLmMNCj4gKysr IGIvZHJpdmVycy9tZmQvbWZkLWNvcmUuYw0KPiBAQCAtMzMsNiArMzMsMTIgQEAgc3RhdGljIHN0 cnVjdCBkZXZpY2VfdHlwZSBtZmRfZGV2X3R5cGUgPSB7DQo+ICAJLm5hbWUJPSAibWZkX2Rldmlj ZSIsDQo+ICB9Ow0KPiAgDQo+ICtpbnQgZGV2aWNlX2lzX21mZChzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQ0KPiArew0KPiArCXJldHVybiAoIXN0cmNtcChwZGV2LT5kZXYudHlwZS0+bmFt ZSwgbWZkX2Rldl90eXBlLm5hbWUpKTsNCj4gK30NCj4gK0VYUE9SVF9TWU1CT0woZGV2aWNlX2lz X21mZCk7DQo+ICsNCj4gIGludCBtZmRfY2VsbF9lbmFibGUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikNCj4gIHsNCj4gIAljb25zdCBzdHJ1Y3QgbWZkX2NlbGwgKmNlbGwgPSBtZmRfZ2V0 X2NlbGwocGRldik7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1vY2Vs b3QuYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLW9jZWxvdC5jDQo+IGluZGV4IDBhMzZlYzg3 NzVhMy4uNzU4ZmJjMjI1MjQ0IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3Ry bC1vY2Vsb3QuYw0KPiArKysgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1vY2Vsb3QuYw0KPiBA QCAtMTAsNiArMTAsNyBAQA0KPiAgI2luY2x1ZGUgPGxpbnV4L2dwaW8vZHJpdmVyLmg+DQo+ICAj aW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+DQo+ICAjaW5jbHVkZSA8bGludXgvaW8uaD4NCj4g KyNpbmNsdWRlIDxsaW51eC9tZmQvY29yZS5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L29mX2Rldmlj ZS5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L29m X3BsYXRmb3JtLmg+DQo+IEBAIC0xMzY4LDcgKzEzNjksMTEgQEAgc3RhdGljIGludCBvY2Vsb3Rf cGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiAgDQo+ICAJcmVn bWFwX2NvbmZpZy5tYXhfcmVnaXN0ZXIgPSBPQ0VMT1RfR1BJT19TRF9NQVAgKiBpbmZvLT5zdHJp ZGUgKyAxNSAqIDQ7DQo+ICANCj4gLQlpbmZvLT5tYXAgPSBkZXZtX3JlZ21hcF9pbml0X21taW8o ZGV2LCBiYXNlLCAmcmVnbWFwX2NvbmZpZyk7DQo+ICsJaWYgKGRldmljZV9pc19tZmQocGRldikp DQo+ICsJCWluZm8tPm1hcCA9IGRldl9nZXRfcmVnbWFwKGRldi0+cGFyZW50LCAiR0NCIik7DQo+ ICsJZWxzZQ0KPiArCQlpbmZvLT5tYXAgPSBkZXZtX3JlZ21hcF9pbml0X21taW8oZGV2LCBiYXNl LCAmcmVnbWFwX2NvbmZpZyk7DQo+ICsNCj4gIAlpZiAoSVNfRVJSKGluZm8tPm1hcCkpIHsNCj4g IAkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gY3JlYXRlIHJlZ21hcFxuIik7DQo+ICAJCXJldHVy biBQVFJfRVJSKGluZm8tPm1hcCk7DQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21mZC9j b3JlLmggYi9pbmNsdWRlL2xpbnV4L21mZC9jb3JlLmgNCj4gaW5kZXggMGJjN2NiYTc5OGEzLi45 OTgwYmNjODQ1NmQgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvbGludXgvbWZkL2NvcmUuaA0KPiAr KysgYi9pbmNsdWRlL2xpbnV4L21mZC9jb3JlLmgNCj4gQEAgLTEyMyw2ICsxMjMsOCBAQCBzdHJ1 Y3QgbWZkX2NlbGwgew0KPiAgCWludAkJCW51bV9wYXJlbnRfc3VwcGxpZXM7DQo+ICB9Ow0KPiAg DQo+ICtpbnQgZGV2aWNlX2lzX21mZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsNCj4g Kw0KPiAgLyoNCj4gICAqIENvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgY2xpZW50cyB1c2luZyBz aGFyZWQgY2VsbHMuICBSZWZjb3VudGluZw0KPiAgICogaGFwcGVucyBhdXRvbWF0aWNhbGx5LCB3 aXRoIHRoZSBjZWxsJ3MgZW5hYmxlL2Rpc2FibGUgY2FsbGJhY2tzDQo+IC0tIA0KPiAyLjI1LjEN Cj4=