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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F11A7D58E74 for ; Mon, 2 Mar 2026 07:24:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version: Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Be+naSjN8lbfHwYZtwv1aN3UGDcUtM3uZx+fmz+VMgc=; b=XMislWLBjAEvqZGpIJY3/UL5xA Ju2Pesim6AXoWfUJJObfabbYUQerKwzMQsfmC7XDiCnewlNculnnq7Xwf1uuQ5TXfnd5W4KM7QmxR QKA54PxMbXVUdnQELKinl1ZPR9rKeEL8SY3/cTUxc0rvYKsXePCflM20jRY9hYF616v3Lk/Oigc7d Ym0Dlx070mRoE00XB65KUYJxkI3gHV8ov7shzK0e+rVF+HMu1I8YYAGo77eN1jBU9+VVrYvgbTXKC sFmqV+4+IjsOxFoSjIdGB1j4I4riBGvFBgqky7LrMNpELcE13TcA4Br4R4zjcikqRDR3qDHiYBYfo t1soXkXQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vwxdu-0000000CPJr-2mIy; Mon, 02 Mar 2026 07:24:38 +0000 Received: from mail-northcentralusazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c105::1] helo=CH1PR05CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vwxds-0000000CPJE-11mQ for linux-arm-kernel@lists.infradead.org; Mon, 02 Mar 2026 07:24:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=o7sEyQztHUShrjSeJPxINRbeXrG+7q0wuuYk3GwjyIZJDWlhQTweulM/fw4MVbJ5sjeUqenI0zTnBxkyQRW1GKnaoCPNzq/61d8CBeN1EdcOA6IaRtL1rbmI9MBFTHpvTMyZBS2vplE4MeZlXnfanYQlr1YbH3NGe8Q3llS4N9YkDJnTxZj8/Jbj6yI5sypSqN+r47X4pDxdCh9rHe8kVkGG1cbD2AGvLCbuzPZbLYRLldDIGHIezmTagMSkI02CjafnJh2fXsIROYwPCJNgTNgR5/6IXmtWSaLg10cgfMXL+JRKYO/Lndbh6EK7A2Kev2E4lFgAzIyKGOeoDRZiBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=Be+naSjN8lbfHwYZtwv1aN3UGDcUtM3uZx+fmz+VMgc=; b=XKDzD3HHrR9YMWtJBaAaW+cetS/M1I1GEMmzaZDs9tfEUxKBrcYYAF++yYpkknFKNhaFrxfexjFKLr/5NnMl+I1DtjEi2ucSdRiBvwmJB1zMU0tWKdMDiJlWbTzMWkw/ZnHAZXjMHItqdczpcdUAujm5otCItC/MCewYlFVAzk5zVpkeHpppYplpjML9P7P6iOKhkQY9DS/GvJ7CT3Lfjky1HOa17oMBBnNSkDm1Kf8XOGTY/fcJsSUjSo0jx3baeEnFUVepBgapUlkEX3dTvteVRXWm8XtIvrcmuTMJCOrxugNHyTYNoosqugtgsCB9oPC7lR7J85XM369lQ1K8+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchip.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Be+naSjN8lbfHwYZtwv1aN3UGDcUtM3uZx+fmz+VMgc=; b=SWQ4wwLPhoLzqKP0DXVNMgqJYI/IauL6TAHU2l+yglBC+8oXP3WEDIplJbTtXFT3oeNcyZKNlb5beW2E8TwlJhMAR8pG+NA87C1cGTWuqwilIKSxnw5CCSprALSSrqgtXmLVfuzUdsTqNRipOkc34mVRxLYsyeUTdTkm8zDazQV17UYgv/uqZWPn1/ua9MmhBzZAH4x9Uj8Z2u/VaPnwDbpJLD9uFxc5YY4v9KFKBChu0++DMErUzVWMEWzCfaAwMhLwYj494buFaNWSjAr++Uqiwc3qGdBQDqdqS+Dbw8cix54wEuXlYYOW+BDAsf1KuOzMfgmAllINjO9dFaM0PQ== Received: from CH3PR11MB8187.namprd11.prod.outlook.com (2603:10b6:610:160::18) by IA1PR11MB7824.namprd11.prod.outlook.com (2603:10b6:208:3f9::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.20; Mon, 2 Mar 2026 07:24:31 +0000 Received: from CH3PR11MB8187.namprd11.prod.outlook.com ([fe80::ae7a:fa9:b654:1374]) by CH3PR11MB8187.namprd11.prod.outlook.com ([fe80::ae7a:fa9:b654:1374%4]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026 07:24:31 +0000 From: To: CC: , , , , , , , Subject: Re: [PATCH 2/3] watchdog: sama5d4_wdt: Refactor the driver Thread-Topic: [PATCH 2/3] watchdog: sama5d4_wdt: Refactor the driver Thread-Index: AQHcp7sbM96bfAJWWEyFiR34qHgHP7WWMEUAgASrfAA= Date: Mon, 2 Mar 2026 07:24:30 +0000 Message-ID: <12a176ca-da67-4e26-b37e-5a03defb4c7e@microchip.com> References: <20260227073116.30447-1-balakrishnan.s@microchip.com> <20260227073116.30447-3-balakrishnan.s@microchip.com> <2026022708054233bc5648@mail.local> In-Reply-To: <2026022708054233bc5648@mail.local> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR11MB8187:EE_|IA1PR11MB7824:EE_ x-ms-office365-filtering-correlation-id: 8c536345-eed1-4ce9-f388-08de782cbef5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700021; x-microsoft-antispam-message-info: tNCIydYdorkBhuFJxG2ITDx5QudxtDfCl4rIvuDVO1hsBoIFj/nM1dhdoa+2EHTSiG8fSqiKJcWj/MTTkjtxZHZ/Y6yVqYK3GA69Rk2ukXXylvvsfVy/otqbhtC9x/OpOs0q2+8zFfBwMkBUfevPF2l+yMBOylofDQ78jBHHzKX8twKtP7VdemQPuyW6AqRHgTaTprlC7yZRzgN+1Aj5s8rWAgrhyXVl2X4CgzSD5KyIWucm4JQEzsla8M4EqcZavZ4Yntk51tUEBR22zB3UngSl7MrPPXi6eSX4757N4M9Ngt+SKZkXVy3A5/qT+XjhnefUjklPlQUFZEhvR/rCUTbFU6seCy6br7P6BmHzd/OqavoBWVfPrCEZaz9WW7pdujCZPWvUUxo2EhG5yulV8amDqdyYKUvxP+dsNQOPSOgXSoNND0rFzFExXHIcLQJi2B/xlOx9wgvV+iPX+lojY6KqktcyJOv0DJpI7NhZXRhOGFgLTjY+iYlHAnBoxenORZBuPtkd22tbGekz4h3xMGe+jPGR6IW6/q97PDsSbEgmL4R2IESkjW5byGAgO1bpxmc3Vi2AdYSACy9VZo3NPMCSOOyWeLCRipolkWxmMqpNO1B5kupNiulj7BJbFYKJyxkkZyacx4v1Bz9Fr0CZseDtFkCjin4jQySaaAvRic4Io3BpmYagvYmS1nxDyPxTlUfgynAasDRwY3I7ogMh+508pM8deM8+dw5Q13M9cLg= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR11MB8187.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R043MEc5R0JuWTExMEVCOGg0M0RhN1RXTjlUcEs1U3dibVEwM0tGQ3AwckFo?= =?utf-8?B?aFlxUEZPSGF6Wjh2OVAyZENOZmRPVUxROWFRSVVaeWE5MXBFZFkxanM1L1BK?= =?utf-8?B?UGwzQjM4Q0ltZ25HNlhOY2p3alA1L3J2aStxVnZTNnV0RzE1VGxpL3hxNXdH?= =?utf-8?B?YnEvcCs4NHVDaUppa1BxMXAyMldqQWtJaThVTTI5NWxOWXhmaFJGRldOR3lk?= =?utf-8?B?dDNPNFdaTHJLdXNrWUpKVUIzSzhPMkdwOUd0R2FJcUdUT3gxYkpwbHRhRjdG?= =?utf-8?B?L01qSXNLRGw4b29HaXM1OXlUMDFRY0YwLzFOVGs3UDhEMWVIMkppdnNOWDJW?= =?utf-8?B?Yzh1eWw1T0QvNkVpWkQxbmNaZ3NLZmFrc0xIc1FSODVDVmxsRXZySjc2UXBr?= =?utf-8?B?V2JLbVppRWlUcUl3Z1ZqeXIrVXFzMWd3T3RNOElpNkJHMjduRjRYb3ZTaXR5?= =?utf-8?B?K01sWERlMWM5d01TRkYyVGJRb1cvb05EQldHSW92RFlLd0YrWm5WVFZqUFRB?= =?utf-8?B?OE9WM09icHJTaVJ0bmVYbXkwTHJndVNwdGhsdWpNQWcwSnkwdTB2am5HZTg5?= =?utf-8?B?Si9pdk9aVnFtUFoyRDFlYU9QbFJ6M2F2VmlXdUlpSFludm5ObVdHaUNmb2NK?= =?utf-8?B?aSthZ2I2aUg5UHFKQ0pBaVRWdm81YkYvMHdSQUlma0s3ZjJUL2p0ZXpobDBj?= =?utf-8?B?YzZ3T0JyeEtadUxHSmM2bUlIZm1sZVRQeUUrVmxYUHMzcG5IVE1QdGVHWUFH?= =?utf-8?B?VUUxMFlMdmhnNTV3blNmVEZZOU9Za1pnWnpJMVRleC9sbFpseXdFdDdxRU5E?= =?utf-8?B?L0tBYzJQQk1jdUNYcTZ3di84YUtuRHNWZlU4VDVGQ0djOUN6aDZDZExPRHZP?= =?utf-8?B?UzI5ZCtvcnRBekRZRUVOanNmdUNWVWRSMytoUzl0V29uYXpjQzBYb1kyNUZ5?= =?utf-8?B?cVkyS0pBWWMwa3F0d2RtSDVrMVpqZW9JektqS2V3UGR3VkxnRUQzS1hWd0Nk?= =?utf-8?B?cklqcnFxeEJhQ1B1QXBvL1RPUE9NcUdOY0NtcVJjaXNaZWRzcXhDN3J5QkJN?= =?utf-8?B?TENkK1VhVWlzaVdGL0dJZElyeU8wM1FCSGZTNThENXNKNEpZL0hkVjMvWnp0?= =?utf-8?B?QVdYcU1ZZmtqOWU5RUVXQXJwNzliekR1ZUZYUGNrd01ERG1EbWlXV1V1UWhX?= =?utf-8?B?ZStjRi9iWjcwdmpOdTRwVG9WNVlQc21ZcHcxcHI4eFIxWnBsUDMxK081ZlFw?= =?utf-8?B?MW43ZFo1ZGZqb3RDM0xVTG96TnNqRjh5NDNqckE2a1lHTGsxb1YyUlJrVnl0?= =?utf-8?B?UllDdzhMT1NNMHNxM3RaZGdieWlMeUhmL2R6YzRjL050N2V0S1VWelJ5VjdB?= =?utf-8?B?ZmxKVVVmY1E1QXhXM0dJL29zb2Q0MERMSjJ5b0t3S1hTV0VCZWJmSnYxVTVC?= =?utf-8?B?WkVoZjFRSDQzTE10TGxTMEpMcEpCSXdPRWNGRHgzRHhRbCtVMmxYbm1BRXNa?= =?utf-8?B?MmNDNUdQbUh4RGZyU2xoSy9JMjhsOFVCSDZ6R3J1bC8zMzlia0V0ZHJvbTUv?= =?utf-8?B?WFNkSGZOc2dzSThrNFViOTJhY1VTM0hjeEdqV0VIR1ZyRU5wb3hHNThhZUhS?= =?utf-8?B?bWVoMjdWOXM4Q0JuWEhhTVgrOE4xdDFYMmh3K2EwZWhST2lvYkkxbS8wWDVi?= =?utf-8?B?UnBtM1ovNjJxQTI0bjEyY0d4QXRsV0tTMUdXM1NOZEFibWdRZXVURFVsTmxE?= =?utf-8?B?U0hBSFl4RnhOK1pkM0dnTC8wUTNMV0ljc2FZRzBYSGpmQVFGdXNYYVBvUGRK?= =?utf-8?B?VTdqdStlWks1MW14bUV1TWpNYVZPWWlsSHBrdnJvTHY1ZFZvTnJGZTZITUc5?= =?utf-8?B?YjlLeDBDMXh4UHhyZE52VW9MZHV0aEpadkhQY0drcktnaTA3OXN4V1puUXhJ?= =?utf-8?B?S2VKVXlzRjVIOUZ1RDllQVhEUEJBR0pLRURIYnNhUjlQN282cmNCTVQ0amlV?= =?utf-8?B?a2VjZzMwMlZZQkxyRTM5Z0ZsK1FpUFd6dUhSOUdtWnNEVi9SV3BjZkdoSFZ6?= =?utf-8?B?cEJ3NWt6dnVYUlFmR1BqRjZZRTB3QU1qU2FhRUQ5eHJsMkJtamRGVVFUVTNr?= =?utf-8?B?V3JnOXVaZ0hmdUkrb0ZOa09ET1pVdjNNK2dKb2dkcVAreFBVcjBEWmFmSElt?= =?utf-8?B?WkNPYXVQMVNrcURWRUF3ZS91eWJOQUwvRUhWc0VvdGt1U1JiL3VxQlAyNWVh?= =?utf-8?B?SU5YK0RqYm1kdnErMU1Rd1ZvSURLeC9pd1ZrNmdYUjJqS1BKRnFqSk82RzU2?= =?utf-8?B?KzNoQlR2SnlCanlsZDg4VmxzTjdsOUhzR1pvSFQveG5CNzFkdzE2Zz09?= Content-Type: text/plain; charset="utf-8" Content-ID: <1F5100ED54BC114599051767B0B7F653@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: microchip.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH3PR11MB8187.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c536345-eed1-4ce9-f388-08de782cbef5 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Mar 2026 07:24:30.9888 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5MFJYHBbck3N3TvCQeNv5RLGKoVQYRvNqEnQDFhh3yHKnRtan/qW9XMyAYd/ZIVTAaeJiQ5w1sz8XyypM96uVypjxKUk+DUB00806zU3a0c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB7824 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260301_232436_355707_F2C0B3A1 X-CRM114-Status: GOOD ( 21.68 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjcvMDIvMjYgMTozNSBwbSwgQWxleGFuZHJlIEJlbGxvbmkgd3JvdGU6DQo+IEVYVEVSTkFM IEVNQUlMOiBEbyBub3QgY2xpY2sgbGlua3Mgb3Igb3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91 IGtub3cgdGhlIGNvbnRlbnQgaXMgc2FmZQ0KPiANCj4gT24gMjcvMDIvMjAyNiAxMzowMToxNSsw NTMwLCBCYWxha3Jpc2huYW4gU2FtYmF0aCB3cm90ZToNCj4+IEZyb206IEFuZHJlaSBTaW1pb24g PGFuZHJlaS5zaW1pb25AbWljcm9jaGlwLmNvbT4NCj4+DQo+PiBUaGlzIHBhdGNoIGNsZWFucyB1 cCBhbmQgcmVmYWN0b3JzIHRoZSBBdG1lbCBTQU1BNUQ0IFdhdGNoZG9nIERyaXZlcg0KPj4gdG8g YmUgbW9yZSByZWFkYWJsZSBhbmQgdG8gZml4dXAgUmVzZXQgaXNzdWUgaW50cm9kdWNlZA0KPj4g YnkgY29tbWl0IDI2NmRhNTNjMzVmYyAoIndhdGNoZG9nOiBzYW1hNWQ0OiByZWFkb3V0IGluaXRp YWwgc3RhdGUiKS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZWkgU2ltaW9uIDxhbmRyZWku c2ltaW9uQG1pY3JvY2hpcC5jb20+DQo+PiBbVXNlIHBlci1kZXZpY2UgV0RESVMgbWFzayBhbmQg c3luYyBNUiBzaGFkb3cgV0RESVMgc3RhdGVdDQo+PiBTaWduZWQtb2ZmLWJ5OiBCYWxha3Jpc2hu YW4gU2FtYmF0aCA8YmFsYWtyaXNobmFuLnNAbWljcm9jaGlwLmNvbT4NCj4+IC0tLQ0KPj4gICBk cml2ZXJzL3dhdGNoZG9nL3NhbWE1ZDRfd2R0LmMgfCAxNTYgKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tDQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCA3OSBk ZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9zYW1hNWQ0 X3dkdC5jIGIvZHJpdmVycy93YXRjaGRvZy9zYW1hNWQ0X3dkdC5jDQo+PiBpbmRleCAxM2U3Mjkx ODMzOGEuLmI0MjJkMGJkNzVmOSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvd2F0Y2hkb2cvc2Ft YTVkNF93ZHQuYw0KPj4gKysrIGIvZHJpdmVycy93YXRjaGRvZy9zYW1hNWQ0X3dkdC5jDQo+PiBA QCAtMjQsNDQgKzI0LDU4IEBADQo+PiAgICNkZWZpbmUgV0RUX0RFRkFVTFRfVElNRU9VVCAgTUFY X1dEVF9USU1FT1VUDQo+Pg0KPj4gICAjZGVmaW5lIFdEVF9TRUMyVElDS1MocykgICAgICgocykg PyAoKChzKSA8PCA4KSAtIDEpIDogMCkNCj4+DQo+PiAgIHN0cnVjdCBzYW1hNWQ0X3dkdCB7DQo+ PiAgICAgICAgc3RydWN0IHdhdGNoZG9nX2RldmljZSAgd2RkOw0KPj4gICAgICAgIHZvaWQgX19p b21lbSAgICAgICAgICAgICpyZWdfYmFzZTsNCj4+ICAgICAgICB1MzIgICAgICAgICAgICAgICAg ICAgICBtcjsNCj4+ICAgICAgICB1MzIgICAgICAgICAgICAgICAgICAgICBpcjsNCj4+ICsgICAg IHUzMiAgICAgICAgICAgICAgICAgICAgIHdkZGlzX21hc2s7DQo+IA0KPiBJbnRyb2R1Y2luZyB0 aGlzIHNob3VsZCBzaW1wbHkgcmVtb3ZlIHRoZSBuZWVkIGZvciAzLzMsIHVzZSB0aGlzIGluc3Rl YWQNCj4gb2YgQVQ5MV9XRFRfV0RESVMgZXZlcnl3aGVyZS4NCg0KT2theSwgSSdsbCBrZWVwIHRo aXMuDQoNCj4gDQo+PiAgICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAgICAgbGFzdF9waW5nOw0K Pj4gICAgICAgIGJvb2wgICAgICAgICAgICAgICAgICAgIG5lZWRfaXJxOw0KPj4gLSAgICAgYm9v bCAgICAgICAgICAgICAgICAgICAgc2FtOXg2MF9zdXBwb3J0Ow0KPj4gKyAgICAgYm9vbCAgICAg ICAgICAgICAgICAgICAgaXNfbW9kZXJuX2NoaXA7DQo+IA0KPiBUaGUgcHJldmlvdXMgbmFtZSB3 YXMgYmV0dGVyLg0KDQpHb3QgaXQsIEknbGwgYWRkcmVzcyB0aGlzIGFzIGl0IHNlZW1zIG1lYW5p bmdmdWwgdG8gcmV0YWluIFNvYyBsZXZlbCANCmRldGFpbHMgdG9vLg0KPiANCj4+ICAgfTsNCj4+ DQo+PiArc3RhdGljIGlubGluZSBib29sIHdkdF9lbmFibGVkKHN0cnVjdCBzYW1hNWQ0X3dkdCAq d2R0LCB1MzIgbXIpDQo+PiArew0KPj4gKyAgICAgcmV0dXJuICEobXIgJiB3ZHQtPndkZGlzX21h c2spOw0KPj4gK30NCj4+ICsNCj4gDQo+IFRoaXMgaXMgdW5yZWxhdGVkIHRvIHRoZSBhY3R1YWwg Zml4LiBUaGlzIHBhdGNoIGRvZXMgdG8gbXVjaCBhbmQgaXMNCj4gZGlmZmljdWx0IHRvIHJldmll dyBhbmQgdG8gYmFja3BvcnQsIHBsZWFzZSBzZXBhcmF0ZSB0aGUgYWN0dWFsIGZpeA0KPiBhYm91 dCB3ZGRpcyBhbmQgdGhlIHJlc3QuDQoNCk15IGJhZCwgSSdsbCByZWZhY3RvciB0aGUgZml4IGFu ZCByZWZhY3RvciBhcyBzZXBhcmF0ZSBjaHVua3MgaW4gdjIuDQoNCj4gDQo+IA0KPj4gICBzdGF0 aWMgaW50IHdkdF90aW1lb3V0Ow0KPj4gICBzdGF0aWMgYm9vbCBub3dheW91dCA9IFdBVENIRE9H X05PV0FZT1VUOw0KPj4NCj4+ICAgbW9kdWxlX3BhcmFtKHdkdF90aW1lb3V0LCBpbnQsIDApOw0K Pj4gICBNT0RVTEVfUEFSTV9ERVNDKHdkdF90aW1lb3V0LA0KPj4gICAgICAgICJXYXRjaGRvZyB0 aW1lb3V0IGluIHNlY29uZHMuIChkZWZhdWx0ID0gIg0KPj4gICAgICAgIF9fTU9EVUxFX1NUUklO RyhXRFRfREVGQVVMVF9USU1FT1VUKSAiKSIpOw0KPj4NCj4+ICAgbW9kdWxlX3BhcmFtKG5vd2F5 b3V0LCBib29sLCAwKTsNCj4+ICAgTU9EVUxFX1BBUk1fREVTQyhub3dheW91dCwNCj4+ICAgICAg ICAiV2F0Y2hkb2cgY2Fubm90IGJlIHN0b3BwZWQgb25jZSBzdGFydGVkIChkZWZhdWx0PSINCj4+ ICAgICAgICBfX01PRFVMRV9TVFJJTkcoV0FUQ0hET0dfTk9XQVlPVVQpICIpIik7DQo+Pg0KPj4g LSNkZWZpbmUgd2R0X2VuYWJsZWQgKCEod2R0LT5tciAmIEFUOTFfV0RUX1dERElTKSkNCj4+DQo+ PiAgICNkZWZpbmUgd2R0X3JlYWQod2R0LCBmaWVsZCkgXA0KPj4gICAgICAgIHJlYWRsX3JlbGF4 ZWQoKHdkdCktPnJlZ19iYXNlICsgKGZpZWxkKSkNCj4+DQo+PiAgIC8qIDQgc2xvdyBjbG9jayBw ZXJpb2RzIGlzIDQvMzI3NjggPSAxMjIuMDfCtXMqLw0KPj4gICAjZGVmaW5lIFdEVF9ERUxBWSAg ICB1c2Vjc190b19qaWZmaWVzKDEyMykNCj4+DQo+PiArc3RhdGljIGJvb2wgY2hlY2tfaXNfbW9k ZXJuX2NoaXBfYnlfY29tcGF0aWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+PiArew0KPj4gKyAg ICAgaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKGRldi0+b2Zfbm9kZSwgIm1pY3JvY2hpcCxz YW05eDYwLXdkdCIpIHx8DQo+PiArICAgICAgICAgb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoZGV2 LT5vZl9ub2RlLCAibWljcm9jaGlwLHNhbWE3ZzUtd2R0IikpDQo+PiArICAgICAgICAgICAgIHJl dHVybiB0cnVlOw0KPj4gKw0KPj4gKyAgICAgcmV0dXJuIGZhbHNlOw0KPj4gK30NCj4+ICsNCj4+ ICAgc3RhdGljIHZvaWQgd2R0X3dyaXRlKHN0cnVjdCBzYW1hNWQ0X3dkdCAqd2R0LCB1MzIgZmll bGQsIHUzMiB2YWwpDQo+PiAgIHsNCj4+ICAgICAgICAvKg0KPj4gICAgICAgICAqIFdEVF9DUiBh bmQgV0RUX01SIG11c3Qgbm90IGJlIG1vZGlmaWVkIHdpdGhpbiB0aHJlZSBzbG93IGNsb2NrDQo+ PiAgICAgICAgICogcGVyaW9kcyBmb2xsb3dpbmcgYSByZXN0YXJ0IG9mIHRoZSB3YXRjaGRvZyBw ZXJmb3JtZWQgYnkgYSB3cml0ZQ0KPj4gICAgICAgICAqIGFjY2VzcyBpbiBXRFRfQ1IuDQo+PiAg ICAgICAgICovDQo+PiAgICAgICAgd2hpbGUgKHRpbWVfYmVmb3JlKGppZmZpZXMsIHdkdC0+bGFz dF9waW5nICsgV0RUX0RFTEFZKSkNCj4+ICAgICAgICAgICAgICAgIHVzbGVlcF9yYW5nZSgzMCwg MTI1KTsNCj4+IEBAIC03MSwzMjIgKzg1LDMwNiBAQCBzdGF0aWMgdm9pZCB3ZHRfd3JpdGUoc3Ry dWN0IHNhbWE1ZDRfd2R0ICp3ZHQsIHUzMiBmaWVsZCwgdTMyIHZhbCkNCj4+DQo+PiAgIHN0YXRp YyB2b2lkIHdkdF93cml0ZV9ub3NsZWVwKHN0cnVjdCBzYW1hNWQ0X3dkdCAqd2R0LCB1MzIgZmll bGQsIHUzMiB2YWwpDQo+PiAgIHsNCj4+ICAgICAgICBpZiAodGltZV9iZWZvcmUoamlmZmllcywg d2R0LT5sYXN0X3BpbmcgKyBXRFRfREVMQVkpKQ0KPj4gICAgICAgICAgICAgICAgdWRlbGF5KDEy Myk7DQo+PiAgICAgICAgd3JpdGVsX3JlbGF4ZWQodmFsLCB3ZHQtPnJlZ19iYXNlICsgZmllbGQp Ow0KPj4gICAgICAgIHdkdC0+bGFzdF9waW5nID0gamlmZmllczsNCj4+ICAgfQ0KPj4NCj4+IC1z dGF0aWMgaW50IHNhbWE1ZDRfd2R0X3N0YXJ0KHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCkN Cj4+ICtzdGF0aWMgaW50IHdkdF9zdGFydChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQpDQo+ PiAgIHsNCj4+ICAgICAgICBzdHJ1Y3Qgc2FtYTVkNF93ZHQgKndkdCA9IHdhdGNoZG9nX2dldF9k cnZkYXRhKHdkZCk7DQo+Pg0KPj4gLSAgICAgaWYgKHdkdC0+c2FtOXg2MF9zdXBwb3J0KSB7DQo+ PiAtICAgICAgICAgICAgIHdyaXRlbF9yZWxheGVkKHdkdC0+aXIsIHdkdC0+cmVnX2Jhc2UgKyBB VDkxX1NBTTlYNjBfSUVSKTsNCj4+IC0gICAgICAgICAgICAgd2R0LT5tciAmPSB+QVQ5MV9TQU05 WDYwX1dERElTOw0KPj4gLSAgICAgfSBlbHNlIHsNCj4+IC0gICAgICAgICAgICAgd2R0LT5tciAm PSB+QVQ5MV9XRFRfV0RESVM7DQo+PiAtICAgICB9DQo+PiArICAgICBpZiAod2R0LT5pc19tb2Rl cm5fY2hpcCkNCj4+ICsgICAgICAgICAgICAgd3JpdGVsX3JlbGF4ZWQod2R0LT5pciwgd2R0LT5y ZWdfYmFzZSArIEFUOTFfV0RUX0lFUik7DQo+PiArICAgICB3ZHQtPm1yICY9IH53ZHQtPndkZGlz X21hc2s7DQo+PiAgICAgICAgd2R0X3dyaXRlKHdkdCwgQVQ5MV9XRFRfTVIsIHdkdC0+bXIpOw0K Pj4NCj4+ICAgICAgICByZXR1cm4gMDsNCj4+ICAgfQ0KPj4NCj4+IC1zdGF0aWMgaW50IHNhbWE1 ZDRfd2R0X3N0b3Aoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RkKQ0KPj4gK3N0YXRpYyBpbnQg d2R0X3N0b3Aoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RkKQ0KPj4gICB7DQo+PiAgICAgICAg c3RydWN0IHNhbWE1ZDRfd2R0ICp3ZHQgPSB3YXRjaGRvZ19nZXRfZHJ2ZGF0YSh3ZGQpOw0KPj4N Cj4+IC0gICAgIGlmICh3ZHQtPnNhbTl4NjBfc3VwcG9ydCkgew0KPj4gLSAgICAgICAgICAgICB3 cml0ZWxfcmVsYXhlZCh3ZHQtPmlyLCB3ZHQtPnJlZ19iYXNlICsgQVQ5MV9TQU05WDYwX0lEUik7 DQo+PiAtICAgICAgICAgICAgIHdkdC0+bXIgfD0gQVQ5MV9TQU05WDYwX1dERElTOw0KPj4gLSAg ICAgfSBlbHNlIHsNCj4+IC0gICAgICAgICAgICAgd2R0LT5tciB8PSBBVDkxX1dEVF9XRERJUzsN Cj4+IC0gICAgIH0NCj4+ICsgICAgIGlmICh3ZHQtPmlzX21vZGVybl9jaGlwKQ0KPj4gKyAgICAg ICAgICAgICB3cml0ZWxfcmVsYXhlZCh3ZHQtPmlyLCB3ZHQtPnJlZ19iYXNlICsgQVQ5MV9XRFRf SURSKTsNCj4+ICsgICAgIHdkdC0+bXIgfD0gd2R0LT53ZGRpc19tYXNrOw0KPj4gICAgICAgIHdk dF93cml0ZSh3ZHQsIEFUOTFfV0RUX01SLCB3ZHQtPm1yKTsNCj4+DQo+PiAgICAgICAgcmV0dXJu IDA7DQo+PiAgIH0NCj4+DQo+PiAtc3RhdGljIGludCBzYW1hNWQ0X3dkdF9waW5nKHN0cnVjdCB3 YXRjaGRvZ19kZXZpY2UgKndkZCkNCj4+ICtzdGF0aWMgaW50IHdkdF9waW5nKHN0cnVjdCB3YXRj aGRvZ19kZXZpY2UgKndkZCkNCj4+ICAgew0KPj4gICAgICAgIHN0cnVjdCBzYW1hNWQ0X3dkdCAq d2R0ID0gd2F0Y2hkb2dfZ2V0X2RydmRhdGEod2RkKTsNCj4+DQo+PiAgICAgICAgd2R0X3dyaXRl KHdkdCwgQVQ5MV9XRFRfQ1IsIEFUOTFfV0RUX0tFWSB8IEFUOTFfV0RUX1dEUlNUVCk7DQo+Pg0K Pj4gICAgICAgIHJldHVybiAwOw0KPj4gICB9DQo+Pg0KPj4gLXN0YXRpYyBpbnQgc2FtYTVkNF93 ZHRfc2V0X3RpbWVvdXQoc3RydWN0IHdhdGNoZG9nX2RldmljZSAqd2RkLA0KPj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB0aW1lb3V0KQ0KPj4gK3N0YXRpYyBp bnQgd2R0X3NldF90aW1lb3V0KHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCwNCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdGltZW91dCkNCj4+ICAgew0KPj4gICAg ICAgIHN0cnVjdCBzYW1hNWQ0X3dkdCAqd2R0ID0gd2F0Y2hkb2dfZ2V0X2RydmRhdGEod2RkKTsN Cj4+ICAgICAgICB1MzIgdmFsdWUgPSBXRFRfU0VDMlRJQ0tTKHRpbWVvdXQpOw0KPj4NCj4+IC0g ICAgIGlmICh3ZHQtPnNhbTl4NjBfc3VwcG9ydCkgew0KPj4gLSAgICAgICAgICAgICB3ZHRfd3Jp dGUod2R0LCBBVDkxX1NBTTlYNjBfV0xSLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgQVQ5 MV9TQU05WDYwX1NFVF9DT1VOVEVSKHZhbHVlKSk7DQo+PiArICAgICBpZiAod2R0LT5pc19tb2Rl cm5fY2hpcCkgew0KPj4gKyAgICAgICAgICAgICB3ZHRfd3JpdGUod2R0LCBBVDkxX1dEVF9XTFIs DQo+PiArICAgICAgICAgICAgICAgICAgICAgICBBVDkxX1dEVF9TRVRfQ09VTlRFUih2YWx1ZSkp Ow0KPj4NCj4+ICAgICAgICAgICAgICAgIHdkZC0+dGltZW91dCA9IHRpbWVvdXQ7DQo+PiAgICAg ICAgICAgICAgICByZXR1cm4gMDsNCj4+ICAgICAgICB9DQo+Pg0KPj4gICAgICAgIHdkdC0+bXIg Jj0gfkFUOTFfV0RUX1dEVjsNCj4+ICAgICAgICB3ZHQtPm1yIHw9IEFUOTFfV0RUX1NFVF9XRFYo dmFsdWUpOw0KPj4NCj4+ICAgICAgICAvKg0KPj4gICAgICAgICAqIFdERElTIGhhcyB0byBiZSAw IHdoZW4gdXBkYXRpbmcgV0REL1dEVi4gVGhlIGRhdGFzaGVldCBzdGF0ZXM6IFdoZW4NCj4+ICAg ICAgICAgKiBzZXR0aW5nIHRoZSBXRERJUyBiaXQsIGFuZCB3aGlsZSBpdCBpcyBzZXQsIHRoZSBm aWVsZHMgV0RWIGFuZCBXREQNCj4+ICAgICAgICAgKiBtdXN0IG5vdCBiZSBtb2RpZmllZC4NCj4+ ICAgICAgICAgKiBJZiB0aGUgd2F0Y2hkb2cgaXMgZW5hYmxlZCwgdGhlbiB0aGUgdGltZW91dCBj YW4gYmUgdXBkYXRlZC4gRWxzZSwNCj4+ICAgICAgICAgKiB3YWl0IHRoYXQgdGhlIHVzZXIgZW5h YmxlcyBpdC4NCj4+ICAgICAgICAgKi8NCj4+IC0gICAgIGlmICh3ZHRfZW5hYmxlZCkNCj4+IC0g ICAgICAgICAgICAgd2R0X3dyaXRlKHdkdCwgQVQ5MV9XRFRfTVIsIHdkdC0+bXIgJiB+QVQ5MV9X RFRfV0RESVMpOw0KPj4gKyAgICAgaWYgKHdkdF9lbmFibGVkKHdkdCwgd2R0LT5tcikpDQo+PiAr ICAgICAgICAgICAgIHdkdF93cml0ZSh3ZHQsIEFUOTFfV0RUX01SLCB3ZHQtPm1yICYgfndkdC0+ d2RkaXNfbWFzayk7DQo+Pg0KPj4gICAgICAgIHdkZC0+dGltZW91dCA9IHRpbWVvdXQ7DQo+Pg0K Pj4gICAgICAgIHJldHVybiAwOw0KPj4gICB9DQo+Pg0KPj4gICBzdGF0aWMgY29uc3Qgc3RydWN0 IHdhdGNoZG9nX2luZm8gc2FtYTVkNF93ZHRfaW5mbyA9IHsNCj4+ICAgICAgICAub3B0aW9ucyA9 IFdESU9GX1NFVFRJTUVPVVQgfCBXRElPRl9NQUdJQ0NMT1NFIHwgV0RJT0ZfS0VFUEFMSVZFUElO RywNCj4+ICAgICAgICAuaWRlbnRpdHkgPSAiQXRtZWwgU0FNQTVENCBXYXRjaGRvZyIsDQo+PiAg IH07DQo+Pg0KPj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IHdhdGNoZG9nX29wcyBzYW1hNWQ0X3dk dF9vcHMgPSB7DQo+PiAgICAgICAgLm93bmVyID0gVEhJU19NT0RVTEUsDQo+PiAtICAgICAuc3Rh cnQgPSBzYW1hNWQ0X3dkdF9zdGFydCwNCj4+IC0gICAgIC5zdG9wID0gc2FtYTVkNF93ZHRfc3Rv cCwNCj4+IC0gICAgIC5waW5nID0gc2FtYTVkNF93ZHRfcGluZywNCj4+IC0gICAgIC5zZXRfdGlt ZW91dCA9IHNhbWE1ZDRfd2R0X3NldF90aW1lb3V0LA0KPj4gKyAgICAgLnN0YXJ0ID0gd2R0X3N0 YXJ0LA0KPj4gKyAgICAgLnN0b3AgPSB3ZHRfc3RvcCwNCj4+ICsgICAgIC5waW5nID0gd2R0X3Bp bmcsDQo+PiArICAgICAuc2V0X3RpbWVvdXQgPSB3ZHRfc2V0X3RpbWVvdXQsDQo+PiAgIH07DQo+ Pg0KPj4gLXN0YXRpYyBpcnFyZXR1cm5fdCBzYW1hNWQ0X3dkdF9pcnFfaGFuZGxlcihpbnQgaXJx LCB2b2lkICpkZXZfaWQpDQo+PiArc3RhdGljIGlycXJldHVybl90IHdkdF9pcnFfaGFuZGxlcihp bnQgaXJxLCB2b2lkICpkZXZfaWQpDQo+PiAgIHsNCj4+ICAgICAgICBzdHJ1Y3Qgc2FtYTVkNF93 ZHQgKndkdCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKGRldl9pZCk7DQo+PiAgICAgICAgdTMyIHJl ZzsNCj4+DQo+PiAtICAgICBpZiAod2R0LT5zYW05eDYwX3N1cHBvcnQpDQo+PiAtICAgICAgICAg ICAgIHJlZyA9IHdkdF9yZWFkKHdkdCwgQVQ5MV9TQU05WDYwX0lTUik7DQo+PiArICAgICBpZiAo d2R0LT5pc19tb2Rlcm5fY2hpcCkNCj4+ICsgICAgICAgICAgICAgcmVnID0gd2R0X3JlYWQod2R0 LCBBVDkxX1dEVF9JU1IpOw0KPj4gICAgICAgIGVsc2UNCj4+ICAgICAgICAgICAgICAgIHJlZyA9 IHdkdF9yZWFkKHdkdCwgQVQ5MV9XRFRfU1IpOw0KPj4NCj4+ICAgICAgICBpZiAocmVnKSB7DQo+ PiAgICAgICAgICAgICAgICBwcl9jcml0KCJBdG1lbCBXYXRjaGRvZyBTb2Z0d2FyZSBSZXNldFxu Iik7DQo+PiAgICAgICAgICAgICAgICBlbWVyZ2VuY3lfcmVzdGFydCgpOw0KPj4gICAgICAgICAg ICAgICAgcHJfY3JpdCgiUmVib290IGRpZG4ndCBzdWNjZWVkXG4iKTsNCj4+ICAgICAgICB9DQo+ Pg0KPj4gICAgICAgIHJldHVybiBJUlFfSEFORExFRDsNCj4+ICAgfQ0KPj4NCj4+IC1zdGF0aWMg aW50IG9mX3NhbWE1ZDRfd2R0X2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCwgc3RydWN0IHNh bWE1ZDRfd2R0ICp3ZHQpDQo+PiArc3RhdGljIGludCBvZl93ZHRfaW5pdChzdHJ1Y3QgZGV2aWNl X25vZGUgKm5wLCBzdHJ1Y3Qgc2FtYTVkNF93ZHQgKndkdCkNCj4+ICAgew0KPj4gICAgICAgIGNv bnN0IGNoYXIgKnRtcDsNCj4+DQo+PiAtICAgICBpZiAod2R0LT5zYW05eDYwX3N1cHBvcnQpDQo+ PiAtICAgICAgICAgICAgIHdkdC0+bXIgPSBBVDkxX1NBTTlYNjBfV0RESVM7DQo+PiAtICAgICBl bHNlDQo+PiAtICAgICAgICAgICAgIHdkdC0+bXIgPSBBVDkxX1dEVF9XRERJUzsNCj4+ICsgICAg IHdkdC0+bXIgPSB3ZHQtPndkZGlzX21hc2s7DQo+Pg0KPj4gICAgICAgIGlmICghb2ZfcHJvcGVy dHlfcmVhZF9zdHJpbmcobnAsICJhdG1lbCx3YXRjaGRvZy10eXBlIiwgJnRtcCkgJiYNCj4+ICAg ICAgICAgICAgIXN0cmNtcCh0bXAsICJzb2Z0d2FyZSIpKQ0KPj4gICAgICAgICAgICAgICAgd2R0 LT5uZWVkX2lycSA9IHRydWU7DQo+Pg0KPj4gICAgICAgIGlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jv b2wobnAsICJhdG1lbCxpZGxlLWhhbHQiKSkNCj4+ICAgICAgICAgICAgICAgIHdkdC0+bXIgfD0g QVQ5MV9XRFRfV0RJRExFSExUOw0KPj4NCj4+ICAgICAgICBpZiAob2ZfcHJvcGVydHlfcmVhZF9i b29sKG5wLCAiYXRtZWwsZGJnLWhhbHQiKSkNCj4+ICAgICAgICAgICAgICAgIHdkdC0+bXIgfD0g QVQ5MV9XRFRfV0REQkdITFQ7DQo+Pg0KPj4gICAgICAgIHJldHVybiAwOw0KPj4gICB9DQo+Pg0K Pj4gLXN0YXRpYyBpbnQgc2FtYTVkNF93ZHRfaW5pdChzdHJ1Y3Qgc2FtYTVkNF93ZHQgKndkdCkN Cj4+ICtzdGF0aWMgaW50IHdkdF9pbml0KHN0cnVjdCBzYW1hNWQ0X3dkdCAqd2R0KQ0KPj4gICB7 DQo+PiArICAgICBzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQgPSAmd2R0LT53ZGQ7DQo+PiAg ICAgICAgdTMyIHJlZywgdmFsOw0KPj4NCj4+ICAgICAgICB2YWwgPSBXRFRfU0VDMlRJQ0tTKFdE VF9ERUZBVUxUX1RJTUVPVVQpOw0KPj4gKw0KPj4gICAgICAgIC8qDQo+PiAgICAgICAgICogV2hl biBib290aW5nIGFuZCByZXN1bWluZywgdGhlIGJvb3Rsb2FkZXIgbWF5IGhhdmUgY2hhbmdlZCB0 aGUNCj4+ICAgICAgICAgKiB3YXRjaGRvZyBjb25maWd1cmF0aW9uLg0KPj4gLSAgICAgICogSWYg dGhlIHdhdGNoZG9nIGlzIGFscmVhZHkgcnVubmluZywgd2UgY2FuIHNhZmVseSB1cGRhdGUgaXQu DQo+PiAtICAgICAgKiBFbHNlLCB3ZSBoYXZlIHRvIGRpc2FibGUgaXQgcHJvcGVybHkuDQo+PiAr ICAgICAgKiBJZiB0aGUgd2F0Y2hkb2cgaXMgbm90IHJ1bm5pbmcsIHdlIG5lZWQgdG8gZGlzYWJs ZSBpdCBwcm9wZXJseS4NCj4+ICsgICAgICAqIE90aGVyd2lzZSwgd2UgY2FuIHNhZmVseSB1cGRh dGUgaXQuDQo+PiAgICAgICAgICovDQo+PiAtICAgICBpZiAoIXdkdF9lbmFibGVkKSB7DQo+PiAt ICAgICAgICAgICAgIHJlZyA9IHdkdF9yZWFkKHdkdCwgQVQ5MV9XRFRfTVIpOw0KPj4gLSAgICAg ICAgICAgICBpZiAod2R0LT5zYW05eDYwX3N1cHBvcnQgJiYgKCEocmVnICYgQVQ5MV9TQU05WDYw X1dERElTKSkpDQo+PiAtICAgICAgICAgICAgICAgICAgICAgd2R0X3dyaXRlX25vc2xlZXAod2R0 LCBBVDkxX1dEVF9NUiwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZWcgfCBBVDkxX1NBTTlYNjBfV0RESVMpOw0KPj4gLSAgICAgICAgICAgICBlbHNlIGlmICgh d2R0LT5zYW05eDYwX3N1cHBvcnQgJiYNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgKCEocmVn ICYgQVQ5MV9XRFRfV0RESVMpKSkNCj4+IC0gICAgICAgICAgICAgICAgICAgICB3ZHRfd3JpdGVf bm9zbGVlcCh3ZHQsIEFUOTFfV0RUX01SLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlZyB8IEFUOTFfV0RUX1dERElTKTsNCj4+ICsgICAgIHJlZyA9IHdkdF9y ZWFkKHdkdCwgQVQ5MV9XRFRfTVIpOw0KPj4gKyAgICAgaWYgKHdkdF9lbmFibGVkKHdkdCwgcmVn KSkgew0KPj4gKyAgICAgICAgICAgICB3ZHQtPm1yICY9IH53ZHQtPndkZGlzX21hc2s7DQo+PiAr ICAgICAgICAgICAgIHNldF9iaXQoV0RPR19IV19SVU5OSU5HLCAmd2RkLT5zdGF0dXMpOw0KPj4g KyAgICAgfSBlbHNlIHsNCj4+ICsgICAgICAgICAgICAgd2R0LT5tciB8PSB3ZHQtPndkZGlzX21h c2s7DQo+PiAgICAgICAgfQ0KPj4NCj4+IC0gICAgIGlmICh3ZHQtPnNhbTl4NjBfc3VwcG9ydCkg ew0KPj4gKyAgICAgaWYgKHdkdC0+aXNfbW9kZXJuX2NoaXApIHsNCj4+ICAgICAgICAgICAgICAg IGlmICh3ZHQtPm5lZWRfaXJxKQ0KPj4gLSAgICAgICAgICAgICAgICAgICAgIHdkdC0+aXIgPSBB VDkxX1NBTTlYNjBfUEVSSU5UOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgIHdkdC0+aXIgPSBB VDkxX1dEVF9QRVJJTlQ7DQo+PiAgICAgICAgICAgICAgICBlbHNlDQo+PiAtICAgICAgICAgICAg ICAgICAgICAgd2R0LT5tciB8PSBBVDkxX1NBTTlYNjBfUEVSSU9EUlNUOw0KPj4gKyAgICAgICAg ICAgICAgICAgICAgIHdkdC0+bXIgfD0gQVQ5MV9XRFRfUEVSSU9EUlNUOw0KPj4NCj4+IC0gICAg ICAgICAgICAgd2R0X3dyaXRlKHdkdCwgQVQ5MV9TQU05WDYwX0lFUiwgd2R0LT5pcik7DQo+PiAt ICAgICAgICAgICAgIHdkdF93cml0ZSh3ZHQsIEFUOTFfU0FNOVg2MF9XTFIsIEFUOTFfU0FNOVg2 MF9TRVRfQ09VTlRFUih2YWwpKTsNCj4+ICsgICAgICAgICAgICAgd2R0X3dyaXRlKHdkdCwgQVQ5 MV9XRFRfSUVSLCB3ZHQtPmlyKTsNCj4+ICsgICAgICAgICAgICAgd2R0X3dyaXRlKHdkdCwgQVQ5 MV9XRFRfV0xSLCBBVDkxX1dEVF9TRVRfQ09VTlRFUih2YWwpKTsNCj4+ICAgICAgICB9IGVsc2Ug ew0KPj4gICAgICAgICAgICAgICAgd2R0LT5tciB8PSBBVDkxX1dEVF9TRVRfV0REKFdEVF9TRUMy VElDS1MoTUFYX1dEVF9USU1FT1VUKSk7DQo+PiAgICAgICAgICAgICAgICB3ZHQtPm1yIHw9IEFU OTFfV0RUX1NFVF9XRFYodmFsKTsNCj4+DQo+PiAgICAgICAgICAgICAgICBpZiAod2R0LT5uZWVk X2lycSkNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgd2R0LT5tciB8PSBBVDkxX1dEVF9XREZJ RU47DQo+PiAgICAgICAgICAgICAgICBlbHNlDQo+PiAgICAgICAgICAgICAgICAgICAgICAgIHdk dC0+bXIgfD0gQVQ5MV9XRFRfV0RSU1RFTjsNCj4+ICAgICAgICB9DQo+Pg0KPj4gICAgICAgIHdk dF93cml0ZV9ub3NsZWVwKHdkdCwgQVQ5MV9XRFRfTVIsIHdkdC0+bXIpOw0KPj4NCj4+ICAgICAg ICByZXR1cm4gMDsNCj4+ICAgfQ0KPj4NCj4+IC1zdGF0aWMgaW50IHNhbWE1ZDRfd2R0X3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+PiArc3RhdGljIGludCB3ZHRfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4+ICAgew0KPj4gICAgICAgIHN0cnVjdCBk ZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+PiAgICAgICAgc3RydWN0IHdhdGNoZG9nX2Rldmlj ZSAqd2RkOw0KPj4gICAgICAgIHN0cnVjdCBzYW1hNWQ0X3dkdCAqd2R0Ow0KPj4gICAgICAgIHZv aWQgX19pb21lbSAqcmVnczsNCj4+ICAgICAgICB1MzIgaXJxID0gMDsNCj4+IC0gICAgIHUzMiBy ZWc7DQo+PiAgICAgICAgaW50IHJldDsNCj4+DQo+PiAgICAgICAgd2R0ID0gZGV2bV9remFsbG9j KGRldiwgc2l6ZW9mKCp3ZHQpLCBHRlBfS0VSTkVMKTsNCj4+ICAgICAgICBpZiAoIXdkdCkNCj4+ ICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPj4NCj4+ICAgICAgICB3ZGQgPSAmd2R0 LT53ZGQ7DQo+PiAgICAgICAgd2RkLT50aW1lb3V0ID0gV0RUX0RFRkFVTFRfVElNRU9VVDsNCj4+ ICAgICAgICB3ZGQtPmluZm8gPSAmc2FtYTVkNF93ZHRfaW5mbzsNCj4+ICAgICAgICB3ZGQtPm9w cyA9ICZzYW1hNWQ0X3dkdF9vcHM7DQo+PiAgICAgICAgd2RkLT5taW5fdGltZW91dCA9IE1JTl9X RFRfVElNRU9VVDsNCj4+ICAgICAgICB3ZGQtPm1heF90aW1lb3V0ID0gTUFYX1dEVF9USU1FT1VU Ow0KPj4gICAgICAgIHdkdC0+bGFzdF9waW5nID0gamlmZmllczsNCj4+IC0NCj4+IC0gICAgIGlm IChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShkZXYtPm9mX25vZGUsICJtaWNyb2NoaXAsc2FtOXg2 MC13ZHQiKSB8fA0KPj4gLSAgICAgICAgIG9mX2RldmljZV9pc19jb21wYXRpYmxlKGRldi0+b2Zf bm9kZSwgIm1pY3JvY2hpcCxzYW1hN2c1LXdkdCIpKQ0KPj4gLSAgICAgICAgICAgICB3ZHQtPnNh bTl4NjBfc3VwcG9ydCA9IHRydWU7DQo+PiArICAgICB3ZHQtPmlzX21vZGVybl9jaGlwID0gY2hl Y2tfaXNfbW9kZXJuX2NoaXBfYnlfY29tcGF0aWJsZShkZXYpOw0KPj4gKyAgICAgaWYgKHdkdC0+ aXNfbW9kZXJuX2NoaXApDQo+PiArICAgICAgICAgICAgIHdkdC0+d2RkaXNfbWFzayA9IEFUOTFf V0RUX1dERElTX01PREVSTjsNCj4+ICsgICAgIGVsc2UNCj4+ICsgICAgICAgICAgICAgd2R0LT53 ZGRpc19tYXNrID0gQVQ5MV9XRFRfV0RESVNfTEVHQUNZOw0KPj4NCj4+ICAgICAgICB3YXRjaGRv Z19zZXRfZHJ2ZGF0YSh3ZGQsIHdkdCk7DQo+Pg0KPj4gICAgICAgIHJlZ3MgPSBkZXZtX3BsYXRm b3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7DQo+PiAgICAgICAgaWYgKElTX0VSUihyZWdz KSkNCj4+ICAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHJlZ3MpOw0KPj4NCj4+ICAgICAg ICB3ZHQtPnJlZ19iYXNlID0gcmVnczsNCj4+DQo+PiAtICAgICByZXQgPSBvZl9zYW1hNWQ0X3dk dF9pbml0KGRldi0+b2Zfbm9kZSwgd2R0KTsNCj4+ICsgICAgIHJldCA9IG9mX3dkdF9pbml0KGRl di0+b2Zfbm9kZSwgd2R0KTsNCj4+ICAgICAgICBpZiAocmV0KQ0KPj4gICAgICAgICAgICAgICAg cmV0dXJuIHJldDsNCj4+DQo+PiAgICAgICAgaWYgKHdkdC0+bmVlZF9pcnEpIHsNCj4+ICAgICAg ICAgICAgICAgIGlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKGRldi0+b2Zfbm9kZSwgMCk7DQo+ PiAgICAgICAgICAgICAgICBpZiAoIWlycSkgew0KPj4gICAgICAgICAgICAgICAgICAgICAgICBk ZXZfd2FybihkZXYsICJmYWlsZWQgdG8gZ2V0IElSUSBmcm9tIERUXG4iKTsNCj4+ICAgICAgICAg ICAgICAgICAgICAgICAgd2R0LT5uZWVkX2lycSA9IGZhbHNlOw0KPj4gICAgICAgICAgICAgICAg fQ0KPj4gICAgICAgIH0NCj4+DQo+PiAgICAgICAgaWYgKHdkdC0+bmVlZF9pcnEpIHsNCj4+IC0g ICAgICAgICAgICAgcmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIGlycSwgc2FtYTVkNF93ZHRf aXJxX2hhbmRsZXIsDQo+PiArICAgICAgICAgICAgIHJldCA9IGRldm1fcmVxdWVzdF9pcnEoZGV2 LCBpcnEsIHdkdF9pcnFfaGFuZGxlciwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSVJRRl9TSEFSRUQgfCBJUlFGX0lSUVBPTEwgfA0KPj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJUlFGX05PX1NVU1BFTkQsIHBkZXYtPm5hbWUsIHBkZXYp Ow0KPj4gICAgICAgICAgICAgICAgaWYgKHJldCkgew0KPj4gICAgICAgICAgICAgICAgICAgICAg ICBkZXZfZXJyKGRldiwgImNhbm5vdCByZWdpc3RlciBpbnRlcnJ1cHQgaGFuZGxlclxuIik7DQo+ PiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiAgICAgICAgICAgICAgICB9 DQo+PiAgICAgICAgfQ0KPj4NCj4+ICAgICAgICB3YXRjaGRvZ19pbml0X3RpbWVvdXQod2RkLCB3 ZHRfdGltZW91dCwgZGV2KTsNCj4+DQo+PiAtICAgICByZWcgPSB3ZHRfcmVhZCh3ZHQsIEFUOTFf V0RUX01SKTsNCj4+IC0gICAgIGlmICghKHJlZyAmIEFUOTFfV0RUX1dERElTKSkgew0KPj4gLSAg ICAgICAgICAgICB3ZHQtPm1yICY9IH5BVDkxX1dEVF9XRERJUzsNCj4+IC0gICAgICAgICAgICAg c2V0X2JpdChXRE9HX0hXX1JVTk5JTkcsICZ3ZGQtPnN0YXR1cyk7DQo+PiAtICAgICB9DQo+PiAt DQo+PiAtICAgICByZXQgPSBzYW1hNWQ0X3dkdF9pbml0KHdkdCk7DQo+PiArICAgICByZXQgPSB3 ZHRfaW5pdCh3ZHQpOw0KPj4gICAgICAgIGlmIChyZXQpDQo+PiAgICAgICAgICAgICAgICByZXR1 cm4gcmV0Ow0KPj4NCj4+ICAgICAgICB3YXRjaGRvZ19zZXRfbm93YXlvdXQod2RkLCBub3dheW91 dCk7DQo+Pg0KPj4gICAgICAgIHdhdGNoZG9nX3N0b3Bfb25fdW5yZWdpc3Rlcih3ZGQpOw0KPj4g ICAgICAgIHJldCA9IGRldm1fd2F0Y2hkb2dfcmVnaXN0ZXJfZGV2aWNlKGRldiwgd2RkKTsNCj4+ ICAgICAgICBpZiAocmV0KQ0KPj4gICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+DQo+PiAg ICAgICAgcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgd2R0KTsNCj4+DQo+PiAgICAgICAgZGV2 X2luZm8oZGV2LCAiaW5pdGlhbGl6ZWQgKHRpbWVvdXQgPSAlZCBzZWMsIG5vd2F5b3V0ID0gJWQp XG4iLA0KPj4gICAgICAgICAgICAgICAgIHdkZC0+dGltZW91dCwgbm93YXlvdXQpOw0KPj4NCj4+ ICAgICAgICByZXR1cm4gMDsNCj4+ICAgfQ0KPj4NCj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0IG9m X2RldmljZV9pZCBzYW1hNWQ0X3dkdF9vZl9tYXRjaFtdID0gew0KPj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3Qgb2ZfZGV2aWNlX2lkIHdkdF9vZl9tYXRjaFtdID0gew0KPj4gICAgICAgIHsNCj4+ICAg ICAgICAgICAgICAgIC5jb21wYXRpYmxlID0gImF0bWVsLHNhbWE1ZDQtd2R0IiwNCj4+ICAgICAg ICB9LA0KPj4gICAgICAgIHsNCj4+ICAgICAgICAgICAgICAgIC5jb21wYXRpYmxlID0gIm1pY3Jv Y2hpcCxzYW05eDYwLXdkdCIsDQo+PiAgICAgICAgfSwNCj4+ICAgICAgICB7DQo+PiAgICAgICAg ICAgICAgICAuY29tcGF0aWJsZSA9ICJtaWNyb2NoaXAsc2FtYTdnNS13ZHQiLA0KPj4gICAgICAg IH0sDQo+Pg0KPj4gICAgICAgIHsgfQ0KPj4gICB9Ow0KPj4gLU1PRFVMRV9ERVZJQ0VfVEFCTEUo b2YsIHNhbWE1ZDRfd2R0X29mX21hdGNoKTsNCj4+ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB3 ZHRfb2ZfbWF0Y2gpOw0KPj4NCj4+IC1zdGF0aWMgaW50IHNhbWE1ZDRfd2R0X3N1c3BlbmRfbGF0 ZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+PiArc3RhdGljIGludCB3ZHRfc3VzcGVuZF9sYXRlKHN0 cnVjdCBkZXZpY2UgKmRldikNCj4+ICAgew0KPj4gICAgICAgIHN0cnVjdCBzYW1hNWQ0X3dkdCAq d2R0ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+Pg0KPj4gICAgICAgIGlmICh3YXRjaGRvZ19h Y3RpdmUoJndkdC0+d2RkKSkNCj4+IC0gICAgICAgICAgICAgc2FtYTVkNF93ZHRfc3RvcCgmd2R0 LT53ZGQpOw0KPj4gKyAgICAgICAgICAgICB3ZHRfc3RvcCgmd2R0LT53ZGQpOw0KPj4NCj4+ICAg ICAgICByZXR1cm4gMDsNCj4+ICAgfQ0KPj4NCj4+IC1zdGF0aWMgaW50IHNhbWE1ZDRfd2R0X3Jl c3VtZV9lYXJseShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+PiArc3RhdGljIGludCB3ZHRfcmVzdW1l X2Vhcmx5KHN0cnVjdCBkZXZpY2UgKmRldikNCj4+ICAgew0KPj4gICAgICAgIHN0cnVjdCBzYW1h NWQ0X3dkdCAqd2R0ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+Pg0KPj4gICAgICAgIC8qDQo+ PiAgICAgICAgICogRklYTUU6IHdyaXRpbmcgTVIgYWxzbyBwaW5ncyB0aGUgd2F0Y2hkb2cgd2hp Y2ggbWF5IG5vdCBiZSBkZXNpcmVkLg0KPj4gICAgICAgICAqIFRoaXMgc2hvdWxkIG9ubHkgYmUg ZG9uZSB3aGVuIHRoZSByZWdpc3RlcnMgYXJlIGxvc3Qgb24gc3VzcGVuZCBidXQNCj4+ICAgICAg ICAgKiB0aGVyZSBpcyBubyB3YXkgdG8gZ2V0IHRoaXMgaW5mb3JtYXRpb24gcmlnaHQgbm93Lg0K Pj4gICAgICAgICAqLw0KPj4gLSAgICAgc2FtYTVkNF93ZHRfaW5pdCh3ZHQpOw0KPj4gKyAgICAg d2R0X2luaXQod2R0KTsNCj4+DQo+PiAgICAgICAgaWYgKHdhdGNoZG9nX2FjdGl2ZSgmd2R0LT53 ZGQpKQ0KPj4gLSAgICAgICAgICAgICBzYW1hNWQ0X3dkdF9zdGFydCgmd2R0LT53ZGQpOw0KPj4g KyAgICAgICAgICAgICB3ZHRfc3RhcnQoJndkdC0+d2RkKTsNCj4+DQo+PiAgICAgICAgcmV0dXJu IDA7DQo+PiAgIH0NCj4+DQo+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBzYW1h NWQ0X3dkdF9wbV9vcHMgPSB7DQo+PiAtICAgICBMQVRFX1NZU1RFTV9TTEVFUF9QTV9PUFMoc2Ft YTVkNF93ZHRfc3VzcGVuZF9sYXRlLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNhbWE1ZDRfd2R0X3Jlc3VtZV9lYXJseSkNCj4+ICsgICAgIExBVEVfU1lTVEVNX1NMRUVQX1BN X09QUyh3ZHRfc3VzcGVuZF9sYXRlLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHdkdF9yZXN1bWVfZWFybHkpDQo+PiAgIH07DQo+Pg0KPj4gICBzdGF0aWMgc3RydWN0IHBsYXRm b3JtX2RyaXZlciBzYW1hNWQ0X3dkdF9kcml2ZXIgPSB7DQo+PiAtICAgICAucHJvYmUgICAgICAg ICAgPSBzYW1hNWQ0X3dkdF9wcm9iZSwNCj4+ICsgICAgIC5wcm9iZSAgICAgICAgICA9IHdkdF9w cm9iZSwNCj4+ICAgICAgICAuZHJpdmVyICAgICAgICAgPSB7DQo+PiAgICAgICAgICAgICAgICAu bmFtZSAgID0gInNhbWE1ZDRfd2R0IiwNCj4+ICAgICAgICAgICAgICAgIC5wbSAgICAgPSBwbV9z bGVlcF9wdHIoJnNhbWE1ZDRfd2R0X3BtX29wcyksDQo+PiAtICAgICAgICAgICAgIC5vZl9tYXRj aF90YWJsZSA9IHNhbWE1ZDRfd2R0X29mX21hdGNoLA0KPj4gKyAgICAgICAgICAgICAub2ZfbWF0 Y2hfdGFibGUgPSB3ZHRfb2ZfbWF0Y2gsDQo+PiAgICAgICAgfQ0KPj4gICB9Ow0KPj4gICBtb2R1 bGVfcGxhdGZvcm1fZHJpdmVyKHNhbWE1ZDRfd2R0X2RyaXZlcik7DQo+Pg0KPj4gICBNT0RVTEVf QVVUSE9SKCJBdG1lbCBDb3Jwb3JhdGlvbiIpOw0KPj4gICBNT0RVTEVfREVTQ1JJUFRJT04oIkF0 bWVsIFNBTUE1RDQgV2F0Y2hkb2cgVGltZXIgZHJpdmVyIik7DQo+PiAgIE1PRFVMRV9MSUNFTlNF KCJHUEwgdjIiKTsNCj4+IC0tDQo+PiAyLjM0LjENCj4+DQo+IA0KPiAtLQ0KPiBBbGV4YW5kcmUg QmVsbG9uaSwgY28tb3duZXIgYW5kIENPTywgQm9vdGxpbg0KPiBFbWJlZGRlZCBMaW51eCBhbmQg S2VybmVsIGVuZ2luZWVyaW5nDQo+IGh0dHBzOi8vYm9vdGxpbi5jb20NCg0K