From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from BEUP281CU002.outbound.protection.outlook.com (mail-germanynorthazon11020112.outbound.protection.outlook.com [52.101.169.112]) (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 2D09C255F5F; Mon, 12 May 2025 22:06:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.169.112 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747087571; cv=fail; b=O6uL63w1/jD+lwZ6ryn5gWqUEc17WJ00ZgneuBSxQm6ZTP1r6kHp4fclRTtO/DHilNfVK+OHGVkJSdnbVRvd7C65D9RBAISh+HnyxbCYKMqkkBmD+3408msBTlV6hE2sUQ/sRHJPLOgs7CQvO+nqjAV9+Qh0p5SiCfZrDOMwYNU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747087571; c=relaxed/simple; bh=qLVPo3PcSlAenO8RUlG7dfqSXepdL6BsG4wayfx4MFc=; h=From:To:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=PLd9yw9Boa2X76PvoWDgUJHzneCCnGAeyWbWA6WjzEOQvtmhR5r0EOftS032kw81+yRW6PoQfrjD/5GTeVg+94eQZhjiLi9r8qhBMcDBGLBSI8zH6wDK0+Uo7dMMT0qELHXDkAjMEQoKYnZ8GU+GqQxOCqzd639RC90LGBlDMnY= 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=Xb+4ukls; arc=fail smtp.client-ip=52.101.169.112 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="Xb+4ukls" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SHsXlxXtMJL2MBj9L2Tr3xNYLKasR1IMbzvRnDne2nonguyuH37FDy2mh198jceM9hMkRCfTXco1kpBzVKZo4F8d6jOTNP6hBi4eKzx1J/45TtUyUaMfncKWp7vf41ZEgey3ZzagTABWBM8KLctg0KltU58Zup5duLJccakgWT9rH6XGZhe1F0m0lTPTXMBCoa3ciej/NnR+YDz6IiYDzCW1G4KQedL8jWgklg8cVi0wIMZwVv04sL7cchnLdtfR2zdLBwEhNj5nvJgFTR1JQqO1Q7lL3rRIHEvV7eDmVU7MD3qj3jptYf5GCosGp96hDjJdlRDuflupjP/X4J8aqw== 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=qLVPo3PcSlAenO8RUlG7dfqSXepdL6BsG4wayfx4MFc=; b=XfisgQi4HlPwl0TA6CeDqxkSgtaH5MmB23yGkhFLyOuROjOOvvDQ83WpMp38ZjnZYqvkZNKuFHSum9HVlimn20BoocXAFrkRWdWo8hRKf3DUa/R5uUQb/4MJPD5PEQv4N/rq93K65HTnoBcFhtINbC/SzmPzQPb/Q2ISElX3ylqbFKKbct+u/L7kJxG+zRgfoMvO79A9Umu2vHG0IpzgzIPxh2GBNGyki/S6NO7Duc5Ia69KCwkP97Iji83MVKZVQTfQxWCaDHaWOzXq3uMbvIO3lxsxDKAWg9YIHWkozcNXoOZer70gGi0zyB+KKSYLGXJ3Iv/61ROvYo3TSxTjGQ== 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=qLVPo3PcSlAenO8RUlG7dfqSXepdL6BsG4wayfx4MFc=; b=Xb+4uklsEoC9Gbe1QnwrWR2M7JeF0bN0cTg/uBh8FngSjZrlskkB3BLed9zoc6fEt03MqN5slbKaDoWU/lt/RGYUlyZ+58PgRD5ECBKN+vaGwJszgLqprKms2oF6m1O51t0LkKLFn2q4/ITeHI7p3nRwN7LLqLC1GDB79UfiTv4= Received: from FRYP281MB2224.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:43::5) by BEYP281MB3892.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:b7::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.30; Mon, 12 May 2025 22:06:06 +0000 Received: from FRYP281MB2224.DEUP281.PROD.OUTLOOK.COM ([fe80::8232:294d:6d45:7192]) by FRYP281MB2224.DEUP281.PROD.OUTLOOK.COM ([fe80::8232:294d:6d45:7192%5]) with mapi id 15.20.8722.027; Mon, 12 May 2025 22:06:06 +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 2/2] net: pse-pd: Add Si3474 PSE controller driver Thread-Topic: [PATCH net-next 2/2] net: pse-pd: Add Si3474 PSE controller driver Thread-Index: AQHbw4oO5pJCJlbGe02pmebo//HQpA== Date: Mon, 12 May 2025 22:06:06 +0000 Message-ID: <036e6a6c-ba45-4288-bc2a-9fd8d860ade6@adtran.com> 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: FRYP281MB2224:EE_|BEYP281MB3892:EE_ x-ms-office365-filtering-correlation-id: 4b13a29a-b5e7-4654-a24b-08dd91a13178 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|921020|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?S3JqbmJCOGI5azVpUHUzcjduOUJMQ2lYMytKbkNiZWtiUUxaZmE2bUMyTHRi?= =?utf-8?B?OGRhdlU5R2U1ZFEwbVpXZXo5ZFV2SEJHRnlJZkxhcnBtWkF1QXYzaDR0TTdv?= =?utf-8?B?bEp4LzlDNXdoaHhwb0o1VTJ1T0hlcElvTklReXdSbUFaelRnWm1vbGNOaFE2?= =?utf-8?B?dFdoakJMbjBmWmpFUWp5WXMwMnNFQU5nSVJxTndYU1VQYW5OWFdvUk5VTDhM?= =?utf-8?B?QXk2OU1lZWJ1ZTg3VnBOWjRjUCtmMk5LQXBCd0FNeXZIYXZPRGNCS0E1ZElN?= =?utf-8?B?ZWpMbHNvOFJ2b0JmOHVhcHBYMlBRSXp0RW5LVDFzUGx2Z2VJLzdBeEt1bys1?= =?utf-8?B?SFdKVEVqaU1pc2x0MXZjSk0wbEc0M2tyTWwxM2JOU1RaT2k0Unpya0dxZnRO?= =?utf-8?B?STVFYjI0WThUK0l3SzdxRjh0bWpzUFFVb1pySzNRblZ1T0RucEp5K0dXdHdv?= =?utf-8?B?SzloV1BMeStmNng1WTREQUVmcjVqMi96b0FmL05JNjFsblBralVNVWdmOUJW?= =?utf-8?B?UnEycU92T2NBZUFJT25qMUpyVzhObW1uTEtFK3VoRHI3YXdxaXFQWTg2Ykhw?= =?utf-8?B?VkVud09IOS9WaUVabklpSHJQY1hUQVc2U0V6Z1FXYTBNbkNtYkVQcWlHTGs3?= =?utf-8?B?QXF3NG8zWXVYTS8zUmFXb1RBdlFyS0ZDaE4wVmE0RGNMc2puKzgwMGtZbkNF?= =?utf-8?B?VGgvWnJicGxPTDRVK2dzWmN3ODhyT0lsOHhZOFdtbmxzczdMZTdUdVJDQWRY?= =?utf-8?B?bE96L1k3TU1EVGcxWEZtaTZFaTJlRDJVWk8zSlE4MVc1RlUxMGd3NVA0Vysy?= =?utf-8?B?SEQ3V1YwSitWZjFkNFNEUzNWNVlmSnFYanVoSE5ndjIyeE1aSTQ5YWFoVDdk?= =?utf-8?B?aXVNblJoRWdFQXE4cStUK0pCUllicXowUXJNMS9vcEVsWXdESEUyVVJHUFB6?= =?utf-8?B?UjJXb1Jla1FSWmFVbWlPd0hVT3hsemRITlN5dkZ1L0g0TlZMc3NLSDgvYWU2?= =?utf-8?B?MVRyUnBVZWhmcFZhOGhERUxEdXJYQXJKTjJuZGVSWENTREh0YlkwS0NiQ0Vp?= =?utf-8?B?Tnc1N252OHdmTEVkS0hxVFVDL05iOGhENG8rSkVWQ1R2dEgxbVVkWnVFRklS?= =?utf-8?B?L1dVSUlpNXRFaW53Nnh0Ti9qMW4xR2dSbFkwSk44NkhwQlAranY5ZTFzRlY3?= =?utf-8?B?Z1VHaFlqbkhlOFV6OW1DNzBOQVorTDdwU2FLcDd1T0V4ZE9FUmhKUXhiaDd1?= =?utf-8?B?dlN6ZFZXRFI4UFRZZWR5WGpia0xhNFlzakw4T09CVWlDY1Q3MDhtUWJ5RUkx?= =?utf-8?B?KzhVM0kzM00xSmVYOGd5SjNIVkFIWXZXa3hRY2l5dkNtYldQQW9OSmxwMkNS?= =?utf-8?B?Tk5CZUpDS0FJSDFRWHRINWRSUVR2Wlo3dXRZTXJ2bVBaRkhUV3B1L2dlandE?= =?utf-8?B?UVJKNjluWCt0bDltNU5rSjlUL3R0OElKRzVtRXRlSUdiNkhwVFV0L0txamlO?= =?utf-8?B?azJyRzRLUlVjZDdIbW9CeHFXTjk0aUFBQk9ucWdzSnRLSHMvSjhCQWpvaU5I?= =?utf-8?B?bnZyNlJFZ3NuTjRVRkxmeHA5a0JoTzZiOFppMjh3UDJHTnRDZWZyYnNSbmFD?= =?utf-8?B?OVJnZkN2bHVXNFptZzQwN0c2eHgyNW1UaWk3V1l2cEt1MmY5WXIrbFVvS1hU?= =?utf-8?B?SUtoaUtjY0M4TE51Nk9RTm1oQXE5SW9KcWpwYmtUVDNnWUtJeFlRM1c3S1Jw?= =?utf-8?B?WGFlNFRzRDB0MG93c3FRQ0xiQlBic2Q3eTQra29LTHBIbXltbVZXcXdNMGh4?= =?utf-8?B?RElXbndidWRmbmVWMUtDK1Y2bVNrbS83Qzlmcmt2SDV1SUVtSlhpbVdRdEg2?= =?utf-8?B?NHlTYURaYXNZaWk0NER6cmkyTVB3LzhBanhySnh4U1oycU5EN2RJamV2SGg3?= =?utf-8?B?dkN0S3gxYzFOSjlDbDMzU094aG5ldThZQjMvSHV1N040VzViSkRDUjYwekRy?= =?utf-8?Q?QBRpbHjHMILfiiGwT4A0n3z4Ti0hMI=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:FRYP281MB2224.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(921020)(38070700018);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YjJaMFptUWpPYUhPNjFhd0dzZ1VBek1xbTNlUFhSTmZxbXZKS05nQ0hRb2dF?= =?utf-8?B?V2IxMHJMbzltd1dlMWx4Si83K1o0Z0ZVbENKTWpaaGw3NXNtbkQwUG1CT0Rz?= =?utf-8?B?cWlKUllSNFN2RmMvT1hTVVNFNENZcDBJZGtNTHBJNTYwV0w2cUFEbnFmQ0d1?= =?utf-8?B?anVueUVrS1ZCOEVjQ0lZOXdEK21WTDh6Z1VieVcxd2JEL2VoekFHbkhUKzZQ?= =?utf-8?B?UExjUGJ4WHF5aEVrTzZTNHFRejh6dDFOY1h0dG1XamYvTGlVYXgrb1dYWE1m?= =?utf-8?B?OGRwZjAwVTFhdFRZMDJ4QW9lQjlPMjlvUW9XQnpvYm9Ca1NiNVJuWUowNXRD?= =?utf-8?B?eGpFZUQyVUduTHE3Um1EZ0dHWnczN29FZjc0V3RXVitXemtxNzBGenl5Ylll?= =?utf-8?B?aEZWdktrd2lKanJWV1pudmdNWUVseUpOcjlWaXNDLzZFajJBRmZtckN3eEtB?= =?utf-8?B?YWF1c0xJUUJEcUJOVTlEWi9zb3lIcy9jVHdnNk9kQ1BMT2ljS0RhbiszYTZF?= =?utf-8?B?TnFjL0ZycG0rNjZiZzNrNWV3V0VyaDhKaHV6VWQzNDljNGlsWkZheWpNRk93?= =?utf-8?B?SDR1c01FSm56dG9XRUl0cHRRS080U2JWenc4YlhCVmxQbFpjYzREOE1heFFx?= =?utf-8?B?a1NTVkVSRjRWbm5Pemgvd0ZPQVVqUStEdXFJMThnNTRtZGt5bTBMN1RWbHZv?= =?utf-8?B?TU1hY0E5cDYyM2ExMGk0UUlBY1RQUURhNURqNWpadis0UkdReEk4R1lLeGxX?= =?utf-8?B?RFZNUmdyQXlGeC96Z0crRGpHanZkSXNkZnZKZ29RRDlzcUpMY1RJRGo5Ty9Z?= =?utf-8?B?TGFmQnBMZEdsemJyT3RzT2tzcE1seitoc096b0c5V2pSaXZqd1hzcjJtSDVt?= =?utf-8?B?OEdWaGIzK3p6ZUxaQlUyeDFJVjgxR01YYi9OY3cxdzQwZGJUYlJEUjIrRys0?= =?utf-8?B?Vzd1ZSswR04zMXJJOUNLQTdxbHJQMWZOaklQa1BLVGR1bFpOamsrM1JYZFVW?= =?utf-8?B?Tml6NnRBcko0NXhrSTBVRHNpanF0dDBkQ1J3Q1NEbzFlNHFZUEVkU2ZON1lI?= =?utf-8?B?dEtEcE1KUHRVa2EzZjhtSHJZSlBOcVNpQ1JlOVZRUnZVbjRBNW95b2Z0bFZ6?= =?utf-8?B?K2FnYyt2bm95cGtha1ZtTzVqdlFOWVZKWUM3aEpiZjRLMUF4cnYxdW15a0E3?= =?utf-8?B?WEY4SzNmSlJnMXFpNW1HZUpGak85R3ZGZEg1OTFQRXBQK0hodjBLMHBYZzlo?= =?utf-8?B?RGlpMjgrNkdqNzFpZ3o3NWRVenBXWVNZaXRDSk5KaDgrUm1tYlM3MVFUbUdq?= =?utf-8?B?c09rSXhCZGpwK1c4SDU3TDdaeVltVlpuRGdBR1VjRjgwNkFOY0hSR3FFei9y?= =?utf-8?B?RTREWGtCNUlMcUdtaXV2OGcyMkZQbXoxNlUxU0I0YzRQZ0FITWRMTkF1TXcr?= =?utf-8?B?bm1oam1yK2hVR2puSDdEVHNlMnMxME5VM1VocVJvaU5Nck9vTGFaallCaHNN?= =?utf-8?B?YjhTem5WVkxtRkJlV1ovZWc1M0RUNHhHVUVWb2tuYUFwYWU0Nm9wb0lOQklR?= =?utf-8?B?cTBHNFJvUlU4Nk1jT3puUXJoWnk2NVNpdjl6WEZjdXE1dWVmL1gvdnlJMTcz?= =?utf-8?B?Yk1VN25IVHhrN1pjYzk0NmVSZjJBSlEwUElCYisvUEg0UDNmREppYVhmVkhJ?= =?utf-8?B?d2Y5MWd1Q0NxdlU5V2h1TmVWaFFBb04vbmpwdDlkZ3F1YnBGeTlWRlF1RDh1?= =?utf-8?B?amFZbDF2NlFyOFVadUFaTWlrZENtajM5QTdEcFlycUpkbm8rRnFXbktZM25m?= =?utf-8?B?UDgzSE1XKzY0YnZ5RDNoaUtFU1ZUaUY1dXYvd0thRGVjZmo3Rk9sZEpPRDhq?= =?utf-8?B?dmRLWW9XaTkwRW5TMUFHcE1YRmNCc09rR3o4Mjc3YmZBOHl3NHhmWlFtZ1JL?= =?utf-8?B?MUl4N2p1SkhFWEdQWDBuY0NDV1ZnL2Q5L0JrbVJUOUYxWllwbVZNQy9uUko1?= =?utf-8?B?QUpsRE8wb0dhamREZkZ2ZE0vUVlkM2pnalFYbmhpSnRqWEFhaURIWGpWTHQ1?= =?utf-8?B?akZKZVNmdTFOUUxjK1ZDSk5OZXQxY2pUM2pkRldUcEoyMVp2Z2lvOEkwS2tS?= =?utf-8?Q?ppcnl5ryN47Q7IRRQbnmJwNf5?= 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: FRYP281MB2224.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 4b13a29a-b5e7-4654-a24b-08dd91a13178 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 May 2025 22:06:06.1591 (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: Olflaag6ExIco37NXx1CP4Rjsk/PaDkeRYfkSJ68ZvBI5JXosj2qo3O8CYmkeY/s3VMpXO9tL6nQ90pDjuQPcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEYP281MB3892 RnJvbTogUGlvdHIgS3ViaWsgPHBpb3RyLmt1YmlrQGFkdHJhbi5jb20+DQoNCkFkZCBhIGRyaXZl ciBmb3IgdGhlIFNreXdvcmtzIFNpMzQ3NCBJMkMgUG93ZXIgU291cmNpbmcgRXF1aXBtZW50DQpj b250cm9sbGVyLg0KDQpCYXNlZCBvbiB0aGUgVFBTMjM4ODEgZHJpdmVyIGNvZGUuDQoNCkRyaXZl ciBzdXBwb3J0cyBiYXNpYyBmZWF0dXJlcyBvZiBTaTM0NzQgSUM6DQotIGdldCBwb3J0IHN0YXR1 cywNCi0gZ2V0IHBvcnQgcG93ZXIsDQotIGdldCBwb3J0IHZvbHRhZ2UsDQotIGVuYWJsZS9kaXNh YmxlIHBvcnQgcG93ZXIuDQoNCk9ubHkgNHAgY29uZmlndXJhdGlvbnMgYXJlIHN1cHBvcnRlZCBh dCB0aGlzIG1vbWVudC4NCg0KU2lnbmVkLW9mZi1ieTogUGlvdHIgS3ViaWsgPHBpb3RyLmt1Ymlr QGFkdHJhbi5jb20+DQotLS0NCiBkcml2ZXJzL25ldC9wc2UtcGQvS2NvbmZpZyAgfCAgMTAgKw0K IGRyaXZlcnMvbmV0L3BzZS1wZC9NYWtlZmlsZSB8ICAgMSArDQogZHJpdmVycy9uZXQvcHNlLXBk L3NpMzQ3NC5jIHwgNjU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIDMg ZmlsZXMgY2hhbmdlZCwgNjY1IGluc2VydGlvbnMoKykNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9uZXQvcHNlLXBkL3NpMzQ3NC5jDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wc2Ut cGQvS2NvbmZpZyBiL2RyaXZlcnMvbmV0L3BzZS1wZC9LY29uZmlnDQppbmRleCA3ZmFiOTE2YTdm NDYuLmQxYjEwMGViOGM1MiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3BzZS1wZC9LY29uZmln DQorKysgYi9kcml2ZXJzL25ldC9wc2UtcGQvS2NvbmZpZw0KQEAgLTMyLDYgKzMyLDE2IEBAIGNv bmZpZyBQU0VfUEQ2OTJYMA0KIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUs IGNob29zZSBNIGhlcmU6IHRoZQ0KIAkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBwZDY5MngwLg0K IA0KK2NvbmZpZyBQU0VfU0kzNDc0DQorCXRyaXN0YXRlICJTaTM0NzQgUFNFIGNvbnRyb2xsZXIi DQorCWRlcGVuZHMgb24gSTJDDQorCWhlbHANCisJICBUaGlzIG1vZHVsZSBwcm92aWRlcyBzdXBw b3J0IGZvciBTaTM0NzQgcmVndWxhdG9yIGJhc2VkIEV0aGVybmV0DQorCSAgUG93ZXIgU291cmNp bmcgRXF1aXBtZW50Lg0KKw0KKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUs IGNob29zZSBNIGhlcmU6IHRoZQ0KKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzaTM0NzQuDQor DQogY29uZmlnIFBTRV9UUFMyMzg4MQ0KIAl0cmlzdGF0ZSAiVFBTMjM4ODEgUFNFIGNvbnRyb2xs ZXIiDQogCWRlcGVuZHMgb24gSTJDDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHNlLXBkL01h a2VmaWxlIGIvZHJpdmVycy9uZXQvcHNlLXBkL01ha2VmaWxlDQppbmRleCA5ZDI4OThiMzY3Mzcu LmNjNzhmN2VhN2Y1ZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3BzZS1wZC9NYWtlZmlsZQ0K KysrIGIvZHJpdmVycy9uZXQvcHNlLXBkL01ha2VmaWxlDQpAQCAtNSw0ICs1LDUgQEAgb2JqLSQo Q09ORklHX1BTRV9DT05UUk9MTEVSKSArPSBwc2VfY29yZS5vDQogDQogb2JqLSQoQ09ORklHX1BT RV9SRUdVTEFUT1IpICs9IHBzZV9yZWd1bGF0b3Iubw0KIG9iai0kKENPTkZJR19QU0VfUEQ2OTJY MCkgKz0gcGQ2OTJ4MC5vDQorb2JqLSQoQ09ORklHX1BTRV9TSTM0NzQpICs9IHNpMzQ3NC5vDQog b2JqLSQoQ09ORklHX1BTRV9UUFMyMzg4MSkgKz0gdHBzMjM4ODEubw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3BzZS1wZC9zaTM0NzQuYyBiL2RyaXZlcnMvbmV0L3BzZS1wZC9zaTM0NzQuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uNjdmMjA3MGYyMWJiDQot LS0gL2Rldi9udWxsDQorKysgYi9kcml2ZXJzL25ldC9wc2UtcGQvc2kzNDc0LmMNCkBAIC0wLDAg KzEsNjU0IEBADQorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQ0KKy8q DQorICogRHJpdmVyIGZvciB0aGUgU2t5d29ya3MgU2kzNDc0IFBvRSBQU0UgQ29udHJvbGxlcg0K KyAqDQorICogQ2hpcCBBcmNoaXRlY3R1cmUgJiBUZXJtaW5vbG9neToNCisgKg0KKyAqIFRoZSBT aTM0NzQgaXMgYSBzaW5nbGUtY2hpcCBQb0UgUFNFIGNvbnRyb2xsZXIgbWFuYWdpbmcgOCBwaHlz aWNhbCBwb3dlcg0KKyAqIGRlbGl2ZXJ5IGNoYW5uZWxzLiBJbnRlcm5hbGx5LCBpdCdzIHN0cnVj dHVyZWQgaW50byB0d28gbG9naWNhbCAiUXVhZHMiLg0KKyAqDQorICogUXVhZCAwOiBNYW5hZ2Vz IHBoeXNpY2FsIGNoYW5uZWxzICgncG9ydHMnIGluIGRhdGFzaGVldCkgMCwgMSwgMiwgMw0KKyAq IFF1YWQgMTogTWFuYWdlcyBwaHlzaWNhbCBjaGFubmVscyAoJ3BvcnRzJyBpbiBkYXRhc2hlZXQp IDQsIDUsIDYsIDcNCisgKg0KKyAqIEVhY2ggUXVhZCBpcyBhY2Nlc3NlZCB2aWEgYSBzZXBhcmF0 ZSBJMkMgYWRkcmVzcy4gVGhlIGJhc2UgYWRkcmVzcyByYW5nZSBpcw0KKyAqIHNldCBieSBoYXJk d2FyZSBwaW5zIEExLUE0LCBhbmQgdGhlIHNwZWNpZmljIGFkZHJlc3Mgc2VsZWN0cyBRdWFkIDAg KHVzdWFsbHkNCisgKiB0aGUgbG93ZXIvZXZlbiBhZGRyZXNzKSBvciBRdWFkIDEgKHVzdWFsbHkg dGhlIGhpZ2hlci9vZGQgYWRkcmVzcykuDQorICogU2VlIGRhdGFzaGVldCBUYWJsZSAyLjIgZm9y IHRoZSBhZGRyZXNzIG1hcHBpbmcuDQorICoNCisgKiBXaGlsZSB0aGUgUXVhZHMgbWFuYWdlIGNo YW5uZWwtc3BlY2lmaWMgb3BlcmF0aW9ucywgdGhlIFNpMzQ3NCBwYWNrYWdlIGhhcw0KKyAqIHNl dmVyYWwgcmVzb3VyY2VzIHNoYXJlZCBhY3Jvc3MgdGhlIGVudGlyZSBjaGlwOg0KKyAqIC0gU2lu Z2xlIFJFU0VUYiBpbnB1dCBwaW4uDQorICogLSBTaW5nbGUgSU5UYiBvdXRwdXQgcGluIChzaWdu YWxzIGludGVycnVwdHMgZnJvbSAqZWl0aGVyKiBRdWFkKS4NCisgKiAtIFNpbmdsZSBPU1MgaW5w dXQgcGluIChFbWVyZ2VuY3kgU2h1dGRvd24pLg0KKyAqIC0gR2xvYmFsIEkyQyBBZGRyZXNzICgw eDdGKSB1c2VkIGZvciBmaXJtd2FyZSB1cGRhdGVzLg0KKyAqIC0gR2xvYmFsIHN0YXR1cyBtb25p dG9yaW5nIChUZW1wZXJhdHVyZSwgVkREL1ZQV1IgVW5kZXJ2b2x0YWdlIExvY2tvdXQpLg0KKyAq DQorICogRHJpdmVyIEFyY2hpdGVjdHVyZToNCisgKg0KKyAqIFRvIGhhbmRsZSB0aGUgbWl4IG9m IHBlci1RdWFkIGFjY2VzcyBhbmQgc2hhcmVkIHJlc291cmNlcyBjb3JyZWN0bHksIHRoaXMNCisg KiBkcml2ZXIgdHJlYXRzIHRoZSBlbnRpcmUgU2kzNDc0IHBhY2thZ2UgYXMgb25lIGxvZ2ljYWwg ZGV2aWNlLiBUaGUgZHJpdmVyDQorICogaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcmlt YXJ5IEkyQyBhZGRyZXNzIChRdWFkIDApIHRha2VzIG93bmVyc2hpcC4NCisgKiBJdCBkaXNjb3Zl cnMgYW5kIG1hbmFnZXMgdGhlIEkyQyBjbGllbnQgZm9yIHRoZSBzZWNvbmRhcnkgYWRkcmVzcyAo UXVhZCAxKS4NCisgKiBUaGlzIHByaW1hcnkgaW5zdGFuY2UgaGFuZGxlcyBzaGFyZWQgcmVzb3Vy Y2VzIGxpa2UgSVJRIG1hbmFnZW1lbnQgYW5kDQorICogcmVnaXN0ZXJzIGEgc2luZ2xlIFBTRSBj b250cm9sbGVyIGRldmljZSByZXByZXNlbnRpbmcgYWxsIGxvZ2ljYWwgUElzLg0KKyAqIEludGVy bmFsIGZ1bmN0aW9ucyByb3V0ZSBJMkMgY29tbWFuZHMgdG8gdGhlIGFwcHJvcHJpYXRlIFF1YWQn cyBpMmNfY2xpZW50DQorICogYmFzZWQgb24gdGhlIHRhcmdldCBjaGFubmVsIG9yIFBJLg0KKyAq DQorICogVGVybWlub2xvZ3kgTWFwcGluZzoNCisgKg0KKyAqIC0gIlBJIiAoUG93ZXIgSW50ZXJm YWNlKTogUmVmZXJzIHRvIHRoZSBsb2dpY2FsIFBTRSBwb3J0IGFzIGRlZmluZWQgYnkNCisgKiBJ RUVFIDgwMi4zICh0eXBpY2FsbHkgY29ycmVzcG9uZHMgdG8gYW4gUko0NSBjb25uZWN0b3IpLiBU aGlzIGlzIHRoZQ0KKyAqIGBpZGAgKDAtNykgdXNlZCBpbiB0aGUgcHNlX2NvbnRyb2xsZXJfb3Bz Lg0KKyAqIC0gIkNoYW5uZWwiOiBSZWZlcnMgdG8gb25lIG9mIHRoZSA4IHBoeXNpY2FsIHBvd2Vy IGNvbnRyb2wgcGF0aHMgd2l0aGluDQorICogdGhlIFNpMzQ3NCBjaGlwIGl0c2VsZiAoaGFyZHdh cmUgY2hhbm5lbHMgMC03KS4gVGhpcyB0ZXJtaW5vbG9neSBpcw0KKyAqIHVzZWQgaW50ZXJuYWxs eSB3aXRoaW4gdGhlIGRyaXZlciB0byBhdm9pZCBjb25mdXNpb24gd2l0aCAncG9ydHMnLg0KKyAq IC0gIlF1YWQiOiBPbmUgb2YgdGhlIHR3byBpbnRlcm5hbCA0LWNoYW5uZWwgbWFuYWdlbWVudCB1 bml0cyB3aXRoaW4gdGhlDQorICogU2kzNDc0LCBlYWNoIGFjY2Vzc2VkIHZpYSBpdHMgb3duIEky QyBhZGRyZXNzLg0KKyAqDQorICogUmVsYXRpb25zaGlwOg0KKyAqIC0gQSAyLVBhaXIgUG9FIFBJ IHVzZXMgMSBDaGFubmVsLg0KKyAqIC0gQSA0LVBhaXIgUG9FIFBJIHVzZXMgMiBDaGFubmVscy4N CisgKg0KKyAqIEFTQ0lJIFNjaGVtYXRpYzoNCisgKg0KKyAqICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisgKiB8ICAgICAgICAgICAgICAg ICAgICBTaTM0NzQgQ2hpcCAgICAgICAgICAgICAgICAgICAgICB8DQorICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KKyAqIHwgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSsgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIHwNCisgKiB8IHwg ICAgICBRdWFkIDAgICAgICAgICB8ICAgICB8ICAgICAgUXVhZCAxICAgICAgICAgfCB8DQorICog fCB8IENoYW5uZWxzIDAsIDEsIDIsIDMgfCAgICAgfCBDaGFubmVscyA0LCA1LCA2LCA3IHwgfA0K KyAqIHwgKy0tLS0tLS0tLS1eLS0tLS0tLS0tLSsgICAgICstLS0tLS0tXi0tLS0tLS0tLS0tLS0r IHwNCisgKiB8IEkyQyBBZGRyIDAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgSTJDIEFkZHIg MSAgICB8DQorICogfCAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAgICAg ICAgICAgICAgfA0KKyAqIHwgKFByaW1hcnkgRHJpdmVyIEluc3RhbmNlKSAoTWFuYWdlZCBieSBQ cmltYXJ5KSAgICAgIHwNCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8DQorICogfCBTaGFyZWQgUmVzb3VyY2VzIChhZmZlY3Qgd2hvbGUg Y2hpcCk6ICAgICAgICAgICAgICAgfA0KKyAqIHwgIC0gU2luZ2xlIElOVGIgT3V0cHV0IC0+IEhh bmRsZWQgYnkgUHJpbWFyeSAgICAgICAgIHwNCisgKiB8ICAtIFNpbmdsZSBSRVNFVGIgSW5wdXQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQorICogfCAgLSBTaW5nbGUgT1NTIElucHV0 ICAgLT4gSGFuZGxlZCBieSBQcmltYXJ5ICAgICAgICAgfA0KKyAqIHwgIC0gR2xvYmFsIEkyQyBB ZGRyICgweDdGKSBmb3IgRmlybXdhcmUgVXBkYXRlICAgICAgIHwNCisgKiB8ICAtIEdsb2JhbCBT dGF0dXMgKFRlbXAsIFZERC9WUFdSIFVWTE8pICAgICAgICAgICAgICB8DQorICogKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KKyAqICAgICAg ICB8ICAgfCAgIHwgICB8ICAgICAgICB8ICAgfCAgIHwgICB8DQorICogICAgICAgIENoMCBDaDEg Q2gyIENoMyAgICAgIENoNCBDaDUgQ2g2IENoNyAgKFBoeXNpY2FsIENoYW5uZWxzKQ0KKyAqDQor ICogRXhhbXBsZSBNYXBwaW5nIChMb2dpY2FsIFBJIHRvIFBoeXNpY2FsIENoYW5uZWwocykpOg0K KyAqICogMi1QYWlyIE1vZGUgKDggUElzKToNCisgKiBQSSAwIC0+IENoIDANCisgKiBQSSAxIC0+ IENoIDENCisgKiAuLi4NCisgKiBQSSA3IC0+IENoIDcNCisgKiAqIDQtUGFpciBNb2RlICg0IFBJ cyk6DQorICogUEkgMCAtPiBDaCAwICsgQ2ggMSAgKE1hbmFnZWQgdmlhIFF1YWQgMCBBZGRyKQ0K KyAqIFBJIDEgLT4gQ2ggMiArIENoIDMgIChNYW5hZ2VkIHZpYSBRdWFkIDAgQWRkcikNCisgKiBQ SSAyIC0+IENoIDQgKyBDaCA1ICAoTWFuYWdlZCB2aWEgUXVhZCAxIEFkZHIpDQorICogUEkgMyAt PiBDaCA2ICsgQ2ggNyAgKE1hbmFnZWQgdmlhIFF1YWQgMSBBZGRyKQ0KKyAqIChOb3RlOiBBY3R1 YWwgbWFwcGluZyBkZXBlbmRzIG9uIERldmljZSBUcmVlIGFuZCBQT1JUX1JFTUFQIGNvbmZpZykN CisgKi8NCisNCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4NCisjaW5jbHVkZSA8bGludXgvaTJj Lmg+DQorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9vZi5oPg0K KyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCisjaW5jbHVkZSA8bGludXgvcHNl LXBkL3BzZS5oPg0KKw0KKyNkZWZpbmUgU0kzNDc0X01BWF9DSEFOUyA4DQorDQorI2RlZmluZSBN QU5VRkFDVFVSRVJfSUQgMHgwOA0KKyNkZWZpbmUgSUNfSUQgMHgwNQ0KKyNkZWZpbmUgU0kzNDc0 X0RFVklDRV9JRCAoTUFOVUZBQ1RVUkVSX0lEIDw8IDMgfCBJQ19JRCkNCisNCisvKiBNaXNjIHJl Z2lzdGVycyAqLw0KKyNkZWZpbmUgVkVORE9SX0lDX0lEX1JFRyAweDFCDQorI2RlZmluZSBURU1Q RVJBVFVSRV9SRUcgMHgyQw0KKyNkZWZpbmUgRklSTVdBUkVfUkVWSVNJT05fUkVHIDB4NDENCisj ZGVmaW5lIENISVBfUkVWSVNJT05fUkVHIDB4NDMNCisNCisvKiBNYWluIHN0YXR1cyByZWdpc3Rl cnMgKi8NCisjZGVmaW5lIFBPV0VSX1NUQVRVU19SRUcgMHgxMA0KKyNkZWZpbmUgUE9SVF9NT0RF X1JFRyAweDEyDQorI2RlZmluZSBQQl9QT1dFUl9FTkFCTEVfUkVHIDB4MTkNCisNCisvKiBQT1JU biBDdXJyZW50ICovDQorI2RlZmluZSBQT1JUMV9DVVJSRU5UX0xTQl9SRUcgMHgzMA0KKw0KKy8q IFBPUlRuIEN1cnJlbnQgW21BXSwgcmV0dXJuIGluIFtuQV0gKi8NCisvKiAxMDAwICogKChQT1JU bl9DVVJSRU5UX01TQiA8PCA4KSArIFBPUlRuX0NVUlJFTlRfTFNCKSAvIDE2Mzg0ICovDQorI2Rl ZmluZSBTSTM0NzRfTkFfU1RFUCAoMTAwMCAqIDEwMDAgKiAxMDAwIC8gMTYzODQpDQorDQorLyog VlBXUiBWb2x0YWdlICovDQorI2RlZmluZSBWUFdSX0xTQl9SRUcgMHgyRQ0KKyNkZWZpbmUgVlBX Ul9NU0JfUkVHIDB4MkYNCisNCisvKiBQT1JUbiBWb2x0YWdlICovDQorI2RlZmluZSBQT1JUMV9W T0xUQUdFX0xTQl9SRUcgMHgzMg0KKw0KKy8qIFZQV1IgVm9sdGFnZSBbVl0sIHJldHVybiBpbiBb dVZdICovDQorLyogNjAgKiAoKCBWUFdSX01TQiA8PCA4KSArIFZQV1JfTFNCKSAvIDE2Mzg0ICov DQorI2RlZmluZSBTSTM0NzRfVVZfU1RFUCAoMTAwMCAqIDEwMDAgKiA2MCAvIDE2Mzg0KQ0KKw0K K3N0cnVjdCBzaTM0NzRfcGlfZGVzYyB7DQorCXU4IGNoYW5bMl07DQorCWJvb2wgaXNfNHA7DQor fTsNCisNCitzdHJ1Y3Qgc2kzNDc0X3ByaXYgew0KKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50 WzJdOw0KKwlzdHJ1Y3QgcHNlX2NvbnRyb2xsZXJfZGV2IHBjZGV2Ow0KKwlzdHJ1Y3QgZGV2aWNl X25vZGUgKm5wOw0KKwlzdHJ1Y3Qgc2kzNDc0X3BpX2Rlc2MgcGlbU0kzNDc0X01BWF9DSEFOU107 DQorfTsNCisNCitzdGF0aWMgc3RydWN0IHNpMzQ3NF9wcml2ICp0b19zaTM0NzRfcHJpdihzdHJ1 Y3QgcHNlX2NvbnRyb2xsZXJfZGV2ICpwY2RldikNCit7DQorCXJldHVybiBjb250YWluZXJfb2Yo cGNkZXYsIHN0cnVjdCBzaTM0NzRfcHJpdiwgcGNkZXYpOw0KK30NCisNCitzdGF0aWMgaW50IHNp MzQ3NF9waV9nZXRfYWRtaW5fc3RhdGUoc3RydWN0IHBzZV9jb250cm9sbGVyX2RldiAqcGNkZXYs IGludCBpZCwNCisJCQkJICAgICBzdHJ1Y3QgcHNlX2FkbWluX3N0YXRlICphZG1pbl9zdGF0ZSkN Cit7DQorCXN0cnVjdCBzaTM0NzRfcHJpdiAqcHJpdiA9IHRvX3NpMzQ3NF9wcml2KHBjZGV2KTsN CisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudDsNCisJYm9vbCBpc19lbmFibGVkID0gZmFsc2U7 DQorCXU4IGNoYW4wLCBjaGFuMTsNCisJczMyIHJldDsNCisNCisJaWYgKGlkID49IFNJMzQ3NF9N QVhfQ0hBTlMpDQorCQlyZXR1cm4gLUVSQU5HRTsNCisNCisJY2hhbjAgPSBwcml2LT5waVtpZF0u Y2hhblswXTsNCisJY2hhbjEgPSBwcml2LT5waVtpZF0uY2hhblsxXTsNCisNCisJaWYgKGNoYW4w IDwgNCkNCisJCWNsaWVudCA9IHByaXYtPmNsaWVudFswXTsNCisJZWxzZQ0KKwkJY2xpZW50ID0g cHJpdi0+Y2xpZW50WzFdOw0KKw0KKwlyZXQgPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xp ZW50LCBQT1JUX01PREVfUkVHKTsNCisJaWYgKHJldCA8IDApIHsNCisJCWFkbWluX3N0YXRlLT5j MzNfYWRtaW5fc3RhdGUgPQ0KKwkJCUVUSFRPT0xfQzMzX1BTRV9BRE1JTl9TVEFURV9VTktOT1dO Ow0KKwkJcmV0dXJuIHJldDsNCisJfQ0KKw0KKwlpc19lbmFibGVkID0gKChyZXQgJiAoMHgwMyA8 PCAoMiAqIChjaGFuMCAlIDQpKSkpIHwNCisJCSAgICAgIChyZXQgJiAoMHgwMyA8PCAoMiAqIChj aGFuMSAlIDQpKSkpKSAhPSAwOw0KKw0KKwlpZiAoaXNfZW5hYmxlZCkNCisJCWFkbWluX3N0YXRl LT5jMzNfYWRtaW5fc3RhdGUgPQ0KKwkJCUVUSFRPT0xfQzMzX1BTRV9BRE1JTl9TVEFURV9FTkFC TEVEOw0KKwllbHNlDQorCQlhZG1pbl9zdGF0ZS0+YzMzX2FkbWluX3N0YXRlID0NCisJCQlFVEhU T09MX0MzM19QU0VfQURNSU5fU1RBVEVfRElTQUJMRUQ7DQorDQorCXJldHVybiAwOw0KK30NCisN CitzdGF0aWMgaW50IHNpMzQ3NF9waV9nZXRfcHdfc3RhdHVzKHN0cnVjdCBwc2VfY29udHJvbGxl cl9kZXYgKnBjZGV2LCBpbnQgaWQsDQorCQkJCSAgIHN0cnVjdCBwc2VfcHdfc3RhdHVzICpwd19z dGF0dXMpDQorew0KKwlzdHJ1Y3Qgc2kzNDc0X3ByaXYgKnByaXYgPSB0b19zaTM0NzRfcHJpdihw Y2Rldik7DQorCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQ7DQorCWJvb2wgZGVsaXZlcmluZyA9 IGZhbHNlOw0KKwl1OCBjaGFuMCwgY2hhbjE7DQorCXMzMiByZXQ7DQorDQorCWlmIChpZCA+PSBT STM0NzRfTUFYX0NIQU5TKQ0KKwkJcmV0dXJuIC1FUkFOR0U7DQorDQorCWNoYW4wID0gcHJpdi0+ cGlbaWRdLmNoYW5bMF07DQorCWNoYW4xID0gcHJpdi0+cGlbaWRdLmNoYW5bMV07DQorDQorCWlm IChjaGFuMCA8IDQpDQorCQljbGllbnQgPSBwcml2LT5jbGllbnRbMF07DQorCWVsc2UNCisJCWNs aWVudCA9IHByaXYtPmNsaWVudFsxXTsNCisNCisJcmV0ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9k YXRhKGNsaWVudCwgUE9XRVJfU1RBVFVTX1JFRyk7DQorCWlmIChyZXQgPCAwKSB7DQorCQlwd19z dGF0dXMtPmMzM19wd19zdGF0dXMgPSBFVEhUT09MX0MzM19QU0VfUFdfRF9TVEFUVVNfVU5LTk9X TjsNCisJCXJldHVybiByZXQ7DQorCX0NCisNCisJZGVsaXZlcmluZyA9IChyZXQgJiAoQklUKChj aGFuMCAlIDQpICsgNCkgfCBCSVQoKGNoYW4xICUgNCkgKyA0KSkpICE9IDA7DQorDQorCWlmIChk ZWxpdmVyaW5nKQ0KKwkJcHdfc3RhdHVzLT5jMzNfcHdfc3RhdHVzID0NCisJCQlFVEhUT09MX0Mz M19QU0VfUFdfRF9TVEFUVVNfREVMSVZFUklORzsNCisJZWxzZQ0KKwkJcHdfc3RhdHVzLT5jMzNf cHdfc3RhdHVzID0gRVRIVE9PTF9DMzNfUFNFX1BXX0RfU1RBVFVTX0RJU0FCTEVEOw0KKw0KKwly ZXR1cm4gMDsNCit9DQorDQorLyogUGFyc2UgcHNlLXBpcyBzdWJub2RlIGludG8gY2hhbiBhcnJh eSBvZiBzaTM0NzRfcHJpdiAqLw0KK3N0YXRpYyBpbnQgc2kzNDc0X2dldF9vZl9jaGFubmVscyhz dHJ1Y3Qgc2kzNDc0X3ByaXYgKnByaXYpDQorew0KKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBzZV9u b2RlLCAqbm9kZTsNCisJc3RydWN0IHBzZV9waSAqcGk7DQorCXUzMiBwaV9ubywgY2hhbl9pZDsN CisJczggcGFpcnNldF9jbnQ7DQorCXMzMiByZXQgPSAwOw0KKw0KKwlwc2Vfbm9kZSA9IG9mX2dl dF9jaGlsZF9ieV9uYW1lKHByaXYtPm5wLCAicHNlLXBpcyIpOw0KKwlpZiAoIXBzZV9ub2RlKSB7 DQorCQlkZXZfd2FybigmcHJpdi0+Y2xpZW50WzBdLT5kZXYsDQorCQkJICJVbmFibGUgdG8gcGFy c2UgRFQgUFNFIHBvd2VyIGludGVyZmFjZSBtYXRyaXgsIG5vIHBzZS1waXMgbm9kZVxuIik7DQor CQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKw0KKwlmb3JfZWFjaF9jaGlsZF9vZl9ub2RlKHBzZV9u b2RlLCBub2RlKSB7DQorCQlpZiAoIW9mX25vZGVfbmFtZV9lcShub2RlLCAicHNlLXBpIikpDQor CQkJY29udGludWU7DQorDQorCQlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCAicmVn IiwgJnBpX25vKTsNCisJCWlmIChyZXQpIHsNCisJCQlkZXZfZXJyKCZwcml2LT5jbGllbnRbMF0t PmRldiwNCisJCQkJIkZhaWxlZCB0byByZWFkIHBzZS1waSByZWcgcHJvcGVydHlcbiIpOw0KKwkJ CXJldCA9IC1FSU5WQUw7DQorCQkJZ290byBvdXQ7DQorCQl9DQorCQlpZiAocGlfbm8gPj0gU0kz NDc0X01BWF9DSEFOUykgew0KKwkJCWRldl9lcnIoJnByaXYtPmNsaWVudFswXS0+ZGV2LA0KKwkJ CQkiSW52YWxpZCBwb3dlciBpbnRlcmZhY2UgbnVtYmVyICV1XG4iLCBwaV9ubyk7DQorCQkJcmV0 ID0gLUVJTlZBTDsNCisJCQlnb3RvIG91dDsNCisJCX0NCisNCisJCXBhaXJzZXRfY250ID0gb2Zf cHJvcGVydHlfY291bnRfZWxlbXNfb2Zfc2l6ZShub2RlLCAicGFpcnNldHMiLA0KKwkJCQkJCQkg ICAgICBzaXplb2YodTMyKSk7DQorCQlpZiAoIXBhaXJzZXRfY250KSB7DQorCQkJZGV2X2Vycigm cHJpdi0+Y2xpZW50WzBdLT5kZXYsDQorCQkJCSJGYWlsZWQgdG8gZ2V0IHBhaXJzZXRzIHByb3Bl cnR5XG4iKTsNCisJCQlyZXQgPSAtRUlOVkFMOw0KKwkJCWdvdG8gb3V0Ow0KKwkJfQ0KKw0KKwkJ cGkgPSAmcHJpdi0+cGNkZXYucGlbcGlfbm9dOw0KKwkJaWYgKCFwaS0+cGFpcnNldFswXS5ucCkg ew0KKwkJCWRldl9lcnIoJnByaXYtPmNsaWVudFswXS0+ZGV2LA0KKwkJCQkiTWlzc2luZyBwYWly c2V0IHJlZmVyZW5jZSwgcG93ZXIgaW50ZXJmYWNlOiAldVxuIiwNCisJCQkJcGlfbm8pOw0KKwkJ CXJldCA9IC1FSU5WQUw7DQorCQkJZ290byBvdXQ7DQorCQl9DQorDQorCQlyZXQgPSBvZl9wcm9w ZXJ0eV9yZWFkX3UzMihwaS0+cGFpcnNldFswXS5ucCwgInJlZyIsICZjaGFuX2lkKTsNCisJCWlm IChyZXQpIHsNCisJCQlkZXZfZXJyKCZwcml2LT5jbGllbnRbMF0tPmRldiwNCisJCQkJIkZhaWxl ZCB0byByZWFkIGNoYW5uZWwgcmVnIHByb3BlcnR5LCByZXQ6JWRcbiIsDQorCQkJCXJldCk7DQor CQkJcmV0ID0gLUVJTlZBTDsNCisJCQlnb3RvIG91dDsNCisJCX0NCisJCXByaXYtPnBpW3BpX25v XS5jaGFuWzBdID0gY2hhbl9pZDsNCisJCXByaXYtPnBpW3BpX25vXS5pc180cCA9IEZBTFNFOw0K Kw0KKwkJaWYgKHBhaXJzZXRfY250ID09IDIpIHsNCisJCQlpZiAoIXBpLT5wYWlyc2V0WzFdLm5w KSB7DQorCQkJCWRldl9lcnIoJnByaXYtPmNsaWVudFswXS0+ZGV2LA0KKwkJCQkJIk1pc3Npbmcg cGFpcnNldCByZWZlcmVuY2UsIHBvd2VyIGludGVyZmFjZTogJXVcbiIsDQorCQkJCQlwaV9ubyk7 DQorCQkJCXJldCA9IC1FSU5WQUw7DQorCQkJCWdvdG8gb3V0Ow0KKwkJCX0NCisNCisJCQlyZXQg PSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihwaS0+cGFpcnNldFsxXS5ucCwgInJlZyIsDQorCQkJCQkJ ICAgJmNoYW5faWQpOw0KKwkJCWlmIChyZXQpIHsNCisJCQkJZGV2X2VycigmcHJpdi0+Y2xpZW50 WzBdLT5kZXYsDQorCQkJCQkiRmFpbGVkIHRvIHJlYWQgY2hhbm5lbCByZWcgcHJvcGVydHlcbiIp Ow0KKwkJCQlyZXQgPSAtRUlOVkFMOw0KKwkJCQlnb3RvIG91dDsNCisJCQl9DQorCQkJcHJpdi0+ cGlbcGlfbm9dLmNoYW5bMV0gPSBjaGFuX2lkOw0KKwkJCXByaXYtPnBpW3BpX25vXS5pc180cCA9 IFRSVUU7DQorCQl9IGVsc2Ugew0KKwkJCWRldl9lcnIoJnByaXYtPmNsaWVudFswXS0+ZGV2LA0K KwkJCQkiTnVtYmVyIG9mIHBhaXJzZXRzIGluY29ycmVjdCAtIG9ubHkgNHAgY29uZmlndXJhdGlv bnMgc3VwcG9ydGVkXG4iKTsNCisJCQlyZXQgPSAtRUlOVkFMOw0KKwkJCWdvdG8gb3V0Ow0KKwkJ fQ0KKwl9DQorDQorb3V0Og0KKwlvZl9ub2RlX3B1dChwc2Vfbm9kZSk7DQorCW9mX25vZGVfcHV0 KG5vZGUpOw0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCitzdGF0aWMgaW50IHNpMzQ3NF9zZXR1cF9w aV9tYXRyaXgoc3RydWN0IHBzZV9jb250cm9sbGVyX2RldiAqcGNkZXYpDQorew0KKwlzdHJ1Y3Qg c2kzNDc0X3ByaXYgKnByaXYgPSB0b19zaTM0NzRfcHJpdihwY2Rldik7DQorCXMzMiByZXQ7DQor DQorCXJldCA9IHNpMzQ3NF9nZXRfb2ZfY2hhbm5lbHMocHJpdik7DQorCWlmIChyZXQgPCAwKSB7 DQorCQlkZXZfd2FybigmcHJpdi0+Y2xpZW50WzBdLT5kZXYsDQorCQkJICJVbmFibGUgdG8gcGFy c2UgRFQgUFNFIHBvd2VyIGludGVyZmFjZSBtYXRyaXhcbiIpOw0KKwl9DQorCXJldHVybiByZXQ7 DQorfQ0KKw0KK3N0YXRpYyBpbnQgc2kzNDc0X3BpX2VuYWJsZShzdHJ1Y3QgcHNlX2NvbnRyb2xs ZXJfZGV2ICpwY2RldiwgaW50IGlkKQ0KK3sNCisJc3RydWN0IHNpMzQ3NF9wcml2ICpwcml2ID0g dG9fc2kzNDc0X3ByaXYocGNkZXYpOw0KKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50Ow0KKwl1 OCBjaGFuMCwgY2hhbjE7DQorCXU4IHZhbCA9IDA7DQorCXMzMiByZXQ7DQorDQorCWlmIChpZCA+ PSBTSTM0NzRfTUFYX0NIQU5TKQ0KKwkJcmV0dXJuIC1FUkFOR0U7DQorDQorCWNoYW4wID0gcHJp di0+cGlbaWRdLmNoYW5bMF07DQorCWNoYW4xID0gcHJpdi0+cGlbaWRdLmNoYW5bMV07DQorDQor CWlmIChjaGFuMCA8IDQpDQorCQljbGllbnQgPSBwcml2LT5jbGllbnRbMF07DQorCWVsc2UNCisJ CWNsaWVudCA9IHByaXYtPmNsaWVudFsxXTsNCisNCisJLyogUmVsZWFzZSBwaSBmcm9tIHNodXRk b3duICovDQorCXJldCA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIFBPUlRfTU9E RV9SRUcpOw0KKwlpZiAocmV0IDwgMCkNCisJCXJldHVybiByZXQ7DQorDQorCXZhbCA9ICh1OCly ZXQ7DQorCXZhbCB8PSAoMHgwMyA8PCAoMiAqIChjaGFuMCAlIDQpKSk7DQorCXZhbCB8PSAoMHgw MyA8PCAoMiAqIChjaGFuMSAlIDQpKSk7DQorDQorCXJldCA9IGkyY19zbWJ1c193cml0ZV9ieXRl X2RhdGEoY2xpZW50LCBQT1JUX01PREVfUkVHLCB2YWwpOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJu IHJldDsNCisNCisJLyogR2l2ZSB0aW1lIGZvciB0cmFuc2l0aW9uIHRvIGNvbXBsZXRlICovDQor CXNzbGVlcCgxKTsNCisNCisJLyogVHJpZ2dlciBwaSB0byBwb3dlciB1cCAqLw0KKwl2YWwgPSAo QklUKGNoYW4wICUgNCkgfCBCSVQoY2hhbjEgJSA0KSk7DQorCXJldCA9IGkyY19zbWJ1c193cml0 ZV9ieXRlX2RhdGEoY2xpZW50LCBQQl9QT1dFUl9FTkFCTEVfUkVHLCB2YWwpOw0KKw0KKwlyZXR1 cm4gMDsNCit9DQorDQorc3RhdGljIGludCBzaTM0NzRfcGlfZGlzYWJsZShzdHJ1Y3QgcHNlX2Nv bnRyb2xsZXJfZGV2ICpwY2RldiwgaW50IGlkKQ0KK3sNCisJc3RydWN0IHNpMzQ3NF9wcml2ICpw cml2ID0gdG9fc2kzNDc0X3ByaXYocGNkZXYpOw0KKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50 Ow0KKwl1OCBjaGFuMCwgY2hhbjE7DQorCXU4IHZhbCA9IDA7DQorCXMzMiByZXQ7DQorDQorCWlm IChpZCA+PSBTSTM0NzRfTUFYX0NIQU5TKQ0KKwkJcmV0dXJuIC1FUkFOR0U7DQorDQorCWNoYW4w ID0gcHJpdi0+cGlbaWRdLmNoYW5bMF07DQorCWNoYW4xID0gcHJpdi0+cGlbaWRdLmNoYW5bMV07 DQorDQorCWlmIChjaGFuMCA8IDQpDQorCQljbGllbnQgPSBwcml2LT5jbGllbnRbMF07DQorCWVs c2UNCisJCWNsaWVudCA9IHByaXYtPmNsaWVudFsxXTsNCisNCisJLyogVHJpZ2dlciBwaSB0byBw b3dlciBkb3duICovDQorCXZhbCA9IChCSVQoKGNoYW4wICUgNCkgKyA0KSB8IEJJVCgoY2hhbjEg JSA0KSArIDQpKTsNCisJcmV0ID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIFBC X1BPV0VSX0VOQUJMRV9SRUcsIHZhbCk7DQorDQorCS8qIFNodXRkb3duIHBpICovDQorCXJldCA9 IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIFBPUlRfTU9ERV9SRUcpOw0KKwlpZiAo cmV0IDwgMCkNCisJCXJldHVybiByZXQ7DQorDQorCXZhbCA9ICh1OClyZXQ7DQorCXZhbCAmPSB+ KDB4MDMgPDwgKDIgKiAoY2hhbjAgJSA0KSkpOw0KKwl2YWwgJj0gfigweDAzIDw8ICgyICogKGNo YW4xICUgNCkpKTsNCisNCisJcmV0ID0gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQs IFBPUlRfTU9ERV9SRUcsIHZhbCk7DQorCWlmIChyZXQpDQorCQlyZXR1cm4gcmV0Ow0KKw0KKwly ZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCBzaTM0NzRfcGlfZ2V0X2NoYW5fY3VycmVudChz dHJ1Y3Qgc2kzNDc0X3ByaXYgKnByaXYsIHU4IGNoYW4pDQorew0KKwlzdHJ1Y3QgaTJjX2NsaWVu dCAqY2xpZW50Ow0KKwlzMzIgcmV0Ow0KKwl1OCByZWc7DQorCXU2NCB0bXBfNjQ7DQorDQorCWlm IChjaGFuIDwgNCkNCisJCWNsaWVudCA9IHByaXYtPmNsaWVudFswXTsNCisJZWxzZQ0KKwkJY2xp ZW50ID0gcHJpdi0+Y2xpZW50WzFdOw0KKw0KKwkvKiBSZWdpc3RlcnMgMHgzMCB0byAweDNkICov DQorCXJlZyA9IFBPUlQxX0NVUlJFTlRfTFNCX1JFRyArIChjaGFuICUgNCkgKiA0Ow0KKw0KKwly ZXQgPSBpMmNfc21idXNfcmVhZF93b3JkX2RhdGEoY2xpZW50LCByZWcpOw0KKwlpZiAocmV0IDwg MCkNCisJCXJldHVybiByZXQ7DQorDQorCXRtcF82NCA9IHJldCAqIFNJMzQ3NF9OQV9TVEVQOw0K Kw0KKwkvKiB1QSA9IG5BIC8gMTAwMCAqLw0KKwl0bXBfNjQgPSBESVZfUk9VTkRfQ0xPU0VTVF9V TEwodG1wXzY0LCAxMDAwKTsNCisJcmV0dXJuIChpbnQpdG1wXzY0Ow0KK30NCisNCitzdGF0aWMg aW50IHNpMzQ3NF9waV9nZXRfY2hhbl92b2x0YWdlKHN0cnVjdCBzaTM0NzRfcHJpdiAqcHJpdiwg dTggY2hhbikNCit7DQorCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQ7DQorCXMzMiByZXQ7DQor CXU4IHJlZzsNCisJdTMyIHZhbDsNCisNCisJaWYgKGNoYW4gPCA0KQ0KKwkJY2xpZW50ID0gcHJp di0+Y2xpZW50WzBdOw0KKwllbHNlDQorCQljbGllbnQgPSBwcml2LT5jbGllbnRbMV07DQorDQor CS8qIFJlZ2lzdGVycyAweDMyIHRvIDB4M2YgKi8NCisJcmVnID0gUE9SVDFfVk9MVEFHRV9MU0Jf UkVHICsgKGNoYW4gJSA0KSAqIDQ7DQorDQorCXJldCA9IGkyY19zbWJ1c19yZWFkX3dvcmRfZGF0 YShjbGllbnQsIHJlZyk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisNCisJdmFs ID0gcmV0ICogU0kzNDc0X1VWX1NURVA7DQorDQorCXJldHVybiAoaW50KXZhbDsNCit9DQorDQor c3RhdGljIGludCBzaTM0NzRfcGlfZ2V0X3ZvbHRhZ2Uoc3RydWN0IHBzZV9jb250cm9sbGVyX2Rl diAqcGNkZXYsIGludCBpZCkNCit7DQorCXN0cnVjdCBzaTM0NzRfcHJpdiAqcHJpdiA9IHRvX3Np MzQ3NF9wcml2KHBjZGV2KTsNCisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudDsNCisJdTggY2hh bjAsIGNoYW4xOw0KKwlzMzIgcmV0Ow0KKw0KKwljaGFuMCA9IHByaXYtPnBpW2lkXS5jaGFuWzBd Ow0KKwljaGFuMSA9IHByaXYtPnBpW2lkXS5jaGFuWzFdOw0KKw0KKwlpZiAoY2hhbjAgPCA0KQ0K KwkJY2xpZW50ID0gcHJpdi0+Y2xpZW50WzBdOw0KKwllbHNlDQorCQljbGllbnQgPSBwcml2LT5j bGllbnRbMV07DQorDQorCS8qIENoZWNrIHdoaWNoIGNoYW5uZWxzIGFyZSBlbmFibGVkKi8NCisJ cmV0ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgUE9XRVJfU1RBVFVTX1JFRyk7 DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisNCisJLyogVGFrZSB2b2x0YWdlIGZy b20gdGhlIGZpcnN0IGVuYWJsZWQgY2hhbm5lbCAqLw0KKwlpZiAocmV0ICYgQklUKGNoYW4wICUg NCkpDQorCQlyZXQgPSBzaTM0NzRfcGlfZ2V0X2NoYW5fdm9sdGFnZShwcml2LCBjaGFuMCk7DQor CWVsc2UgaWYgKHJldCAmIEJJVChjaGFuMSkpDQorCQlyZXQgPSBzaTM0NzRfcGlfZ2V0X2NoYW5f dm9sdGFnZShwcml2LCBjaGFuMSk7DQorCWVsc2UNCisJCS8qICdzaG91bGQnIGJlIG5vIHZvbHRh Z2UgaW4gdGhpcyBjYXNlICovDQorCQlyZXR1cm4gMDsNCisNCisJcmV0dXJuIHJldDsNCit9DQor DQorc3RhdGljIGludCBzaTM0NzRfcGlfZ2V0X2FjdHVhbF9wdyhzdHJ1Y3QgcHNlX2NvbnRyb2xs ZXJfZGV2ICpwY2RldiwgaW50IGlkKQ0KK3sNCisJc3RydWN0IHNpMzQ3NF9wcml2ICpwcml2ID0g dG9fc2kzNDc0X3ByaXYocGNkZXYpOw0KKwlzMzIgcmV0Ow0KKwl1MzIgdVYsIHVBOw0KKwl1NjQg dG1wXzY0Ow0KKwl1OCBjaGFuMCwgY2hhbjE7DQorDQorCWlmIChpZCA+PSBTSTM0NzRfTUFYX0NI QU5TKQ0KKwkJcmV0dXJuIC1FUkFOR0U7DQorDQorCXJldCA9IHNpMzQ3NF9waV9nZXRfdm9sdGFn ZSgmcHJpdi0+cGNkZXYsIGlkKTsNCisJaWYgKHJldCA8IDApDQorCQlyZXR1cm4gcmV0Ow0KKwl1 ViA9IHJldDsNCisNCisJY2hhbjAgPSBwcml2LT5waVtpZF0uY2hhblswXTsNCisJY2hhbjEgPSBw cml2LT5waVtpZF0uY2hhblsxXTsNCisNCisJcmV0ID0gc2kzNDc0X3BpX2dldF9jaGFuX2N1cnJl bnQocHJpdiwgY2hhbjApOw0KKwlpZiAocmV0IDwgMCkNCisJCXJldHVybiByZXQ7DQorCXVBID0g cmV0Ow0KKw0KKwlyZXQgPSBzaTM0NzRfcGlfZ2V0X2NoYW5fY3VycmVudChwcml2LCBjaGFuMSk7 DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisJdUEgKz0gcmV0Ow0KKw0KKwl0bXBf NjQgPSB1VjsNCisJdG1wXzY0ICo9IHVBOw0KKwkvKiBtVyA9IHVWICogdUEgLyAxMDAwMDAwMDAw ICovDQorCXJldHVybiBESVZfUk9VTkRfQ0xPU0VTVF9VTEwodG1wXzY0LCAxMDAwMDAwMDAwKTsN Cit9DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBwc2VfY29udHJvbGxlcl9vcHMgc2kzNDc0X29w cyA9IHsNCisJLnNldHVwX3BpX21hdHJpeCA9IHNpMzQ3NF9zZXR1cF9waV9tYXRyaXgsDQorCS5w aV9lbmFibGUgPSBzaTM0NzRfcGlfZW5hYmxlLA0KKwkucGlfZGlzYWJsZSA9IHNpMzQ3NF9waV9k aXNhYmxlLA0KKwkucGlfZ2V0X2FjdHVhbF9wdyA9IHNpMzQ3NF9waV9nZXRfYWN0dWFsX3B3LA0K KwkucGlfZ2V0X3ZvbHRhZ2UgPSBzaTM0NzRfcGlfZ2V0X3ZvbHRhZ2UsDQorCS5waV9nZXRfYWRt aW5fc3RhdGUgPSBzaTM0NzRfcGlfZ2V0X2FkbWluX3N0YXRlLA0KKwkucGlfZ2V0X3B3X3N0YXR1 cyA9IHNpMzQ3NF9waV9nZXRfcHdfc3RhdHVzLA0KK307DQorDQorc3RhdGljIGludCBzaTM0NzRf aTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpDQorew0KKwlzdHJ1Y3QgZGV2aWNl ICpkZXYgPSAmY2xpZW50LT5kZXY7DQorCXN0cnVjdCBzaTM0NzRfcHJpdiAqcHJpdjsNCisJczMy IHJldDsNCisJdTggZndfdmVyc2lvbjsNCisNCisJaWYgKCFpMmNfY2hlY2tfZnVuY3Rpb25hbGl0 eShjbGllbnQtPmFkYXB0ZXIsIEkyQ19GVU5DX0kyQykpIHsNCisJCWRldl9lcnIoZGV2LCAiaTJj IGNoZWNrIGZ1bmN0aW9uYWxpdHkgZmFpbGVkXG4iKTsNCisJCXJldHVybiAtRU5YSU87DQorCX0N CisNCisJcHJpdiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwp Ow0KKwlpZiAoIXByaXYpDQorCQlyZXR1cm4gLUVOT01FTTsNCisNCisJcmV0ID0gaTJjX3NtYnVz X3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgVkVORE9SX0lDX0lEX1JFRyk7DQorCWlmIChyZXQgPCAw KQ0KKwkJcmV0dXJuIHJldDsNCisNCisJaWYgKHJldCAhPSBTSTM0NzRfREVWSUNFX0lEKSB7DQor CQlkZXZfZXJyKGRldiwgIldyb25nIGRldmljZSBJRDogMHgleFxuIiwgcmV0KTsNCisJCXJldHVy biAtRU5YSU87DQorCX0NCisNCisJcmV0ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVu dCwgRklSTVdBUkVfUkVWSVNJT05fUkVHKTsNCisJaWYgKHJldCA8IDApDQorCQlyZXR1cm4gcmV0 Ow0KKwlmd192ZXJzaW9uID0gcmV0Ow0KKw0KKwlyZXQgPSBpMmNfc21idXNfcmVhZF9ieXRlX2Rh dGEoY2xpZW50LCBDSElQX1JFVklTSU9OX1JFRyk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJu IHJldDsNCisNCisJZGV2X2luZm8oZGV2LCAiQ2hpcCByZXZpc2lvbjogMHgleCwgZmlybXdhcmUg dmVyc2lvbjogMHgleFxuIiwNCisJCSByZXQsIGZ3X3ZlcnNpb24pOw0KKw0KKwlwcml2LT5jbGll bnRbMF0gPSBjbGllbnQ7DQorCWkyY19zZXRfY2xpZW50ZGF0YShjbGllbnQsIHByaXYpOw0KKw0K Kwlwcml2LT5jbGllbnRbMV0gPSBpMmNfbmV3X2FuY2lsbGFyeV9kZXZpY2UocHJpdi0+Y2xpZW50 WzBdLCAic2xhdmUiLA0KKwkJCQkJCSAgIHByaXYtPmNsaWVudFswXS0+YWRkciArIDEpOw0KKwlp ZiAoSVNfRVJSKHByaXYtPmNsaWVudFsxXSkpDQorCQlyZXR1cm4gUFRSX0VSUihwcml2LT5jbGll bnRbMV0pOw0KKw0KKwlyZXQgPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEocHJpdi0+Y2xpZW50 WzFdLCBWRU5ET1JfSUNfSURfUkVHKTsNCisJaWYgKHJldCA8IDApIHsNCisJCWRldl9lcnIoJnBy aXYtPmNsaWVudFsxXS0+ZGV2LCAiQ2Fubm90IGFjY2VzcyBzbGF2ZSBQU0UgY29udHJvbGxlclxu Iik7DQorCQlnb3RvIG91dF9lcnJfc2xhdmU7DQorCX0NCisNCisJaWYgKHJldCAhPSBTSTM0NzRf REVWSUNFX0lEKSB7DQorCQlkZXZfZXJyKCZwcml2LT5jbGllbnRbMV0tPmRldiwNCisJCQkiV3Jv bmcgZGV2aWNlIElEIGZvciBzbGF2ZSBQU0UgY29udHJvbGxlcjogMHgleFxuIiwgcmV0KTsNCisJ CXJldCA9IC1FTlhJTzsNCisJCWdvdG8gb3V0X2Vycl9zbGF2ZTsNCisJfQ0KKw0KKwlwcml2LT5u cCA9IGRldi0+b2Zfbm9kZTsNCisJcHJpdi0+cGNkZXYub3duZXIgPSBUSElTX01PRFVMRTsNCisJ cHJpdi0+cGNkZXYub3BzID0gJnNpMzQ3NF9vcHM7DQorCXByaXYtPnBjZGV2LmRldiA9IGRldjsN CisJcHJpdi0+cGNkZXYudHlwZXMgPSBFVEhUT09MX1BTRV9DMzM7DQorCXByaXYtPnBjZGV2Lm5y X2xpbmVzID0gU0kzNDc0X01BWF9DSEFOUzsNCisNCisJcmV0ID0gZGV2bV9wc2VfY29udHJvbGxl cl9yZWdpc3RlcihkZXYsICZwcml2LT5wY2Rldik7DQorCWlmIChyZXQpIHsNCisJCXJldHVybiBk ZXZfZXJyX3Byb2JlKGRldiwgcmV0LA0KKwkJCQkgICAgICJGYWlsZWQgdG8gcmVnaXN0ZXIgUFNF IGNvbnRyb2xsZXJcbiIpOw0KKwl9DQorDQorCXJldHVybiByZXQ7DQorDQorb3V0X2Vycl9zbGF2 ZToNCisJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKHByaXYtPmNsaWVudFsxXSk7DQorCXJldHVybiBy ZXQ7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIHNpMzQ3NF9pMmNfcmVtb3ZlKHN0cnVjdCBpMmNfY2xp ZW50ICpjbGllbnQpDQorew0KKwlzdHJ1Y3Qgc2kzNDc0X3ByaXYgKnByaXYgPSBpMmNfZ2V0X2Ns aWVudGRhdGEoY2xpZW50KTsNCisNCisJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKHByaXYtPmNsaWVu dFsxXSk7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCBzaTM0NzRf aWRbXSA9IHsNCisJeyAic2kzNDc0IiB9LA0KKwl7fQ0KK307DQorTU9EVUxFX0RFVklDRV9UQUJM RShpMmMsIHNpMzQ3NF9pZCk7DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg c2kzNDc0X29mX21hdGNoW10gPSB7DQorCXsNCisJCS5jb21wYXRpYmxlID0gInNreXdvcmtzLHNp MzQ3NCIsDQorCX0sDQorCXt9LA0KK307DQorTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc2kzNDc0 X29mX21hdGNoKTsNCisNCitzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgc2kzNDc0X2RyaXZlciA9 IHsNCisJLnByb2JlID0gc2kzNDc0X2kyY19wcm9iZSwNCisJLnJlbW92ZSA9IHNpMzQ3NF9pMmNf cmVtb3ZlLA0KKwkuaWRfdGFibGUgPSBzaTM0NzRfaWQsDQorCS5kcml2ZXIgPSB7DQorCQkubmFt ZSA9ICJzaTM0NzQiLA0KKwkJLm9mX21hdGNoX3RhYmxlID0gc2kzNDc0X29mX21hdGNoLA0KKwl9 LA0KK307DQorbW9kdWxlX2kyY19kcml2ZXIoc2kzNDc0X2RyaXZlcik7DQorDQorTU9EVUxFX0FV VEhPUigiUGlvdHIgS3ViaWsgPHBpb3RyLmt1YmlrQGFkdHJhbi5jb20+Iik7DQorTU9EVUxFX0RF U0NSSVBUSU9OKCJTa3l3b3JrcyBTaTM0NzQgUG9FIFBTRSBDb250cm9sbGVyIGRyaXZlciIpOw0K K01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCi0tIA0KMi40My4wDQoNCg==