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 803BECA0ED3 for ; Mon, 2 Sep 2024 07:33:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=dOBdfuH0VR5vt7oFoLY8VhnfETrnS0X24T3jsCFbVKU=; b=p9qy6ZElTyg5Xvavzdriw740rF FXEN9cls/VO3txcZ1JKA0ai555rrmIHxWU69Z98Ir1ccZJH8DVlkGVSdi6Y41vV0mFX78ombIbC5p xP2PrUk/x+Hx+k+f/OWdBTCwV1IZ/6+R0eMqrirOkmf/NxVluOlvOTHbkSQ4V7llOqWChjc/tRe8P NzFBidFy79ve0IZhLSyTyLVtC6xcGwuES7kIs6kW4aHRjGXuvJv7ruYy9hnXLSZGe9hHsLC1ACaAi Sh6bb58biqqRMIic8j8bfz5xYmOt1xdb0DDHCbnBqgUrsh+ZeVJd+vYK4tg8O5RIGTxrh5YixbV4A U1MIJZRQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sl1Ym-0000000DJqR-04mG; Mon, 02 Sep 2024 07:33:12 +0000 Received: from mail-psaapc01on2070b.outbound.protection.outlook.com ([2a01:111:f400:feae::70b] helo=APC01-PSA-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sl1Yi-0000000DJoK-1ije for linux-amlogic@lists.infradead.org; Mon, 02 Sep 2024 07:33:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ap6xYkllN4VuUxurHkfBUKfiP+d/WIqryCF3Y4Cmt+ixP4nNmdQF4y89h8AAsSYDjGgsxiF4dN3fKkDFI4hv1lLHCU3vvTHDxnq1v9ZAmlRZyRRWtwZQJvfxJVf4znR+2oNFvivzk1UnsFXH4vGN8gZXsDz5YhzwcFd41C6uAFQh/0xgRWadY9UJSfKnE2DBUuMoj48CpyhUie4NZqROam8126n5k2cGaSZacFrSTuRPeNN6s6+HHpqvy0wmgkfBejg1I5eBwisFMylKwwGrTaVYq83xKsxkIwMncQQE7+mlO/8p0MZdqnmS4rctOea71FPKcCYFKQszzsqeTOGuLg== 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=f1bZXYGSV/bEYceMqbG1Nnew16oLZsMFd8pKnSld2kk=; b=yG4F36bcKomtHaR4kIIXmL7+HPLFLhoQ1/SQRCh59hcDZBfTPXWNP4Jqi6veSfBTpR3pVBA/bw3puZzRneZ79V62iwx6n5skEWQKK/G/slsViqohX/XVco4BeQ/ng30wvPQ5F1NE/jjh5qGddWfzRJkHdAOTqV5B/dgh1ScVF2V6olOC48j7xc9LYKhT0C4sjoGKksBtKrUKYinF2KGH2EMtvnqV3TM6saDVzc34YQ5WKUwuuSU46uz1Yy6hUh5KkYZVNwtQ+gMw6miqOcVwZkSP6l8QtYMR2i1slw0mf0ki80LeC72fxTcsWLto2oF77KK/KuJP23jeHsCd4MIKfg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amlogic.com; dmarc=pass action=none header.from=amlogic.com; dkim=pass header.d=amlogic.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amlogic.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=f1bZXYGSV/bEYceMqbG1Nnew16oLZsMFd8pKnSld2kk=; b=J//+N2NG/wwP3Se0TtaFgWgg/FoCbJYk8MjbXxK4oHMQrO3mrACJvdHnCNzM9DavlX/VQE/CH6fDNmZXtevNG2J7iPOR9MybUsvSZQg4ZBqKXzdb8PU68y0kz1oCW2rL8h5GZT6vX1avoiJU/kS6XNSljLCRR9x7ly3yXQDmWJz4iEWs+Xon5G0yxsCjPZRk8nvYOSffEWJRyLBeQCEOUXiEX2+uuW7IdhseenzeOY7b22QRUNRx2e0LiI6aLYLzolNGLhueOEzx+VkbmKjL46tGpqBLGoFiGiY+SB9SZBBqe/B5jHYWaUcKgztoYA3v474B544hKOXG6wiRoqpAIA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amlogic.com; Received: from TYZPR03MB6896.apcprd03.prod.outlook.com (2603:1096:400:289::14) by SEYPR03MB7415.apcprd03.prod.outlook.com (2603:1096:101:13e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7918.24; Mon, 2 Sep 2024 07:32:51 +0000 Received: from TYZPR03MB6896.apcprd03.prod.outlook.com ([fe80::ac4e:718:3b03:3123]) by TYZPR03MB6896.apcprd03.prod.outlook.com ([fe80::ac4e:718:3b03:3123%4]) with mapi id 15.20.7918.020; Mon, 2 Sep 2024 07:32:50 +0000 Message-ID: Date: Mon, 2 Sep 2024 15:32:45 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/3] rtc: support for the Amlogic on-chip RTC Content-Language: en-US To: Krzysztof Kozlowski , Yiting Deng , Alexandre Belloni , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-amlogic@lists.infradead.org, linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org References: <20240823-rtc-v1-0-6f70381da283@amlogic.com> <20240823-rtc-v1-2-6f70381da283@amlogic.com> From: Xianwei Zhao In-Reply-To: X-ClientProxiedBy: SI2PR02CA0031.apcprd02.prod.outlook.com (2603:1096:4:195::16) To TYZPR03MB6896.apcprd03.prod.outlook.com (2603:1096:400:289::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR03MB6896:EE_|SEYPR03MB7415:EE_ X-MS-Office365-Filtering-Correlation-Id: 01f63e5c-2c60-44e9-1321-08dccb2172c7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?NzBja0pvaVZTVlZIcXVUemRDTDlGbTRJaklaWEloYTdzQWJ3RGY4bjJmdWVj?= =?utf-8?B?dmZiVWJKRHl3NGYxVmEyU0tWVlhvaVAva0VQMXRJQ0tVbzh4ZUhJVUQxdm11?= =?utf-8?B?bEZuOGhhNjFMNEQvMUxUcEtvalpWSHpFVUJRVzBUcVJndjFZQ045bitLaFpm?= =?utf-8?B?d0c2ZnFoRVpKcXk0eGh6aFgxSG1sYWthWEw2N3pmZ0kxeUFqUFJ0b25TSFpz?= =?utf-8?B?WFJLRmFMWE10ejRadkZ4eU9OQkFRdDlSNDdKeXF1UzRJdi8zVDBtdFdXbUpr?= =?utf-8?B?cUh4VVNabE9Kb3g0cE5uUkZWR0tqWUgrYVlFL29zL0owZ1dCUXgxZm5JaXk1?= =?utf-8?B?bVM4b3RBZlJraENkY0sxSG5PWVRQdjJ3QkR6VXZyZFNaelVLM1NKUGdxQklM?= =?utf-8?B?WmV1WGR2TS9YREIzb3NDZERnNmZlVUF2aGhKT00yOXRFNi9WeGl1UGw4MzU4?= =?utf-8?B?STEyMURSNS9JOFJXOXlKc3d0Z3hHRGxvNGFudnBxY3U5VVRxeEQzNCswTHdJ?= =?utf-8?B?NEFIbHBoQU5oRG4wNmluSkxRVFBNeWJpaG92YUZvWGhudzd4VkhnMVRtRUVT?= =?utf-8?B?NDV0TC9WcVZnanJrREdKcUh3TGJkQ2FGaG1RRTNEMm1FWXVxQ3N3K1RacTMy?= =?utf-8?B?dzhGNXdVTXpEZDRFRWc5dDB5ZkRxbWU3Zjl0U2s0YWFSY3psR0c2WGVRMURT?= =?utf-8?B?L1lUdDJwMlA2a2FTd2d3eldFRUU0SUV6c0d4cGdJSklZL0VlbHg2bFY2Rit5?= =?utf-8?B?bG1YL3VHT3pRaHZsRzZNbTYzOFJRUExhb1BZTXlLOVl0ZFJYQjVsczdxWHlz?= =?utf-8?B?c0Vuand5YXNDbGRsbEFoc0V4V0NrbDN5VFU2NjlCUjBiMmJiZFpEK0YzQXE3?= =?utf-8?B?UzBsZzdUWVg2UG1yazEycmZ2MFRmdFpOQWt1VVdORkFCb3VqcUl5YWFNVFVH?= =?utf-8?B?a3dKbE9rUW9CR0QyUmlWanlwbExwd2h1TzhZS0FENlZybFA2VmxVQWEvb0ZG?= =?utf-8?B?a1dhMzYzT1RHajluUkxNNUtNR0pPZVRyTC9RRlJiTlo4bnU1N3JHakw5RmND?= =?utf-8?B?VkZRQ21kOGM3dzJwWXdXNFQ2ZkNlS3JyT1JrMnFSNjZQM1NESHJKYTE1QktE?= =?utf-8?B?eDVUYWVtWHpBNXU2aWtLblMrby9tdGZ2MjVXeENyQW9xdGdzaUdzSi9vUVZK?= =?utf-8?B?dHRBdXdmUWZqanZIRWtIOTNESXlzR1JoK0Uza2VSTllpUkY3S2VOZVFES1FW?= =?utf-8?B?QS9DYm81T0dzcm9XR1NSZXV1cTZteWl4OUNGV2U2cW1GTXBocmx2bFFZNFgz?= =?utf-8?B?Z0dVdE5QbS91S0hLNllUNnlRdmx4cGg5ZzVCUFlGa0VZNU9Kbkc1eEZzVWZn?= =?utf-8?B?NTZIdDROUlFYdTliUjYwdGRuN2RVaFZTT295ZytPSG9pNTFzUG5TTXFmcDIz?= =?utf-8?B?S0UrUHRIYUpxU09iRFJpQktUL2dHV25PY0FuaU1FTGxyL2NQVTVmRVh3ZTVN?= =?utf-8?B?Wk5HVmozYUwyL09vRGM1eGFlOXo5c3pCRlNKbEY1SGR1UTJSV0cvZHN4M1lj?= =?utf-8?B?SE9RQXhlbXlNakVJZ3lpRkk0eER0QkY3L0ZtcGVyaTFiR042bVVMVU5Rb0d0?= =?utf-8?B?NkphYnNnUGJSNG1zOGJJWEJqSHlUanlKaHN2TWJnWU9TbmJ1d3J2TGVGYXNW?= =?utf-8?B?Ky9ld3pnU01NVzhFNTNuWHd4V0E5TEpkamRYQmNuTTBkcFdzRWF4dFRINDRt?= =?utf-8?B?Z0VtZ1VQZU5pZG93aUJBSzFWNmFCeERHSGwwQmRCekpGRHNrTWNDS3BQaC9T?= =?utf-8?B?OEwwSGRlR1c1ZnNsWk94UT09?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB6896.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aUpFeGkxb2hHMVdURE9veURHOWdmWVFOL0pwQnJaYi9rMDZPbnhRSjRLL0hK?= =?utf-8?B?ZXBlVkQ2TjRjamJtdk5xOE5GdUJSa2NlZlkrSnZYQ0ZPT3ROcmFSV0NNMHZq?= =?utf-8?B?UFgzdDhmMStvMVZEK3p0WXpEWXc2YUloeW9Nc3JsMFdXamR1YUo1UFlmNjhy?= =?utf-8?B?Q2ZtU215am5CaGg5U2RUanVFRGVwWFlPNGkyb2pSdEszZlJZYTZDT05obFRG?= =?utf-8?B?VXd1Wklqamp2RVlWVGhObk5mb2RXbGlId3NsQ05MN2JPYmxqN0diYXFhU215?= =?utf-8?B?R045amM1Mi81NnFJQUo0TG5HS2t0LzVZU2ZGQXkxdHVZbTZNTFk5KzVOYTFD?= =?utf-8?B?Mnd0b3pYeVJBQTZjeUVSVWp6YzkrSGl1NTYwdTZ6SGhoRlEzcjVjYlU2N2RP?= =?utf-8?B?MmtOaFdCdStXZlRRQW9XWnlrMTRJL1RpQkZxRklHeGh1Mk9aWk5hQkhsa1p0?= =?utf-8?B?L0szdGt4VjNZYWYvWXhqNlpRd0VjQUJLM0diQWwwaDBwdVY2REUwQkZkTlN2?= =?utf-8?B?VDhTUkYwVnQ1VHNqUnlhQW5uOFJzN01QREdjOWUyQjFISHVCK1NzMFlYVTZB?= =?utf-8?B?ZW9pT1lwM3Q2b2Y3NHZXRmYreXF5amp0ZGpyMTRXSSs0RUtPZ1h3a0lXR0Nz?= =?utf-8?B?NVY5cmxuSm56QUJUd3JVN1g5K1NKeUxRQ3k1WGY1VVE1MHdmVU5QOUN1elpO?= =?utf-8?B?NytieGpvVDdkSGJYOWpoMHNLVFVZMndHOEZMVE9HSXJGV3VoaURJZUhpeDBs?= =?utf-8?B?LzhxeUdiOU81UWNRdG5aSXVuQlBHdm1QNVlMcDFDUUtSZzFieXJ4NWZra29n?= =?utf-8?B?clBoZjhpbHRxZlI0bDBPc3lMSU8xeklZR3ZnWExCcXBIdnVOaUJQWG13T0ts?= =?utf-8?B?QnlxMXd3dmFaVUhYYjdMNXlSWG9HWlh0WTFZL0lvUEhMY3Q4N0R0UjVkZHl3?= =?utf-8?B?cE9IQnlTTmtVUG5hb3RkYTV0TmN3QVF6cTYxQmtCR2JGVkYvd0VKeXdvUytz?= =?utf-8?B?VVJ6eVZob2gxWi9HU2UweWZMWU1vV29sTVRlbG01ZnJhampac2FtbmxJVDJH?= =?utf-8?B?M3hjUjVEdGhsUEwrS3labWxneVJ2bHVCcWJQcGNVRUhJaGxPOWVoNWxySFZZ?= =?utf-8?B?MjBBSUQvTUU2RmlVRXU0QXhrQ2o2TWRpZWtHcWppRmVIS3lwSC9XUmhxRk1Q?= =?utf-8?B?anNkVzdSN1Bvai83bjB3UWNOSkFONERIbkw3THNxZnRoai9JeTE1UHRiZVUz?= =?utf-8?B?WnMraWcvUWpDSkRNSHJqV1Uwa0hyV1dwSmNaTGI3S0hiMnc0TVlNMFhLNjJw?= =?utf-8?B?czI3Ym9saEZZQVd1cURJMWtBdDJWY1ZUNXRwN040R0JiYmYwU252MTc3RlYy?= =?utf-8?B?d1RuL1FOUHU5Y0MrK1FEVmdwbEJsMnp4ZzY2YUtTTm5PY2FCT2pSazVUY3N1?= =?utf-8?B?elh2eU9IcGtYN3hTU3hXeGQ3Z0t5YVRRY2VnWWFEbVRYR05VUG1sWENHVmk5?= =?utf-8?B?V3lxRktUZDR6bXVSWlpZWkVsNS9pNkgrVUUzYWlyamNxR01xcWtxK3hWV2xC?= =?utf-8?B?WFpMNmFHeXV3MzdYT3hNMkplUmI0VERmOE1nSjMrbzFUbVIzVVNqaTlPTU00?= =?utf-8?B?Yi9VRUxXOHZiYmdySVlVMW9lK2hLZnJuY2pxaFNLeVRBRmxZVnM2cTUvUTE4?= =?utf-8?B?czcvTHc5OXFJeWNGSXBtYkEyeUFMMjFiZTZncGxkNU4wYnJNcmRRVUhJUGRh?= =?utf-8?B?V0ZFMFgwZjBUSlppdnluRUdOUzEwU1d4QWVOUXNNc2pEd3Q2UVF2dFNmV1V0?= =?utf-8?B?eWgxanY3eGpXWUZnUE1zVlBQL2QwSXQwaVpRUGZ2WUV0M21Lams4c0NTUmJN?= =?utf-8?B?b0RQRFpmcHFzTERCbUZOMThpRUxCQ3ZQZTdhWkhoSTdKZjEyOWE1djJNV0Vz?= =?utf-8?B?amhhNzJTb1J3NGNOc2VEclZoaVhwR0pTUW9vREQ3UXlzMW16d2lEQUdRcGM2?= =?utf-8?B?dVRLRkI1UE8ybXNGZEQ2dm1jTy9yckxzOWJWdGtJUmlPRmpSZkQ4Y25EU2Js?= =?utf-8?B?UGo5eWFLYmlvK1A4WWx2bmRQRVBFSVhidlh2N3A1TkFVNllDSGhlbUEvSkFW?= =?utf-8?B?TWpUVWwvNGVNTzdVcGpMUWhCTmdSbTN2a080a2M4NkM1ZTJzM1dHS2U3dU5L?= =?utf-8?B?OXc9PQ==?= X-OriginatorOrg: amlogic.com X-MS-Exchange-CrossTenant-Network-Message-Id: 01f63e5c-2c60-44e9-1321-08dccb2172c7 X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB6896.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2024 07:32:50.2187 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0df2add9-25ca-4b3a-acb4-c99ddf0b1114 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: B6BpFzlKrMUqoNbJ+gOZgN7UtF46rYXFDLNSxDfLwSija/syAegx7YT5u5pIuEitbybN5jG5BGDUb1EM5KYhWyBTvyLjCZEV3ovU0+hovt4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEYPR03MB7415 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240902_003308_816292_095D62DC X-CRM114-Status: GOOD ( 26.27 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org SGkgS3J6eXN6dG9mLAogICAgVGhhbmtzIGZvciB5b3VyIHJlcGx5LgoKT24gMjAyNC84LzI2IDE2 OjI3LCBLcnp5c3p0b2YgS296bG93c2tpIHdyb3RlOgo+IFsgRVhURVJOQUwgRU1BSUwgXQo+IAo+ IE9uIDIzLzA4LzIwMjQgMTE6MTksIFhpYW53ZWkgWmhhbyB2aWEgQjQgUmVsYXkgd3JvdGU6Cj4+ IEZyb206IFlpdGluZyBEZW5nIDx5aXRpbmcuZGVuZ0BhbWxvZ2ljLmNvbT4KPj4KPj4gU3VwcG9y dCBmb3IgdGhlIG9uLWNoaXAgUlRDIGZvdW5kIGluIHNvbWUgb2YgQW1sb2dpYydzIFNvQ3Mgc3Vj aCBhcyB0aGUKPj4gQTExM0wyIGFuZCBBMTEzWDIuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFlpdGlu ZyBEZW5nIDx5aXRpbmcuZGVuZ0BhbWxvZ2ljLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogWGlhbndl aSBaaGFvIDx4aWFud2VpLnpoYW9AYW1sb2dpYy5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvcnRj L0tjb25maWcgICAgICAgfCAgMTIgKwo+PiAgIGRyaXZlcnMvcnRjL01ha2VmaWxlICAgICAgfCAg IDEgKwo+PiAgIGRyaXZlcnMvcnRjL3J0Yy1hbWxvZ2ljLmMgfCA1ODkgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgIDMgZmlsZXMgY2hhbmdlZCwgNjAy IGluc2VydGlvbnMoKykKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL0tjb25maWcgYi9k cml2ZXJzL3J0Yy9LY29uZmlnCj4+IGluZGV4IDJhOTViMDU5ODJhZC4uMGRkMDQyNzAxYzNiIDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL3J0Yy9LY29uZmlnCj4+ICsrKyBiL2RyaXZlcnMvcnRjL0tj b25maWcKPj4gQEAgLTIwNDMsNCArMjA0MywxNiBAQCBjb25maWcgUlRDX0RSVl9TU0QyMDJECj4+ ICAgICAgICAgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLCBpZiBz bywgdGhlIG1vZHVsZQo+PiAgICAgICAgICB3aWxsIGJlIGNhbGxlZCAicnRjLXNzZDIweGQiLgo+ Pgo+PiArY29uZmlnIFJUQ19EUlZfQU1MT0dJQwo+PiArICAgICB0cmlzdGF0ZSAiQW1sb2dpYyBS VEMiCj4+ICsgICAgIGRlcGVuZHMgb24gQVJDSF9NRVNPTiB8fCBDT01QSUxFX1RFU1QKPiAKPiBT byB0aGUgdGhpcmQgZHJpdmVyPyBXaGF0IGlzIHdyb25nIHdpdGggZXhpc3Rpbmcgb25lcz8gQW5k IHdoeSB0aGlzIG9uZQo+IGlzIG5hbWVkIHNvIGRpZmZlcmVudGx5Pwo+IAoKVGhpcyBSVEMgaGFy ZHdhcmUgaW5jbHVkZXMgYSB0aW1pbmcgZnVuY3Rpb24gYW5kIGFuIGFsYXJtIGZ1bmN0aW9uLgpC dXQgdGhlIGV4aXN0aW5nIGhhcyBvbmx5IHRpbWluZyBmdW5jdGlvbiwgYWxhcm0gZnVuY3Rpb24g aXMgdXNpbmcgdGhlIApzeXN0ZW0gY2xvY2sgdG8gaW1wbGVtZW50IGEgdmlydHVhbCBhbGFybS4K VGhlICJtZXNvbiIgc3RyaW5nIGlzIG1lYW5pbmdsZXNzLCBpdCBqdXN0IGtlZXBzIGdvaW5nLCBh bmQgbm93IHRoZSBuZXcgCmhhcmR3YXJlIHVzZXMgdGhlIG5vcm1hbCBuYW1pbmcuCgo+PiArICAg ICBzZWxlY3QgUkVHTUFQX01NSU8KPj4gKyAgICAgZGVmYXVsdCB5Cj4+ICsgICAgIGhlbHAKPj4g KyAgICAgICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIFJUQyBi bG9jayBvbiB0aGUKPj4gKyAgICAgICBBbWxvZ2ljIEExMTNMMihBNCkgYW5kIEExMTNYMihBNSkg U29Dcy4KPj4gKwo+PiArICAgICAgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEg bW9kdWxlLiBJZiBzbywgdGhlIG1vZHVsZQo+PiArICAgICAgIHdpbGwgYmUgY2FsbGVkICJydGMt YW1sb2dpYyIuCj4+ICsKPj4gICBlbmRpZiAjIFJUQ19DTEFTUwo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ydGMvTWFrZWZpbGUgYi9kcml2ZXJzL3J0Yy9NYWtlZmlsZQo+PiBpbmRleCAzMDA0ZTM3 MmYyNWYuLmQ0YTU2ZGRiNDI0NiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ydGMvTWFrZWZpbGUK Pj4gKysrIGIvZHJpdmVycy9ydGMvTWFrZWZpbGUKPj4gQEAgLTI2LDYgKzI2LDcgQEAgb2JqLSQo Q09ORklHX1JUQ19EUlZfQUJCNVpFUzMpICAgICAgKz0gcnRjLWFiLWI1emUtczMubwo+PiAgIG9i ai0kKENPTkZJR19SVENfRFJWX0FCRU9aOSkgKz0gcnRjLWFiLWVvejkubwo+PiAgIG9iai0kKENP TkZJR19SVENfRFJWX0FCWDgwWCkgKz0gcnRjLWFieDgweC5vCj4+ICAgb2JqLSQoQ09ORklHX1JU Q19EUlZfQUMxMDApICArPSBydGMtYWMxMDAubwo+PiArb2JqLSQoQ09ORklHX1JUQ19EUlZfQU1M T0dJQykgICAgICAgICs9IHJ0Yy1hbWxvZ2ljLm8KPj4gICBvYmotJChDT05GSUdfUlRDX0RSVl9B Uk1BREEzOFgpICAgICAgKz0gcnRjLWFybWFkYTM4eC5vCj4+ICAgb2JqLSQoQ09ORklHX1JUQ19E UlZfQVMzNzIyKSArPSBydGMtYXMzNzIyLm8KPj4gICBvYmotJChDT05GSUdfUlRDX0RSVl9BU005 MjYwKSAgICAgICAgKz0gcnRjLWFzbTkyNjAubwo+IAo+IAo+PiArCj4+ICtzdGF0aWMgaW50IGFt bF9ydGNfYWRqdXN0X3NlYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBtYXRjaF9jb3VudGVyLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wcywgaW50IGVuYWJsZSkKPj4gK3sK Pj4gKyAgICAgc3RydWN0IGFtbF9ydGNfZGF0YSAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldi0+ cGFyZW50KTsKPj4gKyAgICAgdTMyIHJlZ192YWw7Cj4+ICsKPj4gKyAgICAgaWYgKCFGSUVMRF9G SVQoUlRDX01BVENIX0NPVU5URVIsIG1hdGNoX2NvdW50ZXIpKSB7Cj4+ICsgICAgICAgICAgICAg cHJfZXJyKCIlczogaW52YWxpZCBtYXRjaF9jb3VudGVyXG4iLCBfX2Z1bmNfXyk7Cj4gCj4gTm8s IGRvIG5vdCB1c2UgcHJfLCBidXQgZHJpdmVyIG9uZXMuCj4gCgpXaWxsIGRvLgoKPiAKPj4gKyAg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4gKyAgICAgfQo+PiArCj4+ICsgICAgIHJlZ192 YWwgPSBGSUVMRF9QUkVQKFJUQ19TRUNfQURKVVNUX0NUUkwsIG9wcykKPj4gKyAgICAgICAgICAg ICAgIHwgRklFTERfUFJFUChSVENfTUFUQ0hfQ09VTlRFUiwgbWF0Y2hfY291bnRlcikKPj4gKyAg ICAgICAgICAgICAgIHwgRklFTERfUFJFUChSVENfQURKX1ZBTElELCBlbmFibGUpOwo+PiArICAg ICAvKiBTZXQgc2VjX2FkanVzdF9jdHJsLCBtYXRjaF9jb3VudGVyIGFuZCBWYWxpZCBhZGp1c3Qg Ki8KPj4gKyAgICAgcmVnbWFwX3dyaXRlKHJ0Yy0+bWFwLCBSVENfU0VDX0FESlVTVF9SRUcsIHJl Z192YWwpOwo+PiArCj4+ICsgICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50 IGFtbF9ydGNfc2V0X2NhbGlicmF0aW9uKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIGNhbGlicmF0 aW9uKQo+PiArewo+PiArICAgICBpbnQgY2FsX29wcywgZW5hYmxlLCBtYXRjaF9jb3VudGVyOwo+ PiArICAgICBpbnQgcmV0Owo+PiArCj4+ICsgICAgIG1hdGNoX2NvdW50ZXIgPSBGSUVMRF9HRVQo UlRDX01BVENIX0NPVU5URVIsIGNhbGlicmF0aW9uKTsKPj4gKyAgICAgY2FsX29wcyA9IEZJRUxE X0dFVChSVENfU0VDX0FESlVTVF9DVFJMLCBjYWxpYnJhdGlvbik7Cj4+ICsgICAgIGVuYWJsZSA9 IEZJRUxEX0dFVChSVENfQURKX1ZBTElELCBjYWxpYnJhdGlvbik7Cj4+ICsKPj4gKyAgICAgcmV0 ID0gYW1sX3J0Y19hZGp1c3Rfc2VjKGRldiwgbWF0Y2hfY291bnRlciwgY2FsX29wcywgZW5hYmxl KTsKPj4gKyAgICAgZGV2X2RiZyhkZXYsICIlczogU3VjY2VzcyB0byBzdG9yZSBSVEMgY2FsaWJy YXRpb24gYXR0cmlidXRlXG4iLAo+PiArICAgICAgICAgICAgIF9fZnVuY19fKTsKPj4gKwo+PiAr ICAgICByZXR1cm4gcmV0Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IGFtbF9ydGNfZ2V0X2Nh bGlicmF0aW9uKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyICpjYWxpYnJhdGlvbikKPj4gK3sKPj4g KyAgICAgc3RydWN0IGFtbF9ydGNfZGF0YSAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldi0+cGFy ZW50KTsKPj4gKyAgICAgdTMyIHJlZ192YWw7Cj4+ICsKPj4gKyAgICAgcmVnbWFwX3JlYWQocnRj LT5tYXAsIFJUQ19TRUNfQURKVVNUX1JFRywgJnJlZ192YWwpOwo+PiArICAgICAqY2FsaWJyYXRp b24gPSBGSUVMRF9HRVQoUlRDX1NFQ19BREpVU1RfQ1RSTCB8IFJUQ19NQVRDSF9DT1VOVEVSLCBy ZWdfdmFsKTsKPj4gKyAgICAgLyogQklUIGlzIG9ubHkgVUwgZGVmaW5lZO+8jGFuZCBHRU5NQVNL IGhhcyBubyB0eXBlLCBpdHMnIGRvbm90IHVzZWQgdG9nZXRoZXIgKi8KPj4gKyAgICAgKmNhbGli cmF0aW9uIHw9IEZJRUxEX1BSRVAoUlRDX0FESl9WQUxJRCwgRklFTERfR0VUKFJUQ19BREpfVkFM SUQsIHJlZ192YWwpKTsKPj4gKwo+PiArICAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArLyoq Cj4+ICsgKiBUaGUgY2FsaWJyYXRpb24gdmFsdWUgdHJhbnNmZXJyZWQgZnJvbSBidWYgdGFrZXMg Yml0WzE4OjBdIHRvIHJlcHJlc2VudAo+PiArICogbWF0Y2hfY291bnRlciwgd2hpbGUgdGFrZXMg Yml0WzIwOjE5XSB0byByZXByZXNlbnQgc2VjX2FkanVzdF9jdHJsLCBiaXRbMjNdCj4+ICsgKiB0 byByZXByZXNlbnQgYWRqX3ZhbGlkLiBlbmFibGUvZGlzYWJsZSBzZWNfYWRqdXN0X2N0cmwgYW5k IG1hdGNoX2NvdW50ZXIuCj4+ICsgKiBAYnVmOiBTZXBhcmF0ZSBidWYgdG8gbWF0Y2hfY291bnRl ciwgc2VjX2FkanVzdF9jdHJsIGFuZCBhZGpfdmFsaWQKPj4gKyAqICAgIG1hdGNoX2NvdW50ZXI6 IGJpdFsxODowXSwgdmFsdWUgaXMgMCB+IDB4N2ZmZgo+PiArICogICAgc2VjX2FkanVzdF9jdHJs OiBiaXRbMjA6MTldLCB2YWx1ZSBpcyAwIH4gMi4gMyB0byBpbnNlcnQgYSBzZWNvbmQgb25jZSBl dmVyeQo+PiArICogICAgbWF0Y2hfY291bnRlcisxIHNlY29uZHMsIDIgdG8gc3dhbGxvdyBhIHNl Y29uZCBvbmNlIGV2ZXJ5IG1hdGNoX2NvdW50ZXIrMSBzZWNvbmRzCj4+ICsgKiAgICAwIG9yIDEg dG8gbm8gYWRqdXN0bWVudAo+PiArICogICAgYWRqX3ZhbGlkOiBiaXRbMjNdLCB2YWx1ZSBpcyAw IG9yIDEsIDAgdG8gZGlzYWJsZSBzZWNfYWRqdXN0X2N0cmwgYW5kCj4+ICsgKiAgICBtYXRjaF9j b3VudGVyLCBhbmQgMSB0byBlbmFibGUgdGhlbS4KPiAKPiBNZXNzZWQga2VybmVsZG9jLiBZb3Ug aGF2ZSB3YXJuaW5nIHNoZXJlLiBGaXggaXQuCj4gCgpJIHdpbGwgZGVsZXRlIGl0LgoKPj4gKyAq Lwo+PiArc3RhdGljIHNzaXplX3QgcnRjX2NhbGlicmF0aW9uX3N0b3JlKHN0cnVjdCBkZXZpY2Ug KmRldiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGV2aWNl X2F0dHJpYnV0ZSAqYXR0ciwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKPj4gK3sKPj4gKyAgICAgaW50IHJldHZhbDsK Pj4gKyAgICAgaW50IGNhbGlicmF0aW9uID0gMDsKPj4gKwo+PiArICAgICBpZiAoc3NjYW5mKGJ1 ZiwgIiAlaSAiLCAmY2FsaWJyYXRpb24pICE9IDEpIHsKPj4gKyAgICAgICAgICAgICBkZXZfZXJy KGRldiwgIkZhaWxlZCB0byBzdG9yZSBSVEMgY2FsaWJyYXRpb24gYXR0cmlidXRlXG4iKTsKPiAK PiBXaGVyZSBpcyB0aGUgQUJJIGRvY3VtZW50ZWQ/Cj4gCgpJIHdpbGwgbW92ZSBpdCB0byB0aGUg c3RhbmRhcmQgUlRDIEFQSSB0byBoYW5kbGUgY2FsaWJyYXRpb24uClNvIGhlcmUgd2lsbCBkZWxl dGUgaXQuCgo+PiArICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiArICAgICB9Cj4+ICsg ICAgIHJldHZhbCA9IGFtbF9ydGNfc2V0X2NhbGlicmF0aW9uKGRldiwgY2FsaWJyYXRpb24pOwo+ PiArCj4+ICsgICAgIHJldHVybiByZXR2YWwgPyByZXR2YWwgOiBjb3VudDsKPj4gK30KPj4gKwo+ PiArc3RhdGljIHNzaXplX3QgcnRjX2NhbGlicmF0aW9uX3Nob3coc3RydWN0IGRldmljZSAqZGV2 LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKPj4gK3sKPj4gKyAgICAgaW50ICByZXR2YWwgPSAwOwo+ PiArICAgICB1MzIgIGNhbGlicmF0aW9uID0gMDsKPj4gKwo+PiArICAgICByZXR2YWwgPSBhbWxf cnRjX2dldF9jYWxpYnJhdGlvbihkZXYsICZjYWxpYnJhdGlvbik7Cj4+ICsgICAgIGlmIChyZXR2 YWwgPCAwKSB7Cj4+ICsgICAgICAgICAgICAgZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVhZCBS VEMgY2FsaWJyYXRpb24gYXR0cmlidXRlXG4iKTsKPj4gKyAgICAgICAgICAgICBzcHJpbnRmKGJ1 ZiwgIjBcbiIpOwo+PiArICAgICAgICAgICAgIHJldHVybiByZXR2YWw7Cj4+ICsgICAgIH0KPj4g Kwo+PiArICAgICByZXR1cm4gc3ByaW50ZihidWYsICIweCV4XG4iLCBjYWxpYnJhdGlvbik7Cj4+ ICt9Cj4+ICtzdGF0aWMgREVWSUNFX0FUVFJfUlcocnRjX2NhbGlicmF0aW9uKTsKPiAKPiBEb2N1 bWVudCB0aGUgQUJJLgo+IAoKSSB3aWxsIG1vdmUgaXQgdG8gdGhlIHN0YW5kYXJkIFJUQyBBUEkg dG8gaGFuZGxlIGNhbGlicmF0aW9uLgpTbyBoZXJlIHdpbGwgZGVsZXRlIGl0LgoKPj4gKwo+PiAr c3RhdGljIGludCBydGNfc2V0X2RpdjI1Nl9hZGp1c3Qoc3RydWN0IGRldmljZSAqZGV2LCB1MzIg KnZhbHVlKQo+PiArewo+PiArICAgICBzdHJ1Y3QgYW1sX3J0Y19kYXRhICpydGMgPSBkZXZfZ2V0 X2RydmRhdGEoZGV2LT5wYXJlbnQpOwo+PiArICAgICB1MzIgZGl2MjU2X2FkajsKPj4gKwo+PiAr ICAgICBkaXYyNTZfYWRqID0gRklFTERfUFJFUChSVENfRElWMjU2X0FESl9EU1IgfCBSVENfRElW MjU2X0FESl9WQUwsICp2YWx1ZSk7Cj4+ICsgICAgIC8qCj4+ICsgICAgICAqIEFPX1JUQ19TRUNf QURKVVNUX1JFRyBiaXQgMjQgaW5zZXJ0L3JlbW92ZSgxLzApIGEgZGl2MjU2IGN5Y2xlLAo+PiAr ICAgICAgKiBiaXQgMjUgdmFsaWQvaW52YWxpZCgxLzApIGRpdjI1Nl9hZGpfdmFsCj4+ICsgICAg ICAqLwo+PiArICAgICByZWdtYXBfd3JpdGVfYml0cyhydGMtPm1hcCwgUlRDX1NFQ19BREpVU1Rf UkVHLAo+PiArICAgICAgICAgICAgICAgICAgICAgICBSVENfRElWMjU2X0FESl9EU1IgfCBSVENf RElWMjU2X0FESl9WQUwsIGRpdjI1Nl9hZGopOwo+PiArICAgICAvKiBydGMgbmVlZCBhYm91dCAz MG1zIHRvIGFkanVzdCBpdHMgdGltZSBhZnRlciB3cml0dGVuICovCj4+ICsgICAgIG1kZWxheSgz MCk7Cj4+ICsKPj4gKyAgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgcnRj X2dldF9kaXYyNTZfYWRqdXN0KHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyICp2YWx1ZSkKPj4gK3sK Pj4gKyAgICAgc3RydWN0IGFtbF9ydGNfZGF0YSAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldi0+ cGFyZW50KTsKPj4gKyAgICAgdTMyIHJlZ192YWw7Cj4+ICsKPj4gKyAgICAgcmVnbWFwX3JlYWQo cnRjLT5tYXAsIFJUQ19TRUNfQURKVVNUX1JFRywgJnJlZ192YWwpOwo+PiArICAgICAqdmFsdWUg PSBGSUVMRF9HRVQoUlRDX0RJVjI1Nl9BREpfRFNSIHwgUlRDX0RJVjI1Nl9BREpfVkFMLCByZWdf dmFsKTsKPj4gKwo+PiArICAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArLyoqCj4+ICsgKiBk aXYyNTYgYWRqdXN0IGZ1bmN0aW9uIGlzIGNvbnRyb2xsZWQgdXNpbmcgYml0WzI0XSBhbmQgYml0 WzI1XS4KPj4gKyAqIHRyYW5zZmVycmVkIGJ1ZiB0YWtlcyBiaXRbMF0gdG8gcmVwcmVzZW50IGRp djI1NiBhZGogdmFsLCBiaXRbMV0KPj4gKyAqIHRvIHJlcHJlc2VudCBkaXYyNTYgYWRqIGVuYWJs ZS9kaXNhYmxlLiBkaXYyNTYgY3ljbGUgbWVhbnMgdGhhdCBhZGp1c3QKPj4gKyAqIDEvMzI3Njgv MjU2IG9uY2UgYnkgd3JpdHRlbiBvbmNlLCBpdCdzIHZhbCBpcyBlcXVhbCB0byAxLzEyOHMKPj4g KyAqIEBidWY6IDM6IGVuYWJsZSBkaXYyNTYgYWRqdXN0IGFuZCBpbnNlcnQgYSBkaXYyNTYgY3lj bGUKPj4gKyAqICAgIDI6IGVuYWJsZSBkaXYyNTYgYWRqdXN0IGFuZCByZW1vdmUgYSBkaXYyNTYg Y3ljbGUKPj4gKyAqICAgIDEgb3IgMDogZGlzYWJsZSBkaXYyNTYgYWRqdXN0Cj4gCj4gQWdhaW4g aW5jb3JyZWN0IGtlcm5lbGRvYy4KPgoKVGhpcyBpcyBub3QgdXNlZCBmdW5jdGlvbnMsIEkgd2ls bCBkZWxldGUgaXQuCgo+PiArICovCj4+ICtzdGF0aWMgc3NpemVfdCBydGNfZGl2MjU2X2FkanVz dF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQo+ PiArewo+PiArICAgICBpbnQgcmV0dmFsOwo+PiArICAgICB1MzIgdmFsdWUgPSAwOwo+PiArCj4+ ICsgICAgIGlmIChzc2NhbmYoYnVmLCAiICVpICIsICZ2YWx1ZSkgIT0gMSkgewo+PiArICAgICAg ICAgICAgIGRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHN0b3JlIFJUQyBkaXYyNTYgYWRqdXN0IGF0 dHJpYnV0ZVxuIik7Cj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsgICAgIH0K Pj4gKyAgICAgcmV0dmFsID0gcnRjX3NldF9kaXYyNTZfYWRqdXN0KGRldiwgJnZhbHVlKTsKPj4g Kwo+PiArICAgICByZXR1cm4gcmV0dmFsID8gcmV0dmFsIDogY291bnQ7Cj4+ICt9Cj4+ICsKPj4g K3N0YXRpYyBzc2l6ZV90IHJ0Y19kaXYyNTZfYWRqdXN0X3Nob3coc3RydWN0IGRldmljZSAqZGV2 LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlX2F0 dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQo+PiArewo+PiArICAgICBpbnQgcmV0dmFsID0gMDsK Pj4gKyAgICAgdTMyIHZhbHVlID0gMDsKPj4gKwo+PiArICAgICByZXR2YWwgPSBydGNfZ2V0X2Rp djI1Nl9hZGp1c3QoZGV2LCAmdmFsdWUpOwo+PiArICAgICBpZiAocmV0dmFsIDwgMCkgewo+PiAr ICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlYWQgUlRDIGRpdjI1NiBhZGp1 c3QgYXR0cmlidXRlXG4iKTsKPj4gKyAgICAgICAgICAgICBzcHJpbnRmKGJ1ZiwgIjBcbiIpOwo+ PiArICAgICAgICAgICAgIHJldHVybiByZXR2YWw7Cj4+ICsgICAgIH0KPj4gKwo+PiArICAgICBy ZXR1cm4gc3ByaW50ZihidWYsICIweCV4XG4iLCB2YWx1ZSk7Cj4+ICt9Cj4+ICtzdGF0aWMgREVW SUNFX0FUVFJfUlcocnRjX2RpdjI1Nl9hZGp1c3QpOwo+PiArCj4+ICtzdGF0aWMgc3RydWN0IGF0 dHJpYnV0ZSAqYW1sX3J0Y19hdHRyc1tdID0gewo+PiArICAgICAmZGV2X2F0dHJfcnRjX2NhbGli cmF0aW9uLmF0dHIsCj4+ICsgICAgICZkZXZfYXR0cl9ydGNfZGl2MjU2X2FkanVzdC5hdHRyLAo+ PiArICAgICBOVUxMLAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1 dGVfZ3JvdXAgYW1sX3J0Y19zeXNmc19maWxlcyA9IHsKPj4gKyAgICAgLmF0dHJzICA9IGFtbF9y dGNfYXR0cnMsCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgdm9pZCBhbWxfcnRjX2luaXQoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgYW1sX3J0Y19kYXRhICpydGMpCj4+ICt7Cj4+ICsgICAgIHUz MiByZWdfdmFsOwo+PiArICAgICB1MzIgcnRjX2VuYWJsZTsKPj4gKwo+PiArICAgICByZWdtYXBf cmVhZChydGMtPm1hcCwgUlRDX0NUUkwsICZyZWdfdmFsKTsKPj4gKyAgICAgcnRjX2VuYWJsZSA9 IEZJRUxEX0dFVChSVENfRU5BQkxFLCByZWdfdmFsKTsKPj4gKyAgICAgaWYgKCFydGNfZW5hYmxl KSB7Cj4+ICsgICAgICAgICAgICAgaWYgKGNsa19nZXRfcmF0ZShydGMtPnNjbGspID09IE9TQ18y NE0pIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgIC8qIHNlbGVjdCAyNE0gb3NjaWxsYXRvciAq Lwo+PiArICAgICAgICAgICAgICAgICAgICAgcmVnbWFwX3VwZGF0ZV9iaXRzKHJ0Yy0+bWFwLCBS VENfQ1RSTCwgUlRDX09TQ19TRUwsIFJUQ19PU0NfU0VMKTsKPj4gKwo+PiArICAgICAgICAgICAg ICAgICAgICAgLyoKPj4gKyAgICAgICAgICAgICAgICAgICAgICAqIFNldCBSVEMgb3NjaWxsYXRv ciB0byBmcmVxX291dCB0byBmcmVxX2luLygoTjAqTTArTjEqTTEpLyhNMCtNMSkpCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgKiBFbmFibGUgY2xvY2tfaW4gZ2F0ZSBvZiBvc2NpbGxhdG9yIDI0 TUh6Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgKiBTZXQgTjAgdG8gNzMzLCBOMSB0byA3MzIK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAqLwo+PiArICAgICAgICAgICAgICAgICAgICAgcmVn X3ZhbCA9IEZJRUxEX1BSRVAoUlRDX09TQ0lOX0lOX0VOLCAxKQo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgRklFTERfUFJFUChSVENfT1NDSU5fT1VUX0NGRywgMSkKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEZJRUxEX1BSRVAoUlRDX09TQ0lOX09VVF9O ME0wLCBSVENfT1NDSU5fT1VUXzMyS19OMCkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IEZJRUxEX1BSRVAoUlRDX09TQ0lOX09VVF9OMU0xLCBSVENfT1NDSU5fT1VUXzMyS19O MSk7Cj4+ICsgICAgICAgICAgICAgICAgICAgICByZWdtYXBfd3JpdGVfYml0cyhydGMtPm1hcCwg UlRDX09TQ0lOX0NUUkwwLCBSVENfT1NDSU5fSU5fRU4KPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgUlRDX09TQ0lOX09VVF9DRkcgfCBSVENfT1NDSU5fT1VUX04w TTAKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUlRDX09TQ0lO X09VVF9OMU0xLCByZWdfdmFsKTsKPj4gKwo+PiArICAgICAgICAgICAgICAgICAgICAgLyogU2V0 IE0wIHRvIDIsIE0xIHRvIDMsIHNvIGZyZXFfb3V0ID0gMzI3NjggSHoqLwo+PiArICAgICAgICAg ICAgICAgICAgICAgcmVnX3ZhbCA9IEZJRUxEX1BSRVAoUlRDX09TQ0lOX09VVF9OME0wLCBSVENf T1NDSU5fT1VUXzMyS19NMCkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEZJ RUxEX1BSRVAoUlRDX09TQ0lOX09VVF9OMU0xLCBSVENfT1NDSU5fT1VUXzMyS19NMSk7Cj4+ICsg ICAgICAgICAgICAgICAgICAgICByZWdtYXBfd3JpdGVfYml0cyhydGMtPm1hcCwgUlRDX09TQ0lO X0NUUkwxLCBSVENfT1NDSU5fT1VUX04wTTAKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgUlRDX09TQ0lOX09VVF9OMU0xLCByZWdfdmFsKTsKPj4gKyAgICAgICAg ICAgICB9IGVsc2Ugewo+PiArICAgICAgICAgICAgICAgICAgICAgLyogc2VsZWN0IDMySyBvc2Np bGxhdG9yICovCj4+ICsgICAgICAgICAgICAgICAgICAgICByZWdtYXBfd3JpdGVfYml0cyhydGMt Pm1hcCwgUlRDX0NUUkwsIFJUQ19PU0NfU0VMLCAwKTsKPj4gKyAgICAgICAgICAgICB9Cj4+ICsg ICAgICAgICAgICAgLyogRW5hYmxlIFJUQyAqLwo+PiArICAgICAgICAgICAgIHJlZ21hcF93cml0 ZV9iaXRzKHJ0Yy0+bWFwLCBSVENfQ1RSTCwgUlRDX0VOQUJMRSwgUlRDX0VOQUJMRSk7Cj4+ICsg ICAgICAgICAgICAgdXNsZWVwX3JhbmdlKDEwMCwgMjAwKTsKPj4gKyAgICAgfQo+PiArICAgICBy ZWdtYXBfd3JpdGVfYml0cyhydGMtPm1hcCwgUlRDX0lOVF9NQVNLLAo+PiArICAgICAgICAgICAg ICAgICAgICAgICBSVENfQUxSTTBfSVJRX01TSywgUlRDX0FMUk0wX0lSUV9NU0spOwo+PiArICAg ICByZWdtYXBfd3JpdGVfYml0cyhydGMtPm1hcCwgUlRDX0NUUkwsIFJUQ19BTFJNMF9FTiwgMCk7 Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgYW1sX3J0Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+PiArewo+PiArICAgICBzdHJ1Y3QgYW1sX3J0Y19kYXRhICpydGM7Cj4+ ICsgICAgIHZvaWQgX19pb21lbSAqYmFzZTsKPj4gKyAgICAgc3RydWN0IGNsayAqY29yZV9jbGs7 Cj4+ICsgICAgIGludCByZXQgPSAwOwo+PiArCj4+ICsgICAgIHJ0YyA9IGRldm1fa3phbGxvYygm cGRldi0+ZGV2LCBzaXplb2YoKnJ0YyksIEdGUF9LRVJORUwpOwo+PiArICAgICBpZiAoIXJ0YykK Pj4gKyAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArICAgICBydGMtPmNvbmZp ZyA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsKPj4gKyAgICAgaWYgKCFy dGMtPmNvbmZpZykKPj4gKyAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKPj4gKwo+PiArICAg ICBiYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwo+PiArICAg ICBpZiAoSVNfRVJSKGJhc2UpKSB7Cj4+ICsgICAgICAgICAgICAgZGV2X2VycigmcGRldi0+ZGV2 LCAicmVzb3VyY2UgaW9yZW1hcCBmYWlsZWRcbiIpOwo+PiArICAgICAgICAgICAgIHJldHVybiBQ VFJfRVJSKGJhc2UpOwo+PiArICAgICB9Cj4+ICsKPj4gKyAgICAgcnRjLT5tYXAgPSBkZXZtX3Jl Z21hcF9pbml0X21taW8oJnBkZXYtPmRldiwgYmFzZSwgJmFtbF9ydGNfcmVnbWFwX2NvbmZpZyk7 Cj4+ICsgICAgIGlmIChJU19FUlIocnRjLT5tYXApKSB7Cj4+ICsgICAgICAgICAgICAgZGV2X2Vy cigmcGRldi0+ZGV2LCAicmVnbWFwIGluaXQgZmFpbGVkXG4iKTsKPj4gKyAgICAgICAgICAgICBy ZXR1cm4gUFRSX0VSUihydGMtPm1hcCk7Cj4+ICsgICAgIH0KPj4gKwo+PiArICAgICBydGMtPmly cSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Cj4+ICsgICAgIGlmIChydGMtPmlycSA8IDAp Cj4+ICsgICAgICAgICAgICAgcmV0dXJuIHJ0Yy0+aXJxOwo+PiArCj4+ICsgICAgIHJ0Yy0+c2Ns ayA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCAicnRjX29zYyIpOwo+IAo+IENsb2NrIG5hbWUg c2hvdWxkIGJlOiAib3NjIgo+IAoKV2lsbCBkby4KCj4+ICsgICAgIGlmIChJU19FUlIocnRjLT5z Y2xrKSkKPj4gKyAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihydGMtPnNjbGspOwo+PiArICAg ICBpZiAoY2xrX2dldF9yYXRlKHJ0Yy0+c2NsaykgIT0gT1NDXzMySyAmJiBjbGtfZ2V0X3JhdGUo cnRjLT5zY2xrKSAhPSBPU0NfMjRNKSB7Cj4+ICsgICAgICAgICAgICAgZGV2X2VycigmcGRldi0+ ZGV2LCAiSW52YWxpZCBjbG9jayBjb25maWd1cmF0aW9uXG4iKTsKPj4gKyAgICAgICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKPj4gKyAgICAgfQo+PiArCj4+ICsgICAgIGNvcmVfY2xrID0gZGV2bV9j bGtfZ2V0KCZwZGV2LT5kZXYsICJydGNfc3lzX2NsayIpOwo+IAo+IENsb2NrIG5hbWU6ICJzeXMi CgpXaWxsIGRvLgoKPiAKPj4gKyAgICAgaWYgKElTX0VSUihjb3JlX2NsaykpIHsKPj4gKyAgICAg ICAgICAgICBkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IHJ0YyBzeXMgY2xrXG4i KTsKPiAKPiBTeW50YXggaXMgcmV0dXJuIGRldl9lcnJfcHJvYmUuCj4gCgpXaWxsIGRvLgoKPj4g KyAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihjb3JlX2Nsayk7Cj4+ICsgICAgIH0KPj4gKyAg ICAgY2xrX3ByZXBhcmVfZW5hYmxlKGNvcmVfY2xrKTsKPj4gKwo+PiArICAgICBhbWxfcnRjX2lu aXQoJnBkZXYtPmRldiwgcnRjKTsKPj4gKwo+PiArICAgICBkZXZpY2VfaW5pdF93YWtldXAoJnBk ZXYtPmRldiwgMSk7Cj4+ICsgICAgIHBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHJ0Yyk7Cj4+ ICsKPj4gKyAgICAgcnRjLT5ydGNfZGV2ID0gZGV2bV9ydGNfYWxsb2NhdGVfZGV2aWNlKCZwZGV2 LT5kZXYpOwo+PiArICAgICBpZiAoSVNfRVJSKHJ0Yy0+cnRjX2RldikpCj4+ICsgICAgICAgICAg ICAgcmV0dXJuIFBUUl9FUlIocnRjLT5ydGNfZGV2KTsKPj4gKwo+PiArICAgICByZXQgPSBkZXZt X3JlcXVlc3RfaXJxKCZwZGV2LT5kZXYsIHJ0Yy0+aXJxLCBhbWxfcnRjX2hhbmRsZXIsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRRl9PTkVTSE9ULCAiYW1sLXJ0YyBhbGFybSIs IHJ0Yyk7Cj4+ICsgICAgIGlmIChyZXQpIHsKPj4gKyAgICAgICAgICAgICBkZXZfZXJyKCZwZGV2 LT5kZXYsICJJUlElZCByZXF1ZXN0IGZhaWxlZCwgcmV0ID0gJWRcbiIsCj4+ICsgICAgICAgICAg ICAgICAgICAgICBydGMtPmlycSwgcmV0KTsKPiAKPiBZb3VyIGNvZGUgaXMgYnVnZ3kuIFlvdSBs ZWF2ZSB3aXRoIHByZXBhcmVkIGNsb2NrLgo+IAo+IFVzZSBkZXZtX2Nsa19nZXRfZW5hYmxlZCB3 aGVyZSBhcHBsaWNhYmxlLgo+IAoKV2lsbCBmaXggaXQuCgo+PiArICAgICAgICAgICAgIHJldHVy biByZXQ7Cj4+ICsgICAgIH0KPj4gKwo+PiArICAgICBydGMtPnJ0Y19kZXYtPm9wcyA9ICZhbWxf cnRjX29wczsKPj4gKyAgICAgcnRjLT5ydGNfZGV2LT5yYW5nZV9taW4gPSAwOwo+PiArICAgICBy dGMtPnJ0Y19kZXYtPnJhbmdlX21heCA9IFUzMl9NQVg7Cj4+ICsKPj4gKyAgICAgcmV0ID0gcnRj X2FkZF9ncm91cChydGMtPnJ0Y19kZXYsICZhbWxfcnRjX3N5c2ZzX2ZpbGVzKTsKPj4gKyAgICAg aWYgKHJldCkgewo+PiArICAgICAgICAgICAgIGRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0 byBjcmVhdGUgc3lzZnMgZ3JvdXA6ICVkXG4iLCByZXQpOwo+PiArICAgICAgICAgICAgIHJldHVy biByZXQ7Cj4+ICsgICAgIH0KPj4gKwo+PiArICAgICByZXR1cm4gZGV2bV9ydGNfcmVnaXN0ZXJf ZGV2aWNlKHJ0Yy0+cnRjX2Rldik7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgYW1sX3J0Y19z dXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPj4gK3sKPj4gKyAgICAgc3RydWN0IGFtbF9ydGNf ZGF0YSAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+ICsKPj4gKyAgICAgaWYgKGRldmlj ZV9tYXlfd2FrZXVwKGRldikpCj4+ICsgICAgICAgICAgICAgZW5hYmxlX2lycV93YWtlKHJ0Yy0+ aXJxKTsKPj4gKwo+PiArICAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBh bWxfcnRjX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+ICt7Cj4+ICsgICAgIHN0cnVjdCBh bWxfcnRjX2RhdGEgKnJ0YyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+PiArCj4+ICsgICAgIGlm IChkZXZpY2VfbWF5X3dha2V1cChkZXYpKQo+PiArICAgICAgICAgICAgIGRpc2FibGVfaXJxX3dh a2UocnRjLT5pcnEpOwo+PiArCj4+ICsgICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4gCj4gV2hl cmUgaXMgdGhlIHJlbW92ZSB0byBjbGVhbnVwPwo+IAoKV2lsbCBhZGQgcmVtb3ZlIGZ1bmN0aW9u LgoKPj4gK3N0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhhbWxfcnRjX3BtX29wcywKPj4gKyAgICAg ICAgICAgICAgICAgICAgICBhbWxfcnRjX3N1c3BlbmQsIGFtbF9ydGNfcmVzdW1lKTsKPj4gKwo+ PiArc3RhdGljIGNvbnN0IHN0cnVjdCBhbWxfcnRjX2NvbmZpZyBhNV9ydGNfY29uZmlnID0gewo+ PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBhbWxfcnRjX2NvbmZpZyBhNF9ydGNf Y29uZmlnID0gewo+PiArICAgICAuZ3JheV9zdG9yZWQgPSB0cnVlLAo+PiArfTsKPj4gKwo+PiAr c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYW1sX3J0Y19kZXZpY2VfaWRbXSA9IHsK Pj4gKyAgICAgewo+PiArICAgICAgICAgICAgIC5jb21wYXRpYmxlID0gImFtbG9naWMsYTQtcnRj IiwKPj4gKyAgICAgICAgICAgICAuZGF0YSA9ICZhNF9ydGNfY29uZmlnLAo+PiArICAgICB9LAo+ PiArICAgICB7Cj4+ICsgICAgICAgICAgICAgLmNvbXBhdGlibGUgPSAiYW1sb2dpYyxhNS1ydGMi LAo+PiArICAgICAgICAgICAgIC5kYXRhID0gJmE1X3J0Y19jb25maWcsCj4+ICsgICAgIH0sCj4+ ICt9Owo+PiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYW1sX3J0Y19kZXZpY2VfaWQpOwo+PiAr Cj4+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhbWxfcnRjX2RyaXZlciA9IHsKPj4g KyAgICAgLnByb2JlID0gYW1sX3J0Y19wcm9iZSwKPj4gKyAgICAgLmRyaXZlciA9IHsKPj4gKyAg ICAgICAgICAgICAubmFtZSA9ICJhbWwtcnRjIiwKPj4gKyAgICAgICAgICAgICAub2ZfbWF0Y2hf dGFibGUgPSBvZl9tYXRjaF9wdHIoYW1sX3J0Y19kZXZpY2VfaWQpLAo+IAo+IERyb3Agb2ZfbWF0 Y2hfcHRyLiBZb3UgaGF2ZSBhIHdhcm5pbmcgaGVyZS4KPiAKCldpbGwgZG8uCgo+PiArICAgICAg ICAgICAgIC5wbSA9ICZhbWxfcnRjX3BtX29wcywKPj4gKyAgICAgfSwKPiBCZXN0IHJlZ2FyZHMs Cj4gS3J6eXN6dG9mCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxvZ2ljQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hbWxvZ2ljCg==