From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from FR6P281CU001.outbound.protection.outlook.com (mail-germanywestcentralazon11020143.outbound.protection.outlook.com [52.101.171.143]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 31F6427A44C; Fri, 11 Jul 2025 11:25:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.171.143 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752233107; cv=fail; b=ceXxkxvQF5Y/II6JWAkc9QHN+z+or5g3NZyWExmCLSdcw8GbVStxcDlTCEny7ts8rYd58JFPXLsebtDJtCVwrA05gUnPgwoiBsVqpXprrpPVtM9J6ceqMAKcYOLNaij29MwNVoJxs4xQ1513qr16A3PkV1eCt65L2lMjYZT1RqI= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752233107; c=relaxed/simple; bh=IiV701co5pSQSJdWEk2bs6hjZ4ikE52oBa7+EJhuyF4=; h=From:To:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=Ak9jNEa+SOEmxcdYqOVd6Xj+IU6g26RGMj6W9HRVKt/S/PRLSNz/yJ4FKuUKHV9lc7r6PKl2WPyQQCY6gTvMWTjKi4YfLL0qbeiLXc88rfQjqME9ZDKd5yYqMhIb7fwTPEt2aL6AnzJzJP+DLibGGrDVJN6BPjb2VRypTfIt074= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=adtran.com; spf=pass smtp.mailfrom=adtran.com; dkim=pass (1024-bit key) header.d=adtran.com header.i=@adtran.com header.b=kWLWnHxm; arc=fail smtp.client-ip=52.101.171.143 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=adtran.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=adtran.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=adtran.com header.i=@adtran.com header.b="kWLWnHxm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fZmMWrY7QujbrlpK2DYIPu9ci02epBHttCeE7Yy4YrXrThituosATTwJarv9ecqu5r3BzbaTotuBq++gw6wsOr+PetGTDlIaNXAQ9wRtZ83U+9no8brWxe5tUojOeqYXu+cIozx4lE4gvMqJORqLFaD9Wv6TOpf8tLqSQPACH8Wj0x4Z+5DrlbKHhHCZBGreqToi7q51Pl5LCMxB7Ojgn2DW5jEoULgzvj09TqBe5dATaVvgEAxlbaGRj+bQ0khAz2on7XQqCqjBj9b/th+Q3whxfh/JuvyifDMnbcn859qClqBCooRv1L3ZTi7Mbrqk+gNlmtcWDbTqn3MmEX/fZw== 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=IiV701co5pSQSJdWEk2bs6hjZ4ikE52oBa7+EJhuyF4=; b=eBnZ76lLV2OHX9/ydWaHmbTGZYwpITghzJD4ByJQl6FS5udbatdmbUCuGKFN+NMtVbGjNkpMnzQAQMTaDuodC6KrmfpwnFtJnUOcm748JxDfOHyxMhuy7kk0PGaTOl0lfQPUXSnLo1DZ/p95rFjXfsHX0kskGR2rGdzy5ugyFPN47T8lYoyfYoAsels0jqZLsn1MNeuLhLJWr8MwrFKRVtvddtJZEpiSD6HvvnOsBHMHJGBapBluY4ZZNNTtuwvtNgmeJM1HZS3TXLca6v9XZPY0aekDAJ9To4wCd+4N/3KbP/xxBelHPv8fNpN9+eMUTvVHSXJKwLszchw21MYKLA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=adtran.com; dmarc=pass action=none header.from=adtran.com; dkim=pass header.d=adtran.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adtran.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IiV701co5pSQSJdWEk2bs6hjZ4ikE52oBa7+EJhuyF4=; b=kWLWnHxmczcXLDvDtH5iMfiE4UpH8PQA+5LMvdXLr2rBB1/VcvWRZEtdqOELyZalfjjr+xtXsUJFQruobtPPkgup6nljjI0mEzjHw8ZrPwH4lrqdzaw+i48vEUZFweqfthdyIFxPpSyod4HncbB+AQc4TPgwvJ6khemdrnaqKDo= Received: from BE1PPF3198F3A62.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b18::626) by BE0P281MB0050.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.25; Fri, 11 Jul 2025 11:25:02 +0000 Received: from BE1PPF3198F3A62.DEUP281.PROD.OUTLOOK.COM ([fe80::8c10:5391:a013:30f2]) by BE1PPF3198F3A62.DEUP281.PROD.OUTLOOK.COM ([fe80::8c10:5391:a013:30f2%8]) with mapi id 15.20.8922.023; Fri, 11 Jul 2025 11:25:02 +0000 From: Piotr Kubik To: Oleksij Rempel , Kory Maincent , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , "netdev@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: [PATCH net-next v5 2/2] net: pse-pd: Add Si3474 PSE controller driver Thread-Topic: [PATCH net-next v5 2/2] net: pse-pd: Add Si3474 PSE controller driver Thread-Index: AQHb8lZx2L5ihDfVaU+vjlhkvWLb2A== Date: Fri, 11 Jul 2025 11:25:02 +0000 Message-ID: References: In-Reply-To: Accept-Language: pl-PL, en-US Content-Language: pl-PL X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=adtran.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BE1PPF3198F3A62:EE_|BE0P281MB0050:EE_ x-ms-office365-filtering-correlation-id: 592baa82-c160-4c42-b102-08ddc06d941b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014|921020|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?ZEtHd1hHYk95U0d6M1U5Q0d6cGg0WVdlcjdGZDJqNlFnZXVLSVJ5emlRaFBi?= =?utf-8?B?bVh4bEdKcHRnckdSK3NqZ1k1dFdZWWRGZzU5VjdlbjFrNXIzRTJkZVZ1MDhq?= =?utf-8?B?MzRMUGU5U1VoRVZXcktCbDVFMGlpYXI2WDhiTVpRaktXYmFmS2p2YjB4VWp6?= =?utf-8?B?bFlEQ3plNU81eEVKU0JURERrUW51dFpUQnB6Q0xSM1lQdGdzQWwxMWtmbWxz?= =?utf-8?B?ZWhOU3M5anhuSzZ6V3poTFdJbE1wZTRwYmRyQWp3NWw5T0hnV2RPYXplN2Vk?= =?utf-8?B?V0FVcmR1SC9IZUJ6aWFhK21HUHVMZlFYOGVkVmJ3VDc5VWNqVlE3b20zdWsw?= =?utf-8?B?ckV3cVhGSHNIRVdpcnhiQjhwUll6emxndlFaTThDUHFZbWE4VEdZWlZ5eG5y?= =?utf-8?B?ZGtSbG82V0dldVJHbjBCQ1l6K2FVNmUwWHFGZVZhQThWZVEzWndIb28yaXlT?= =?utf-8?B?SVBiR2lCY2t1eC9vQ01oeWhOYS83Q3d3ajFidllDNS8vK2ZVaFgxRlZYbVVT?= =?utf-8?B?N1ZQVi9WVXRvZXpjWWxNZWQvU3JpaVpxWnlRVVhHbDdQTytlUkxOUUZnbkox?= =?utf-8?B?eHFXYkFvTit4dHUyaE13SmZqWWNqVnozWGVLUjB4Nkc3WUM0YXJpMElIeEdJ?= =?utf-8?B?UTJqNHBJQXNuVHNxcFVnNG9TaDM3OEdxVzV1RkhjWnlKOHNlT29lNzJod084?= =?utf-8?B?TjhKbStnNVdyVDh6THF5VkVHWnpZa2F3dkt1cHZrZGxhWGlZNFM3U20ybENI?= =?utf-8?B?WGdxaU9Qd0REL0o3ZHlOVVBINnd2cDBUNE5EQlRuY0prL1gzY1NtZURGYkVs?= =?utf-8?B?cDZvSGVkRTBGM3h2cGFaYWJmVW9yK3FIVXVvVWg4Vm9FQmg4K1NRSVltYmhy?= =?utf-8?B?WjJpVHh6QzRVbWs5eHMrRnhkWlo1MFQ3NVp1Z1BsNDJ1L21pOHYvR2ViZUNG?= =?utf-8?B?VVZ6aFJadTZhbmsvWjVzbjkzSzBvWUpacXBtTDRhY2FHZmQrOVdUcnBDa1V4?= =?utf-8?B?alBvQmJzODBVOHpnNjAzNDFWanJ2WjJYSmNpZ2VtUVFjWFBPdEtwQWlkUmNQ?= =?utf-8?B?YWk1Ni9xQ250V1B2NlA0akFRSGN1MkNUZXloaVYwNFU1alZpMkdSbkpsMzlR?= =?utf-8?B?TGp3RzVCdXk1WWw1aDYyNGV3aHl1RHNtWEZFbHBNb29pY3JJOUlGOXRFWmt4?= =?utf-8?B?REM5TWNwYXlNY2FuZllZMGU5Q2M5NndkQzB3RGZwakJVZm1tejA2TWdUR3dE?= =?utf-8?B?cHNKZ3QvU3N5Unc5Y2sxOVgwbWcyQ0cwMUw3MmFraUpyQkJNTEpNZUpqTmlx?= =?utf-8?B?VCtwMjNZZDZpVDhSSnFaQXJTOG5oZFZkNGVaLy85R1BuWDlXT0prTFF6VEQ0?= =?utf-8?B?eWJGOXhoZlF6MHR5ZDgzamZyZkdmdGx6YzBmUFZpQTBoVnh2Uzk0aE5IdkE0?= =?utf-8?B?eTYwNTlGcmEybFBYQmFDN1BsTTljTTNuSWFFUDBSNEU0YUxNKzU2Y2xMTEdu?= =?utf-8?B?OVdqTXlqNEFGOFdyMnhZT09tanVXSXlBbUpPT3FzdndVY2RzM0xocTdTdTlY?= =?utf-8?B?QkxRUlUxSTRsR2FVNDJodmMwdjVON1JJOHlQOFV0NnJmY0xHSUp4bVIrcUhE?= =?utf-8?B?SC9TZlZmMi9aekowNi9TNVU1RU53dkU5VmhWUGNvNnh4dkVMMmx3cmY0Q09m?= =?utf-8?B?citPSll4Mk9vQTV0Ri9HZDVLcWllK1ZWSDlkR0lETGRwSDBjd2ZGZWhKN3RZ?= =?utf-8?B?bTMwd3JFQnBxZy9ENGtSRXdJdFpHbTZWVkRUVUgrVW9tcE9UY2xjS2tNc0Ew?= =?utf-8?B?cnFrM2JRc2lYajhrNGFwVHh2dGlJTlhWVWRjUmcyZnR0WjZiTlNTUWhaTTVS?= =?utf-8?B?a285VGJLTmRKNE1rQm9zRFBOVTgyWFBIdlJQU2xPSkpPemRFK1ZWa1dNU2p5?= =?utf-8?B?SjRVRitsYmhZeDVZaEZhcXVvZi95MW9DMUp3UzZRNGVFM3RtbDQ0RlY4ak9r?= =?utf-8?Q?RJ9RuNaEZuigq1409wy4uiI0kvEbF8=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BE1PPF3198F3A62.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(921020)(38070700018);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cFFjbWZRTFZGL1NjUC92dklRVCtheTFpV3BiVTh0dDhvUEhyMXJMUnZ4Tldk?= =?utf-8?B?Wnl2VDZZbUp2NGZBYllaYndJNS9oVDJHSlRqa2p6WmZCTE1HUCt1cFJBMEVZ?= =?utf-8?B?K0lydEVwV1dWR29NZm1YLzVic0dOR2h0K3p2eS80WDJuSlRKcllNUXZVSHl5?= =?utf-8?B?Z3hXS3J3a2VRMmZrMENsWDdFS0dmbmw5RkdqVVJHRDdva2VsZXFEcVQyWFJr?= =?utf-8?B?NzJvSUp3bXpxdVE5N1V3Wm1jWnVtT2RKOCtDSzdYTDJJZndod285WVJjaDRC?= =?utf-8?B?bW0weFlWQ2oyME1yYTBUOTgyTzJORHYxMEVHNWZuZGJBUHgzMzJ4QkZ3azFP?= =?utf-8?B?bmFsK0VkQW0yWkptTDFIK1hVZWwyc09nRVBCdWprUThoZElHSmU4d0tReU5K?= =?utf-8?B?alRyemh6dnFnZmtwcWZmcXNxdjNENWRIYTc1Qkxra3cyOWsrdTBCd0FXQXVl?= =?utf-8?B?bWRmTmlSUHZXZE5xOS9xdFJ4ZWF6NE8yM0Jvd1IxTjZCTXJQRnZJU2EvcXNB?= =?utf-8?B?K2oyOFlJaS90TGUvWlNhUkc0Q2ZTZW9saHpQbmJtQ0FQdUVjL2EwTHJNaXZU?= =?utf-8?B?ZUFibi9GNURPb2xGTDl5NzJtdnpJWHJBZmJRVmlhV0o3Lzl2VXNuRjZVQ2R3?= =?utf-8?B?S0tRKzZnTVlOZXRiV0V1U1RKOWFVNkUxSDNyamlvc3F4RTNUMHIyV2xBY2J1?= =?utf-8?B?S2V2NDVUOHNYeTlKSlo1MndIN1NyeVhEV0cwUktlV3hTM0RSeWNPdmI1Y1dv?= =?utf-8?B?aXQ2bnB5amlodmo0emlPSEhmK3pkcXhZTnk3YXBMYllMKzFKMG5rRUZPb3VX?= =?utf-8?B?QmJiNElrRGt5TGxRNjMvSzZ4RUprbjhpWVVJSDc4eVJMbkZwUDNkT0RuSkt3?= =?utf-8?B?YVNqcjdxVDgvSkFKZzc2YzBPY0k0ZHdGRytaRlJibTFxODF6QWVTLzIxRS9q?= =?utf-8?B?SThESTZxTngrZlVoQ2lwaUxzbkE4RS83b1JYcU9MU3Y4aFlQbmZXeTV6ZGdh?= =?utf-8?B?THo5VnBpbk9vVms5UmFLNHRuRENtakZvaE1WdFZNajZwc0kwRW5HbFlLMFE5?= =?utf-8?B?MjVYZTFqVmNEa25KYlViQ2RaekIvRHJTVGRQdlFmSzE1K09Mclh0VWw1YXdK?= =?utf-8?B?eTJtcVo3UWlLN0dYNWdNVUl4WlJCZkJCT1BMSE94OVZpaVY5UlgxY1ZiR3dU?= =?utf-8?B?NVdnMTk3MlNmNTNGQjVybklMY2RRcG15UmdzWmZQWktnTFlZZGg4SStEN3h5?= =?utf-8?B?b0FSRzY3aEFDR3Q0R3ptc2hnSFN6aFhiUjZJNVlpb2hoaVJvZVFpaXhzSGdE?= =?utf-8?B?QVQreFlsMjVWMXEvY0JVMm15aDlIci9FMEdjZ1RNWnhLQjVrRjcxdlRLS3ph?= =?utf-8?B?cjY5cS94LzNBTEdUKzdVa0tlRFpvRmJoRHlVWXFTOHlFa1haWTRJQ21yNFEz?= =?utf-8?B?UnRJc29NYkJuRCsvN1BONXpLZFNYaUtpUFIrOVFFYVU0SElLSDBDT1VvTXVY?= =?utf-8?B?dExZdVZZUDA4dkdxMTdGUjIzdHJmRk1iM3NPQXpycGlISXZ1eEpyVjBOR1BP?= =?utf-8?B?ZzJ1c3ZqTG9FTklNNGVCMitBR3d2SEFEcTc2blpLVzlad2d5SHZtMFBsZUc5?= =?utf-8?B?c0NsSGRxWGNsZDYrRkQvQ242NENoQlNFeFlCMkZYSEdtbFE3OTRRdzJpRTZ1?= =?utf-8?B?ZjdKV1hhQnF6eWJGRzdlWmg2VC9oa3NvZjVUZlpjam5sVklsZ0RycjV6anp6?= =?utf-8?B?SkFXRVpXVVorT2xzSFJITkdiTGFQYWhIL0lmVklYT2tMbStXSFk0K3dqMmJ1?= =?utf-8?B?SkJIYjQ5eHJKUU9OcjhoR01UVXlkcCtFQ3k2MlFoZ2RGOGljZGxJMkFBbHdo?= =?utf-8?B?bEhJQWxabTVYNXBsVVlGaklHZTFJc2RxZDZOR3ZaK2t2ZzE0WVhabjJscDFr?= =?utf-8?B?RW0vK3UrMUk0ak52SmFCMlFuYnNWYVZPK0pEc3Yza0kxNXFYME1acTFhai9C?= =?utf-8?B?cmpOODNiWDVLRnlEL2JWblpoTFp2bDVFNy9vM0U0NHF5TzU2YnhUVnRHREZq?= =?utf-8?B?eXJMTzZUMjh3VEZjUzlBYnNXOUptOUI4cHZJOGVsVWMwUk1QeFZjajBSb2NO?= =?utf-8?Q?0tQL1rb/ZO3Sw7Ap6A7rrG4B/?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: adtran.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BE1PPF3198F3A62.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 592baa82-c160-4c42-b102-08ddc06d941b X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2025 11:25:02.5131 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 423946e4-28c0-4deb-904c-a4a4b174fb3f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: RZBaa6lvUz3U7/TGTtD8vF9FiWoZjNURyjatZH6lC1AkgZBWJEW4po0oNId3yhYdym9gjCdJF9INes65/TAPJg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BE0P281MB0050 RnJvbTogUGlvdHIgS3ViaWsgPHBpb3RyLmt1YmlrQGFkdHJhbi5jb20+DQoNCkFkZCBhIGRyaXZl ciBmb3IgdGhlIFNreXdvcmtzIFNpMzQ3NCBJMkMgUG93ZXIgU291cmNpbmcgRXF1aXBtZW50DQpj b250cm9sbGVyLg0KDQpEcml2ZXIgc3VwcG9ydHMgYmFzaWMgZmVhdHVyZXMgb2YgU2kzNDc0IElD Og0KLSBnZXQgcG9ydCBzdGF0dXMsDQotIGdldCBwb3J0IHBvd2VyLA0KLSBnZXQgcG9ydCB2b2x0 YWdlLA0KLSBlbmFibGUvZGlzYWJsZSBwb3J0IHBvd2VyLg0KDQpPbmx5IDRwIGNvbmZpZ3VyYXRp b25zIGFyZSBzdXBwb3J0ZWQgYXQgdGhpcyBtb21lbnQuDQoNClNpZ25lZC1vZmYtYnk6IFBpb3Ry IEt1YmlrIDxwaW90ci5rdWJpa0BhZHRyYW4uY29tPg0KLS0tDQogZHJpdmVycy9uZXQvcHNlLXBk L0tjb25maWcgIHwgIDExICsNCiBkcml2ZXJzL25ldC9wc2UtcGQvTWFrZWZpbGUgfCAgIDEgKw0K IGRyaXZlcnMvbmV0L3BzZS1wZC9zaTM0NzQuYyB8IDU4NCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysNCiAzIGZpbGVzIGNoYW5nZWQsIDU5NiBpbnNlcnRpb25zKCspDQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3BzZS1wZC9zaTM0NzQuYw0KDQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvcHNlLXBkL0tjb25maWcgYi9kcml2ZXJzL25ldC9wc2UtcGQvS2NvbmZp Zw0KaW5kZXggN2ZhYjkxNmE3ZjQ2Li43ZWYyOTY1N2VlNWQgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L25ldC9wc2UtcGQvS2NvbmZpZw0KKysrIGIvZHJpdmVycy9uZXQvcHNlLXBkL0tjb25maWcNCkBA IC0zMiw2ICszMiwxNyBAQCBjb25maWcgUFNFX1BENjkyWDANCiAJICBUbyBjb21waWxlIHRoaXMg ZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUNCiAJICBtb2R1bGUgd2lsbCBi ZSBjYWxsZWQgcGQ2OTJ4MC4NCiANCitjb25maWcgUFNFX1NJMzQ3NA0KKwl0cmlzdGF0ZSAiU2kz NDc0IFBTRSBjb250cm9sbGVyIg0KKwlkZXBlbmRzIG9uIEkyQw0KKwloZWxwDQorCSAgVGhpcyBt b2R1bGUgcHJvdmlkZXMgc3VwcG9ydCBmb3IgU2kzNDc0IHJlZ3VsYXRvciBiYXNlZCBFdGhlcm5l dA0KKwkgIFBvd2VyIFNvdXJjaW5nIEVxdWlwbWVudC4NCisJICBPbmx5IDQtcGFpciBQU0UgY29u ZmlndXJhdGlvbnMgYXJlIHN1cHBvcnRlZC4NCisNCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVy IGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUNCisJICBtb2R1bGUgd2lsbCBiZSBjYWxs ZWQgc2kzNDc0Lg0KKw0KIGNvbmZpZyBQU0VfVFBTMjM4ODENCiAJdHJpc3RhdGUgIlRQUzIzODgx IFBTRSBjb250cm9sbGVyIg0KIAlkZXBlbmRzIG9uIEkyQw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3BzZS1wZC9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L3BzZS1wZC9NYWtlZmlsZQ0KaW5kZXgg OWQyODk4YjM2NzM3Li5jYzc4ZjdlYTdmNWYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9wc2Ut cGQvTWFrZWZpbGUNCisrKyBiL2RyaXZlcnMvbmV0L3BzZS1wZC9NYWtlZmlsZQ0KQEAgLTUsNCAr NSw1IEBAIG9iai0kKENPTkZJR19QU0VfQ09OVFJPTExFUikgKz0gcHNlX2NvcmUubw0KIA0KIG9i ai0kKENPTkZJR19QU0VfUkVHVUxBVE9SKSArPSBwc2VfcmVndWxhdG9yLm8NCiBvYmotJChDT05G SUdfUFNFX1BENjkyWDApICs9IHBkNjkyeDAubw0KK29iai0kKENPTkZJR19QU0VfU0kzNDc0KSAr PSBzaTM0NzQubw0KIG9iai0kKENPTkZJR19QU0VfVFBTMjM4ODEpICs9IHRwczIzODgxLm8NCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wc2UtcGQvc2kzNDc0LmMgYi9kcml2ZXJzL25ldC9wc2Ut cGQvc2kzNDc0LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLmFk ZTBjNGVhYmY1Yw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZHJpdmVycy9uZXQvcHNlLXBkL3NpMzQ3 NC5jDQpAQCAtMCwwICsxLDU4NCBAQA0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wLW9ubHkNCisvKg0KKyAqIERyaXZlciBmb3IgdGhlIFNreXdvcmtzIFNpMzQ3NCBQb0UgUFNF IENvbnRyb2xsZXINCisgKg0KKyAqIENoaXAgQXJjaGl0ZWN0dXJlICYgVGVybWlub2xvZ3k6DQor ICoNCisgKiBUaGUgU2kzNDc0IGlzIGEgc2luZ2xlLWNoaXAgUG9FIFBTRSBjb250cm9sbGVyIG1h bmFnaW5nIDggcGh5c2ljYWwgcG93ZXINCisgKiBkZWxpdmVyeSBjaGFubmVscy4gSW50ZXJuYWxs eSwgaXQncyBzdHJ1Y3R1cmVkIGludG8gdHdvIGxvZ2ljYWwgIlF1YWRzIi4NCisgKg0KKyAqIFF1 YWQgMDogTWFuYWdlcyBwaHlzaWNhbCBjaGFubmVscyAoJ3BvcnRzJyBpbiBkYXRhc2hlZXQpIDAs IDEsIDIsIDMNCisgKiBRdWFkIDE6IE1hbmFnZXMgcGh5c2ljYWwgY2hhbm5lbHMgKCdwb3J0cycg aW4gZGF0YXNoZWV0KSA0LCA1LCA2LCA3DQorICoNCisgKiBFYWNoIFF1YWQgaXMgYWNjZXNzZWQg dmlhIGEgc2VwYXJhdGUgSTJDIGFkZHJlc3MuIFRoZSBiYXNlIGFkZHJlc3MgcmFuZ2UgaXMNCisg KiBzZXQgYnkgaGFyZHdhcmUgcGlucyBBMS1BNCwgYW5kIHRoZSBzcGVjaWZpYyBhZGRyZXNzIHNl bGVjdHMgUXVhZCAwICh1c3VhbGx5DQorICogdGhlIGxvd2VyL2V2ZW4gYWRkcmVzcykgb3IgUXVh ZCAxICh1c3VhbGx5IHRoZSBoaWdoZXIvb2RkIGFkZHJlc3MpLg0KKyAqIFNlZSBkYXRhc2hlZXQg VGFibGUgMi4yIGZvciB0aGUgYWRkcmVzcyBtYXBwaW5nLg0KKyAqDQorICogV2hpbGUgdGhlIFF1 YWRzIG1hbmFnZSBjaGFubmVsLXNwZWNpZmljIG9wZXJhdGlvbnMsIHRoZSBTaTM0NzQgcGFja2Fn ZSBoYXMNCisgKiBzZXZlcmFsIHJlc291cmNlcyBzaGFyZWQgYWNyb3NzIHRoZSBlbnRpcmUgY2hp cDoNCisgKiAtIFNpbmdsZSBSRVNFVGIgaW5wdXQgcGluLg0KKyAqIC0gU2luZ2xlIElOVGIgb3V0 cHV0IHBpbiAoc2lnbmFscyBpbnRlcnJ1cHRzIGZyb20gKmVpdGhlciogUXVhZCkuDQorICogLSBT aW5nbGUgT1NTIGlucHV0IHBpbiAoRW1lcmdlbmN5IFNodXRkb3duKS4NCisgKiAtIEdsb2JhbCBJ MkMgQWRkcmVzcyAoMHg3RikgdXNlZCBmb3IgZmlybXdhcmUgdXBkYXRlcy4NCisgKiAtIEdsb2Jh bCBzdGF0dXMgbW9uaXRvcmluZyAoVGVtcGVyYXR1cmUsIFZERC9WUFdSIFVuZGVydm9sdGFnZSBM b2Nrb3V0KS4NCisgKg0KKyAqIERyaXZlciBBcmNoaXRlY3R1cmU6DQorICoNCisgKiBUbyBoYW5k bGUgdGhlIG1peCBvZiBwZXItUXVhZCBhY2Nlc3MgYW5kIHNoYXJlZCByZXNvdXJjZXMgY29ycmVj dGx5LCB0aGlzDQorICogZHJpdmVyIHRyZWF0cyB0aGUgZW50aXJlIFNpMzQ3NCBwYWNrYWdlIGFz IG9uZSBsb2dpY2FsIGRldmljZS4gVGhlIGRyaXZlcg0KKyAqIGluc3RhbmNlIGFzc29jaWF0ZWQg d2l0aCB0aGUgcHJpbWFyeSBJMkMgYWRkcmVzcyAoUXVhZCAwKSB0YWtlcyBvd25lcnNoaXAuDQor ICogSXQgZGlzY292ZXJzIGFuZCBtYW5hZ2VzIHRoZSBJMkMgY2xpZW50IGZvciB0aGUgc2Vjb25k YXJ5IGFkZHJlc3MgKFF1YWQgMSkuDQorICogVGhpcyBwcmltYXJ5IGluc3RhbmNlIGhhbmRsZXMg c2hhcmVkIHJlc291cmNlcyBsaWtlIElSUSBtYW5hZ2VtZW50IGFuZA0KKyAqIHJlZ2lzdGVycyBh IHNpbmdsZSBQU0UgY29udHJvbGxlciBkZXZpY2UgcmVwcmVzZW50aW5nIGFsbCBsb2dpY2FsIFBJ cy4NCisgKiBJbnRlcm5hbCBmdW5jdGlvbnMgcm91dGUgSTJDIGNvbW1hbmRzIHRvIHRoZSBhcHBy b3ByaWF0ZSBRdWFkJ3MgaTJjX2NsaWVudA0KKyAqIGJhc2VkIG9uIHRoZSB0YXJnZXQgY2hhbm5l bCBvciBQSS4NCisgKg0KKyAqIFRlcm1pbm9sb2d5IE1hcHBpbmc6DQorICoNCisgKiAtICJQSSIg KFBvd2VyIEludGVyZmFjZSk6IFJlZmVycyB0byB0aGUgbG9naWNhbCBQU0UgcG9ydCBhcyBkZWZp bmVkIGJ5DQorICogSUVFRSA4MDIuMyAodHlwaWNhbGx5IGNvcnJlc3BvbmRzIHRvIGFuIFJKNDUg Y29ubmVjdG9yKS4gVGhpcyBpcyB0aGUNCisgKiBgaWRgICgwLTcpIHVzZWQgaW4gdGhlIHBzZV9j b250cm9sbGVyX29wcy4NCisgKiAtICJDaGFubmVsIjogUmVmZXJzIHRvIG9uZSBvZiB0aGUgOCBw aHlzaWNhbCBwb3dlciBjb250cm9sIHBhdGhzIHdpdGhpbg0KKyAqIHRoZSBTaTM0NzQgY2hpcCBp dHNlbGYgKGhhcmR3YXJlIGNoYW5uZWxzIDAtNykuIFRoaXMgdGVybWlub2xvZ3kgaXMNCisgKiB1 c2VkIGludGVybmFsbHkgd2l0aGluIHRoZSBkcml2ZXIgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGgg J3BvcnRzJy4NCisgKiAtICJRdWFkIjogT25lIG9mIHRoZSB0d28gaW50ZXJuYWwgNC1jaGFubmVs IG1hbmFnZW1lbnQgdW5pdHMgd2l0aGluIHRoZQ0KKyAqIFNpMzQ3NCwgZWFjaCBhY2Nlc3NlZCB2 aWEgaXRzIG93biBJMkMgYWRkcmVzcy4NCisgKg0KKyAqIFJlbGF0aW9uc2hpcDoNCisgKiAtIEEg Mi1QYWlyIFBvRSBQSSB1c2VzIDEgQ2hhbm5lbC4NCisgKiAtIEEgNC1QYWlyIFBvRSBQSSB1c2Vz IDIgQ2hhbm5lbHMuDQorICoNCisgKiBBU0NJSSBTY2hlbWF0aWM6DQorICoNCisgKiArLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICogfCAg ICAgICAgICAgICAgICAgICAgU2kzNDc0IENoaXAgICAgICAgICAgICAgICAgICAgICAgfA0KKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwN CisgKiB8ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0t KyB8DQorICogfCB8ICAgICAgUXVhZCAwICAgICAgICAgfCAgICAgfCAgICAgIFF1YWQgMSAgICAg ICAgIHwgfA0KKyAqIHwgfCBDaGFubmVscyAwLCAxLCAyLCAzIHwgICAgIHwgQ2hhbm5lbHMgNCwg NSwgNiwgNyB8IHwNCisgKiB8ICstLS0tLS0tLS0tXi0tLS0tLS0tLS0rICAgICArLS0tLS0tLV4t LS0tLS0tLS0tLS0tKyB8DQorICogfCBJMkMgQWRkciAwIHwgICAgICAgICAgICAgICAgICAgICAg ICB8IEkyQyBBZGRyIDEgICAgfA0KKyAqIHwgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKyAgICAgICAgICAgICAgIHwNCisgKiB8IChQcmltYXJ5IERyaXZlciBJbnN0YW5jZSkg KE1hbmFnZWQgYnkgUHJpbWFyeSkgICAgICB8DQorICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KKyAqIHwgU2hhcmVkIFJlc291cmNlcyAo YWZmZWN0IHdob2xlIGNoaXApOiAgICAgICAgICAgICAgIHwNCisgKiB8ICAtIFNpbmdsZSBJTlRi IE91dHB1dCAtPiBIYW5kbGVkIGJ5IFByaW1hcnkgICAgICAgICB8DQorICogfCAgLSBTaW5nbGUg UkVTRVRiIElucHV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KKyAqIHwgIC0gU2lu Z2xlIE9TUyBJbnB1dCAgIC0+IEhhbmRsZWQgYnkgUHJpbWFyeSAgICAgICAgIHwNCisgKiB8ICAt IEdsb2JhbCBJMkMgQWRkciAoMHg3RikgZm9yIEZpcm13YXJlIFVwZGF0ZSAgICAgICB8DQorICog fCAgLSBHbG9iYWwgU3RhdHVzIChUZW1wLCBWREQvVlBXUiBVVkxPKSAgICAgICAgICAgICAgfA0K KyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsNCisgKiAgICAgICAgfCAgIHwgICB8ICAgfCAgICAgICAgfCAgIHwgICB8ICAgfA0KKyAqICAg ICAgICBDaDAgQ2gxIENoMiBDaDMgICAgICBDaDQgQ2g1IENoNiBDaDcgIChQaHlzaWNhbCBDaGFu bmVscykNCisgKg0KKyAqIEV4YW1wbGUgTWFwcGluZyAoTG9naWNhbCBQSSB0byBQaHlzaWNhbCBD aGFubmVsKHMpKToNCisgKiAqIDItUGFpciBNb2RlICg4IFBJcyk6DQorICogUEkgMCAtPiBDaCAw DQorICogUEkgMSAtPiBDaCAxDQorICogLi4uDQorICogUEkgNyAtPiBDaCA3DQorICogKiA0LVBh aXIgTW9kZSAoNCBQSXMpOg0KKyAqIFBJIDAgLT4gQ2ggMCArIENoIDEgIChNYW5hZ2VkIHZpYSBR dWFkIDAgQWRkcikNCisgKiBQSSAxIC0+IENoIDIgKyBDaCAzICAoTWFuYWdlZCB2aWEgUXVhZCAw IEFkZHIpDQorICogUEkgMiAtPiBDaCA0ICsgQ2ggNSAgKE1hbmFnZWQgdmlhIFF1YWQgMSBBZGRy KQ0KKyAqIFBJIDMgLT4gQ2ggNiArIENoIDcgIChNYW5hZ2VkIHZpYSBRdWFkIDEgQWRkcikNCisg KiAoTm90ZTogQWN0dWFsIG1hcHBpbmcgZGVwZW5kcyBvbiBEZXZpY2UgVHJlZSBhbmQgUE9SVF9S RU1BUCBjb25maWcpDQorICovDQorDQorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPg0KKyNpbmNsdWRl IDxsaW51eC9tb2R1bGUuaD4NCisjaW5jbHVkZSA8bGludXgvb2YuaD4NCisjaW5jbHVkZSA8bGlu dXgvcGxhdGZvcm1fZGV2aWNlLmg+DQorI2luY2x1ZGUgPGxpbnV4L3BzZS1wZC9wc2UuaD4NCisN CisjZGVmaW5lIFNJMzQ3NF9NQVhfQ0hBTlMgOA0KKw0KKyNkZWZpbmUgTUFOVUZBQ1RVUkVSX0lE IDB4MDgNCisjZGVmaW5lIElDX0lEIDB4MDUNCisjZGVmaW5lIFNJMzQ3NF9ERVZJQ0VfSUQgKE1B TlVGQUNUVVJFUl9JRCA8PCAzIHwgSUNfSUQpDQorDQorLyogTWlzYyByZWdpc3RlcnMgKi8NCisj ZGVmaW5lIFZFTkRPUl9JQ19JRF9SRUcgMHgxQg0KKyNkZWZpbmUgVEVNUEVSQVRVUkVfUkVHIDB4 MkMNCisjZGVmaW5lIEZJUk1XQVJFX1JFVklTSU9OX1JFRyAweDQxDQorI2RlZmluZSBDSElQX1JF VklTSU9OX1JFRyAweDQzDQorDQorLyogTWFpbiBzdGF0dXMgcmVnaXN0ZXJzICovDQorI2RlZmlu ZSBQT1dFUl9TVEFUVVNfUkVHIDB4MTANCisjZGVmaW5lIFBPUlRfTU9ERV9SRUcgMHgxMg0KKyNk ZWZpbmUgREVURUNUX0NMQVNTX0VOQUJMRV9SRUcgMHgxNA0KKw0KKy8qIFBPUlRuIEN1cnJlbnQg Ki8NCisjZGVmaW5lIFBPUlQxX0NVUlJFTlRfTFNCX1JFRyAweDMwDQorDQorLyogUE9SVG4gQ3Vy cmVudCBbbUFdLCByZXR1cm4gaW4gW25BXSAqLw0KKy8qIDEwMDAgKiAoKFBPUlRuX0NVUlJFTlRf TVNCIDw8IDgpICsgUE9SVG5fQ1VSUkVOVF9MU0IpIC8gMTYzODQgKi8NCisjZGVmaW5lIFNJMzQ3 NF9OQV9TVEVQICgxMDAwICogMTAwMCAqIDEwMDAgLyAxNjM4NCkNCisNCisvKiBWUFdSIFZvbHRh Z2UgKi8NCisjZGVmaW5lIFZQV1JfTFNCX1JFRyAweDJFDQorI2RlZmluZSBWUFdSX01TQl9SRUcg MHgyRg0KKw0KKy8qIFBPUlRuIFZvbHRhZ2UgKi8NCisjZGVmaW5lIFBPUlQxX1ZPTFRBR0VfTFNC X1JFRyAweDMyDQorDQorLyogVlBXUiBWb2x0YWdlIFtWXSwgcmV0dXJuIGluIFt1Vl0gKi8NCisv KiA2MCAqICgoIFZQV1JfTVNCIDw8IDgpICsgVlBXUl9MU0IpIC8gMTYzODQgKi8NCisjZGVmaW5l IFNJMzQ3NF9VVl9TVEVQICgxMDAwICogMTAwMCAqIDYwIC8gMTYzODQpDQorDQorLyogSGVscGVy IG1hY3JvcyAqLw0KKyNkZWZpbmUgQ0hBTl9JRFgoY2hhbikgKChjaGFuKSAlIDQpDQorI2RlZmlu ZSBDSEFOX0JJVChjaGFuKSBCSVQoQ0hBTl9JRFgoY2hhbikpDQorI2RlZmluZSBDSEFOX1VQUEVS X0JJVChjaGFuKSBCSVQoQ0hBTl9JRFgoY2hhbikgKyA0KQ0KKw0KKyNkZWZpbmUgQ0hBTl9NQVNL KGNoYW4pICgweDAzVSA8PCAoMiAqIENIQU5fSURYKGNoYW4pKSkNCisjZGVmaW5lIENIQU5fUkVH KGJhc2UsIGNoYW4pICgoYmFzZSkgKyAoQ0hBTl9JRFgoY2hhbikgKiA0KSkNCisNCitzdHJ1Y3Qg c2kzNDc0X3BpX2Rlc2Mgew0KKwl1OCBjaGFuWzJdOw0KKwlib29sIGlzXzRwOw0KK307DQorDQor c3RydWN0IHNpMzQ3NF9wcml2IHsNCisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudFsyXTsNCisJ c3RydWN0IHBzZV9jb250cm9sbGVyX2RldiBwY2RldjsNCisJc3RydWN0IGRldmljZV9ub2RlICpu cDsNCisJc3RydWN0IHNpMzQ3NF9waV9kZXNjIHBpW1NJMzQ3NF9NQVhfQ0hBTlNdOw0KK307DQor DQorc3RhdGljIHN0cnVjdCBzaTM0NzRfcHJpdiAqdG9fc2kzNDc0X3ByaXYoc3RydWN0IHBzZV9j b250cm9sbGVyX2RldiAqcGNkZXYpDQorew0KKwlyZXR1cm4gY29udGFpbmVyX29mKHBjZGV2LCBz dHJ1Y3Qgc2kzNDc0X3ByaXYsIHBjZGV2KTsNCit9DQorDQorc3RhdGljIHZvaWQgc2kzNDc0X2dl dF9jaGFubmVscyhzdHJ1Y3Qgc2kzNDc0X3ByaXYgKnByaXYsIGludCBpZCwNCisJCQkJdTggKmNo YW4wLCB1OCAqY2hhbjEpDQorew0KKwkqY2hhbjAgPSBwcml2LT5waVtpZF0uY2hhblswXTsNCisJ KmNoYW4xID0gcHJpdi0+cGlbaWRdLmNoYW5bMV07DQorfQ0KKw0KK3N0YXRpYyBzdHJ1Y3QgaTJj X2NsaWVudCAqc2kzNDc0X2dldF9jaGFuX2NsaWVudChzdHJ1Y3Qgc2kzNDc0X3ByaXYgKnByaXYs DQorCQkJCQkJIHU4IGNoYW4pDQorew0KKwlyZXR1cm4gKGNoYW4gPCA0KSA/IHByaXYtPmNsaWVu dFswXSA6IHByaXYtPmNsaWVudFsxXTsNCit9DQorDQorc3RhdGljIGludCBzaTM0NzRfcGlfZ2V0 X2FkbWluX3N0YXRlKHN0cnVjdCBwc2VfY29udHJvbGxlcl9kZXYgKnBjZGV2LCBpbnQgaWQsDQor CQkJCSAgICAgc3RydWN0IHBzZV9hZG1pbl9zdGF0ZSAqYWRtaW5fc3RhdGUpDQorew0KKwlzdHJ1 Y3Qgc2kzNDc0X3ByaXYgKnByaXYgPSB0b19zaTM0NzRfcHJpdihwY2Rldik7DQorCXN0cnVjdCBp MmNfY2xpZW50ICpjbGllbnQ7DQorCXMzMiByZXQ7DQorCXU4IGNoYW4wLCBjaGFuMTsNCisJYm9v bCBpc19lbmFibGVkID0gZmFsc2U7DQorDQorCWlmIChpZCA+PSBTSTM0NzRfTUFYX0NIQU5TKQ0K KwkJcmV0dXJuIC1FUkFOR0U7DQorDQorCXNpMzQ3NF9nZXRfY2hhbm5lbHMocHJpdiwgaWQsICZj aGFuMCwgJmNoYW4xKTsNCisJY2xpZW50ID0gc2kzNDc0X2dldF9jaGFuX2NsaWVudChwcml2LCBj aGFuMCk7DQorDQorCXJldCA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIFBPUlRf TU9ERV9SRUcpOw0KKwlpZiAocmV0IDwgMCkgew0KKwkJYWRtaW5fc3RhdGUtPmMzM19hZG1pbl9z dGF0ZSA9DQorCQkJRVRIVE9PTF9DMzNfUFNFX0FETUlOX1NUQVRFX1VOS05PV047DQorCQlyZXR1 cm4gcmV0Ow0KKwl9DQorDQorCWlzX2VuYWJsZWQgPSAocmV0ICYgQ0hBTl9NQVNLKGNoYW4wKSkg fA0KKwkJICAgICAocmV0ICYgQ0hBTl9NQVNLKGNoYW4xKSk7DQorDQorCWlmIChpc19lbmFibGVk KQ0KKwkJYWRtaW5fc3RhdGUtPmMzM19hZG1pbl9zdGF0ZSA9DQorCQkJRVRIVE9PTF9DMzNfUFNF X0FETUlOX1NUQVRFX0VOQUJMRUQ7DQorCWVsc2UNCisJCWFkbWluX3N0YXRlLT5jMzNfYWRtaW5f c3RhdGUgPQ0KKwkJCUVUSFRPT0xfQzMzX1BTRV9BRE1JTl9TVEFURV9ESVNBQkxFRDsNCisNCisJ cmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgc2kzNDc0X3BpX2dldF9wd19zdGF0dXMoc3Ry dWN0IHBzZV9jb250cm9sbGVyX2RldiAqcGNkZXYsIGludCBpZCwNCisJCQkJICAgc3RydWN0IHBz ZV9wd19zdGF0dXMgKnB3X3N0YXR1cykNCit7DQorCXN0cnVjdCBzaTM0NzRfcHJpdiAqcHJpdiA9 IHRvX3NpMzQ3NF9wcml2KHBjZGV2KTsNCisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudDsNCisJ czMyIHJldDsNCisJdTggY2hhbjAsIGNoYW4xOw0KKwlib29sIGRlbGl2ZXJpbmcgPSBmYWxzZTsN CisNCisJaWYgKGlkID49IFNJMzQ3NF9NQVhfQ0hBTlMpDQorCQlyZXR1cm4gLUVSQU5HRTsNCisN CisJc2kzNDc0X2dldF9jaGFubmVscyhwcml2LCBpZCwgJmNoYW4wLCAmY2hhbjEpOw0KKwljbGll bnQgPSBzaTM0NzRfZ2V0X2NoYW5fY2xpZW50KHByaXYsIGNoYW4wKTsNCisNCisJcmV0ID0gaTJj X3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgUE9XRVJfU1RBVFVTX1JFRyk7DQorCWlmIChy ZXQgPCAwKSB7DQorCQlwd19zdGF0dXMtPmMzM19wd19zdGF0dXMgPSBFVEhUT09MX0MzM19QU0Vf UFdfRF9TVEFUVVNfVU5LTk9XTjsNCisJCXJldHVybiByZXQ7DQorCX0NCisNCisJZGVsaXZlcmlu ZyA9IHJldCAmIChDSEFOX1VQUEVSX0JJVChjaGFuMCkgfCBDSEFOX1VQUEVSX0JJVChjaGFuMSkp Ow0KKw0KKwlpZiAoZGVsaXZlcmluZykNCisJCXB3X3N0YXR1cy0+YzMzX3B3X3N0YXR1cyA9DQor CQkJRVRIVE9PTF9DMzNfUFNFX1BXX0RfU1RBVFVTX0RFTElWRVJJTkc7DQorCWVsc2UNCisJCXB3 X3N0YXR1cy0+YzMzX3B3X3N0YXR1cyA9IEVUSFRPT0xfQzMzX1BTRV9QV19EX1NUQVRVU19ESVNB QkxFRDsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgc2kzNDc0X2dldF9vZl9j aGFubmVscyhzdHJ1Y3Qgc2kzNDc0X3ByaXYgKnByaXYpDQorew0KKwlzdHJ1Y3QgcHNlX3BpICpw aTsNCisJdTMyIGNoYW5faWQ7DQorCXMzMiByZXQ7DQorCXU4IHBpX25vOw0KKw0KKwlmb3IgKHBp X25vID0gMDsgcGlfbm8gPCBTSTM0NzRfTUFYX0NIQU5TOyBwaV9ubysrKSB7DQorCQlwaSA9ICZw cml2LT5wY2Rldi5waVtwaV9ub107DQorCQl1OCBwYWlyc2V0X25vOw0KKw0KKwkJZm9yIChwYWly c2V0X25vID0gMDsgcGFpcnNldF9ubyA8IDI7IHBhaXJzZXRfbm8rKykgew0KKwkJCWlmICghcGkt PnBhaXJzZXRbcGFpcnNldF9ub10ubnApDQorCQkJCWNvbnRpbnVlOw0KKw0KKwkJCXJldCA9IG9m X3Byb3BlcnR5X3JlYWRfdTMyKHBpLT5wYWlyc2V0W3BhaXJzZXRfbm9dLm5wLA0KKwkJCQkJCSAg ICJyZWciLCAmY2hhbl9pZCk7DQorCQkJaWYgKHJldCkgew0KKwkJCQlkZXZfZXJyKCZwcml2LT5j bGllbnRbMF0tPmRldiwNCisJCQkJCSJGYWlsZWQgdG8gcmVhZCBjaGFubmVsIHJlZyBwcm9wZXJ0 eVxuIik7DQorCQkJCXJldHVybiByZXQ7DQorCQkJfQ0KKwkJCWlmIChjaGFuX2lkID4gU0kzNDc0 X01BWF9DSEFOUykgew0KKwkJCQlkZXZfZXJyKCZwcml2LT5jbGllbnRbMF0tPmRldiwNCisJCQkJ CSJJbmNvcnJlY3QgY2hhbm5lbCBudW1iZXI6ICVkXG4iLCBjaGFuX2lkKTsNCisJCQkJcmV0dXJu IHJldDsNCisJCQl9DQorDQorCQkJcHJpdi0+cGlbcGlfbm9dLmNoYW5bcGFpcnNldF9ub10gPSBj aGFuX2lkOw0KKwkJCS8qIE1hcmsgYXMgNC1wYWlyIGlmIHNlY29uZCBwYWlyc2V0IGlzIHByZXNl bnQgKi8NCisJCQlwcml2LT5waVtwaV9ub10uaXNfNHAgPSAocGFpcnNldF9ubyA9PSAxKTsNCisJ CX0NCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCBzaTM0NzRfc2V0dXBf cGlfbWF0cml4KHN0cnVjdCBwc2VfY29udHJvbGxlcl9kZXYgKnBjZGV2KQ0KK3sNCisJc3RydWN0 IHNpMzQ3NF9wcml2ICpwcml2ID0gdG9fc2kzNDc0X3ByaXYocGNkZXYpOw0KKwlzMzIgcmV0Ow0K Kw0KKwlyZXQgPSBzaTM0NzRfZ2V0X29mX2NoYW5uZWxzKHByaXYpOw0KKwlpZiAocmV0IDwgMCkg ew0KKwkJZGV2X3dhcm4oJnByaXYtPmNsaWVudFswXS0+ZGV2LA0KKwkJCSAiVW5hYmxlIHRvIHBh cnNlIERUIFBTRSBwb3dlciBpbnRlcmZhY2UgbWF0cml4XG4iKTsNCisJfQ0KKwlyZXR1cm4gcmV0 Ow0KK30NCisNCitzdGF0aWMgaW50IHNpMzQ3NF9waV9lbmFibGUoc3RydWN0IHBzZV9jb250cm9s bGVyX2RldiAqcGNkZXYsIGludCBpZCkNCit7DQorCXN0cnVjdCBzaTM0NzRfcHJpdiAqcHJpdiA9 IHRvX3NpMzQ3NF9wcml2KHBjZGV2KTsNCisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudDsNCisJ czMyIHJldDsNCisJdTggY2hhbjAsIGNoYW4xOw0KKwl1OCB2YWwgPSAwOw0KKw0KKwlpZiAoaWQg Pj0gU0kzNDc0X01BWF9DSEFOUykNCisJCXJldHVybiAtRVJBTkdFOw0KKw0KKwlzaTM0NzRfZ2V0 X2NoYW5uZWxzKHByaXYsIGlkLCAmY2hhbjAsICZjaGFuMSk7DQorCWNsaWVudCA9IHNpMzQ3NF9n ZXRfY2hhbl9jbGllbnQocHJpdiwgY2hhbjApOw0KKw0KKwkvKiBSZWxlYXNlIFBJIGZyb20gc2h1 dGRvd24gKi8NCisJcmV0ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgUE9SVF9N T0RFX1JFRyk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisNCisJdmFsID0gKHU4 KXJldDsNCisJdmFsIHw9IENIQU5fTUFTSyhjaGFuMCk7DQorCXZhbCB8PSBDSEFOX01BU0soY2hh bjEpOw0KKw0KKwlyZXQgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgUE9SVF9N T0RFX1JFRywgdmFsKTsNCisJaWYgKHJldCkNCisJCXJldHVybiByZXQ7DQorDQorCS8qIERFVEVD VF9DTEFTU19FTkFCTEUgbXVzdCBiZSBzZXQgd2hlbiB1c2luZyBBVVRPIG1vZGUsDQorCSAqIG90 aGVyd2lzZSBQSSBkb2VzIG5vdCBwb3dlciB1cCAtIGRhdGFzaGVldCBzZWN0aW9uIDIuMTAuMg0K KwkgKi8NCisJdmFsID0gQ0hBTl9CSVQoY2hhbjApIHwgQ0hBTl9VUFBFUl9CSVQoY2hhbjApIHwN CisJICAgICAgQ0hBTl9CSVQoY2hhbjEpIHwgQ0hBTl9VUFBFUl9CSVQoY2hhbjEpOw0KKw0KKwly ZXQgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgREVURUNUX0NMQVNTX0VOQUJM RV9SRUcsIHZhbCk7DQorCWlmIChyZXQpDQorCQlyZXR1cm4gcmV0Ow0KKw0KKwlyZXR1cm4gMDsN Cit9DQorDQorc3RhdGljIGludCBzaTM0NzRfcGlfZGlzYWJsZShzdHJ1Y3QgcHNlX2NvbnRyb2xs ZXJfZGV2ICpwY2RldiwgaW50IGlkKQ0KK3sNCisJc3RydWN0IHNpMzQ3NF9wcml2ICpwcml2ID0g dG9fc2kzNDc0X3ByaXYocGNkZXYpOw0KKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50Ow0KKwlz MzIgcmV0Ow0KKwl1OCBjaGFuMCwgY2hhbjE7DQorCXU4IHZhbCA9IDA7DQorDQorCWlmIChpZCA+ PSBTSTM0NzRfTUFYX0NIQU5TKQ0KKwkJcmV0dXJuIC1FUkFOR0U7DQorDQorCXNpMzQ3NF9nZXRf Y2hhbm5lbHMocHJpdiwgaWQsICZjaGFuMCwgJmNoYW4xKTsNCisJY2xpZW50ID0gc2kzNDc0X2dl dF9jaGFuX2NsaWVudChwcml2LCBjaGFuMCk7DQorDQorCS8qIFNldCBQSSBpbiBzaHV0ZG93biBt b2RlICovDQorCXJldCA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIFBPUlRfTU9E RV9SRUcpOw0KKwlpZiAocmV0IDwgMCkNCisJCXJldHVybiByZXQ7DQorDQorCXZhbCA9ICh1OCly ZXQ7DQorCXZhbCAmPSB+Q0hBTl9NQVNLKGNoYW4wKTsNCisJdmFsICY9IH5DSEFOX01BU0soY2hh bjEpOw0KKw0KKwlyZXQgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgUE9SVF9N T0RFX1JFRywgdmFsKTsNCisJaWYgKHJldCkNCisJCXJldHVybiByZXQ7DQorDQorCXJldHVybiAw Ow0KK30NCisNCitzdGF0aWMgaW50IHNpMzQ3NF9waV9nZXRfY2hhbl9jdXJyZW50KHN0cnVjdCBz aTM0NzRfcHJpdiAqcHJpdiwgdTggY2hhbikNCit7DQorCXN0cnVjdCBpMmNfY2xpZW50ICpjbGll bnQ7DQorCXU2NCB0bXBfNjQ7DQorCXMzMiByZXQ7DQorCXU4IHJlZzsNCisNCisJY2xpZW50ID0g c2kzNDc0X2dldF9jaGFuX2NsaWVudChwcml2LCBjaGFuKTsNCisNCisJLyogUmVnaXN0ZXJzIDB4 MzAgdG8gMHgzZCAqLw0KKwlyZWcgPSBDSEFOX1JFRyhQT1JUMV9DVVJSRU5UX0xTQl9SRUcsIGNo YW4pOw0KKw0KKwlyZXQgPSBpMmNfc21idXNfcmVhZF93b3JkX2RhdGEoY2xpZW50LCByZWcpOw0K KwlpZiAocmV0IDwgMCkNCisJCXJldHVybiByZXQ7DQorDQorCXRtcF82NCA9IHJldCAqIFNJMzQ3 NF9OQV9TVEVQOw0KKw0KKwkvKiB1QSA9IG5BIC8gMTAwMCAqLw0KKwl0bXBfNjQgPSBESVZfUk9V TkRfQ0xPU0VTVF9VTEwodG1wXzY0LCAxMDAwKTsNCisJcmV0dXJuIChpbnQpdG1wXzY0Ow0KK30N CisNCitzdGF0aWMgaW50IHNpMzQ3NF9waV9nZXRfY2hhbl92b2x0YWdlKHN0cnVjdCBzaTM0NzRf cHJpdiAqcHJpdiwgdTggY2hhbikNCit7DQorCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQ7DQor CXUzMiB2YWw7DQorCXMzMiByZXQ7DQorCXU4IHJlZzsNCisNCisJY2xpZW50ID0gc2kzNDc0X2dl dF9jaGFuX2NsaWVudChwcml2LCBjaGFuKTsNCisNCisJLyogUmVnaXN0ZXJzIDB4MzIgdG8gMHgz ZiAqLw0KKwlyZWcgPSBDSEFOX1JFRyhQT1JUMV9WT0xUQUdFX0xTQl9SRUcsIGNoYW4pOw0KKw0K KwlyZXQgPSBpMmNfc21idXNfcmVhZF93b3JkX2RhdGEoY2xpZW50LCByZWcpOw0KKwlpZiAocmV0 IDwgMCkNCisJCXJldHVybiByZXQ7DQorDQorCXZhbCA9IHJldCAqIFNJMzQ3NF9VVl9TVEVQOw0K Kw0KKwlyZXR1cm4gKGludCl2YWw7DQorfQ0KKw0KK3N0YXRpYyBpbnQgc2kzNDc0X3BpX2dldF92 b2x0YWdlKHN0cnVjdCBwc2VfY29udHJvbGxlcl9kZXYgKnBjZGV2LCBpbnQgaWQpDQorew0KKwlz dHJ1Y3Qgc2kzNDc0X3ByaXYgKnByaXYgPSB0b19zaTM0NzRfcHJpdihwY2Rldik7DQorCXN0cnVj dCBpMmNfY2xpZW50ICpjbGllbnQ7DQorCXMzMiByZXQ7DQorCXU4IGNoYW4wLCBjaGFuMTsNCisN CisJc2kzNDc0X2dldF9jaGFubmVscyhwcml2LCBpZCwgJmNoYW4wLCAmY2hhbjEpOw0KKwljbGll bnQgPSBzaTM0NzRfZ2V0X2NoYW5fY2xpZW50KHByaXYsIGNoYW4wKTsNCisNCisJLyogQ2hlY2sg d2hpY2ggY2hhbm5lbHMgYXJlIGVuYWJsZWQqLw0KKwlyZXQgPSBpMmNfc21idXNfcmVhZF9ieXRl X2RhdGEoY2xpZW50LCBQT1dFUl9TVEFUVVNfUkVHKTsNCisJaWYgKHJldCA8IDApDQorCQlyZXR1 cm4gcmV0Ow0KKw0KKwkvKiBUYWtlIHZvbHRhZ2UgZnJvbSB0aGUgZmlyc3QgZW5hYmxlZCBjaGFu bmVsICovDQorCWlmIChyZXQgJiBDSEFOX0JJVChjaGFuMCkpDQorCQlyZXQgPSBzaTM0NzRfcGlf Z2V0X2NoYW5fdm9sdGFnZShwcml2LCBjaGFuMCk7DQorCWVsc2UgaWYgKHJldCAmIENIQU5fQklU KGNoYW4xKSkNCisJCXJldCA9IHNpMzQ3NF9waV9nZXRfY2hhbl92b2x0YWdlKHByaXYsIGNoYW4x KTsNCisJZWxzZQ0KKwkJLyogJ3Nob3VsZCcgYmUgbm8gdm9sdGFnZSBpbiB0aGlzIGNhc2UgKi8N CisJCXJldHVybiAwOw0KKw0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCitzdGF0aWMgaW50IHNpMzQ3 NF9waV9nZXRfYWN0dWFsX3B3KHN0cnVjdCBwc2VfY29udHJvbGxlcl9kZXYgKnBjZGV2LCBpbnQg aWQpDQorew0KKwlzdHJ1Y3Qgc2kzNDc0X3ByaXYgKnByaXYgPSB0b19zaTM0NzRfcHJpdihwY2Rl dik7DQorCXU2NCB0bXBfNjQ7DQorCXUzMiB1ViwgdUE7DQorCXMzMiByZXQ7DQorCXU4IGNoYW4w LCBjaGFuMTsNCisNCisJaWYgKGlkID49IFNJMzQ3NF9NQVhfQ0hBTlMpDQorCQlyZXR1cm4gLUVS QU5HRTsNCisNCisJcmV0ID0gc2kzNDc0X3BpX2dldF92b2x0YWdlKCZwcml2LT5wY2RldiwgaWQp Ow0KKw0KKwkvKiBEbyBub3QgcmVhZCBjdXJyZW50cyBpZiB2b2x0YWdlIGlzIDAgKi8NCisJaWYg KHJldCA8PSAwKQ0KKwkJcmV0dXJuIHJldDsNCisJdVYgPSByZXQ7DQorDQorCXNpMzQ3NF9nZXRf Y2hhbm5lbHMocHJpdiwgaWQsICZjaGFuMCwgJmNoYW4xKTsNCisNCisJcmV0ID0gc2kzNDc0X3Bp X2dldF9jaGFuX2N1cnJlbnQocHJpdiwgY2hhbjApOw0KKwlpZiAocmV0IDwgMCkNCisJCXJldHVy biByZXQ7DQorCXVBID0gcmV0Ow0KKw0KKwlyZXQgPSBzaTM0NzRfcGlfZ2V0X2NoYW5fY3VycmVu dChwcml2LCBjaGFuMSk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisJdUEgKz0g cmV0Ow0KKw0KKwl0bXBfNjQgPSB1VjsNCisJdG1wXzY0ICo9IHVBOw0KKwkvKiBtVyA9IHVWICog dUEgLyAxMDAwMDAwMDAwICovDQorCXJldHVybiBESVZfUk9VTkRfQ0xPU0VTVF9VTEwodG1wXzY0 LCAxMDAwMDAwMDAwKTsNCit9DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBwc2VfY29udHJvbGxl cl9vcHMgc2kzNDc0X29wcyA9IHsNCisJLnNldHVwX3BpX21hdHJpeCA9IHNpMzQ3NF9zZXR1cF9w aV9tYXRyaXgsDQorCS5waV9lbmFibGUgPSBzaTM0NzRfcGlfZW5hYmxlLA0KKwkucGlfZGlzYWJs ZSA9IHNpMzQ3NF9waV9kaXNhYmxlLA0KKwkucGlfZ2V0X2FjdHVhbF9wdyA9IHNpMzQ3NF9waV9n ZXRfYWN0dWFsX3B3LA0KKwkucGlfZ2V0X3ZvbHRhZ2UgPSBzaTM0NzRfcGlfZ2V0X3ZvbHRhZ2Us DQorCS5waV9nZXRfYWRtaW5fc3RhdGUgPSBzaTM0NzRfcGlfZ2V0X2FkbWluX3N0YXRlLA0KKwku cGlfZ2V0X3B3X3N0YXR1cyA9IHNpMzQ3NF9waV9nZXRfcHdfc3RhdHVzLA0KK307DQorDQorc3Rh dGljIHZvaWQgc2kzNDc0X2FuY2lsbGFyeV9pMmNfcmVtb3ZlKHZvaWQgKmRhdGEpDQorew0KKwlz dHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gZGF0YTsNCisNCisJaTJjX3VucmVnaXN0ZXJfZGV2 aWNlKGNsaWVudCk7DQorfQ0KKw0KK3N0YXRpYyBpbnQgc2kzNDc0X2kyY19wcm9iZShzdHJ1Y3Qg aTJjX2NsaWVudCAqY2xpZW50KQ0KK3sNCisJc3RydWN0IGRldmljZSAqZGV2ID0gJmNsaWVudC0+ ZGV2Ow0KKwlzdHJ1Y3Qgc2kzNDc0X3ByaXYgKnByaXY7DQorCXMzMiByZXQ7DQorCXU4IGZ3X3Zl cnNpb247DQorDQorCWlmICghaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkoY2xpZW50LT5hZGFwdGVy LCBJMkNfRlVOQ19JMkMpKSB7DQorCQlkZXZfZXJyKGRldiwgImkyYyBjaGVjayBmdW5jdGlvbmFs aXR5IGZhaWxlZFxuIik7DQorCQlyZXR1cm4gLUVOWElPOw0KKwl9DQorDQorCXByaXYgPSBkZXZt X2t6YWxsb2MoZGV2LCBzaXplb2YoKnByaXYpLCBHRlBfS0VSTkVMKTsNCisJaWYgKCFwcml2KQ0K KwkJcmV0dXJuIC1FTk9NRU07DQorDQorCXJldCA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShj bGllbnQsIFZFTkRPUl9JQ19JRF9SRUcpOw0KKwlpZiAocmV0IDwgMCkNCisJCXJldHVybiByZXQ7 DQorDQorCWlmIChyZXQgIT0gU0kzNDc0X0RFVklDRV9JRCkgew0KKwkJZGV2X2VycihkZXYsICJX cm9uZyBkZXZpY2UgSUQ6IDB4JXhcbiIsIHJldCk7DQorCQlyZXR1cm4gLUVOWElPOw0KKwl9DQor DQorCXJldCA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIEZJUk1XQVJFX1JFVklT SU9OX1JFRyk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisJZndfdmVyc2lvbiA9 IHJldDsNCisNCisJcmV0ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgQ0hJUF9S RVZJU0lPTl9SRUcpOw0KKwlpZiAocmV0IDwgMCkNCisJCXJldHVybiByZXQ7DQorDQorCWRldl9k YmcoZGV2LCAiQ2hpcCByZXZpc2lvbjogMHgleCwgZmlybXdhcmUgdmVyc2lvbjogMHgleFxuIiwN CisJCXJldCwgZndfdmVyc2lvbik7DQorDQorCXByaXYtPmNsaWVudFswXSA9IGNsaWVudDsNCisJ aTJjX3NldF9jbGllbnRkYXRhKGNsaWVudCwgcHJpdik7DQorDQorCXByaXYtPmNsaWVudFsxXSA9 IGkyY19uZXdfYW5jaWxsYXJ5X2RldmljZShwcml2LT5jbGllbnRbMF0sICJzZWNvbmRhcnkiLA0K KwkJCQkJCSAgIHByaXYtPmNsaWVudFswXS0+YWRkciArIDEpOw0KKwlpZiAoSVNfRVJSKHByaXYt PmNsaWVudFsxXSkpDQorCQlyZXR1cm4gUFRSX0VSUihwcml2LT5jbGllbnRbMV0pOw0KKw0KKwly ZXQgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoZGV2LCBzaTM0NzRfYW5jaWxsYXJ5X2kyY19y ZW1vdmUsIHByaXYtPmNsaWVudFsxXSk7DQorCWlmIChyZXQgPCAwKSB7DQorCQlkZXZfZXJyKCZw cml2LT5jbGllbnRbMV0tPmRldiwgIkNhbm5vdCByZWdpc3RlciByZW1vdmUgY2FsbGJhY2tcbiIp Ow0KKwkJcmV0dXJuIHJldDsNCisJfQ0KKw0KKwlyZXQgPSBpMmNfc21idXNfcmVhZF9ieXRlX2Rh dGEocHJpdi0+Y2xpZW50WzFdLCBWRU5ET1JfSUNfSURfUkVHKTsNCisJaWYgKHJldCA8IDApIHsN CisJCWRldl9lcnIoJnByaXYtPmNsaWVudFsxXS0+ZGV2LCAiQ2Fubm90IGFjY2VzcyBzZWNvbmRh cnkgUFNFIGNvbnRyb2xsZXJcbiIpOw0KKwkJcmV0dXJuIHJldDsNCisJfQ0KKw0KKwlpZiAocmV0 ICE9IFNJMzQ3NF9ERVZJQ0VfSUQpIHsNCisJCWRldl9lcnIoJnByaXYtPmNsaWVudFsxXS0+ZGV2 LA0KKwkJCSJXcm9uZyBkZXZpY2UgSUQgZm9yIHNlY29uZGFyeSBQU0UgY29udHJvbGxlcjogMHgl eFxuIiwgcmV0KTsNCisJCXJldHVybiAtRU5YSU87DQorCX0NCisNCisJcHJpdi0+bnAgPSBkZXYt Pm9mX25vZGU7DQorCXByaXYtPnBjZGV2Lm93bmVyID0gVEhJU19NT0RVTEU7DQorCXByaXYtPnBj ZGV2Lm9wcyA9ICZzaTM0NzRfb3BzOw0KKwlwcml2LT5wY2Rldi5kZXYgPSBkZXY7DQorCXByaXYt PnBjZGV2LnR5cGVzID0gRVRIVE9PTF9QU0VfQzMzOw0KKwlwcml2LT5wY2Rldi5ucl9saW5lcyA9 IFNJMzQ3NF9NQVhfQ0hBTlM7DQorDQorCXJldCA9IGRldm1fcHNlX2NvbnRyb2xsZXJfcmVnaXN0 ZXIoZGV2LCAmcHJpdi0+cGNkZXYpOw0KKwlpZiAocmV0KSB7DQorCQlkZXZfZXJyKGRldiwgIkZh aWxlZCB0byByZWdpc3RlciBQU0UgY29udHJvbGxlcjogMHgleFxuIiwgcmV0KTsNCisJCXJldHVy biByZXQ7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aTJjX2RldmljZV9pZCBzaTM0NzRfaWRbXSA9IHsNCisJeyAic2kzNDc0IiB9LA0KKwl7fQ0KK307 DQorTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIHNpMzQ3NF9pZCk7DQorDQorc3RhdGljIGNvbnN0 IHN0cnVjdCBvZl9kZXZpY2VfaWQgc2kzNDc0X29mX21hdGNoW10gPSB7DQorCXsNCisJCS5jb21w YXRpYmxlID0gInNreXdvcmtzLHNpMzQ3NCIsDQorCX0sDQorCXt9LA0KK307DQorTU9EVUxFX0RF VklDRV9UQUJMRShvZiwgc2kzNDc0X29mX21hdGNoKTsNCisNCitzdGF0aWMgc3RydWN0IGkyY19k cml2ZXIgc2kzNDc0X2RyaXZlciA9IHsNCisJLnByb2JlID0gc2kzNDc0X2kyY19wcm9iZSwNCisJ LmlkX3RhYmxlID0gc2kzNDc0X2lkLA0KKwkuZHJpdmVyID0gew0KKwkJLm5hbWUgPSAic2kzNDc0 IiwNCisJCS5vZl9tYXRjaF90YWJsZSA9IHNpMzQ3NF9vZl9tYXRjaCwNCisJfSwNCit9Ow0KK21v ZHVsZV9pMmNfZHJpdmVyKHNpMzQ3NF9kcml2ZXIpOw0KKw0KK01PRFVMRV9BVVRIT1IoIlBpb3Ry IEt1YmlrIDxwaW90ci5rdWJpa0BhZHRyYW4uY29tPiIpOw0KK01PRFVMRV9ERVNDUklQVElPTigi U2t5d29ya3MgU2kzNDc0IFBvRSBQU0UgQ29udHJvbGxlciBkcml2ZXIiKTsNCitNT0RVTEVfTElD RU5TRSgiR1BMIik7DQotLSANCjIuNDMuMA0KDQo=