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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 48C9EC433EF for ; Tue, 8 Mar 2022 08:28:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242446AbiCHI3d (ORCPT ); Tue, 8 Mar 2022 03:29:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57064 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233849AbiCHI3c (ORCPT ); Tue, 8 Mar 2022 03:29:32 -0500 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.154.123]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C294B2FFD5; Tue, 8 Mar 2022 00:28:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1646728115; x=1678264115; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=zmoGMmyyP2v8Pd0YA0t/yCTDKn9voeH8x7Fu5AO0F98=; b=C5vqlB2Le62u1nFZXfnpytRHyedYU6BrNo6KlivceR/7HWoijZiBkerV qdijJHisSAF8ZOvsgDBsbWAlQuMXdnkqko6thbb8hfqC3LwZcdRhdLOGI kPOvdJ6lOWCVxubsTjKtD8PIThIGcEVDkDwzIV4fAe0PO+/2Xqp8NXky3 FdX594K4fobsJ9Dk5NhN9mCIffgijnUKCPm4WPgQRTSLJq4RxjxMvQSh0 I+kxadEZIQicTIZgfeZ1V8PKh7YL46JhRa4uaV5AO2ceOuFjvnixTxLyz Z0GGnfn4/tHcT6aU38q+nPznFPBxV1pl0khQ9+INtTk36WgDWdEexw9jS Q==; X-IronPort-AV: E=Sophos;i="5.90,163,1643698800"; d="scan'208";a="151210307" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa2.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 08 Mar 2022 01:28:34 -0700 Received: from chn-vm-ex01.mchp-main.com (10.10.85.143) by chn-vm-ex03.mchp-main.com (10.10.85.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Tue, 8 Mar 2022 01:28:34 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17 via Frontend Transport; Tue, 8 Mar 2022 01:28:34 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FEYosqTq0BPVWezQstxVEoyHVsBVmK1X8stQw6hggJhWQd2GasjVzO0YcNqnXUHG/XKPe5d3FS6VzFBzY9ez6lCWGmVIUJSejdSaFOqNcL32zLxVxiY23ZBqdeVtvTYi/9Vf8XuRkO03ZtBz3tQrVfTTTu3phNq414RRtAIYxBMf1RP7ULguzbovHTlqtiPQGQdmSDTnyqE4uqQg5llB0f60fBbMafTMoSuM4k0E0ER6/Tgkdk2NJeqyQOVwU5CQkrujy7rLDJkYWaeGbTiq1L57DsuGjD445iyHIhLhrLupyLEHWRLaE3stXTCZMvIYRzhdDo8fVFyn2lD/Z/USHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zmoGMmyyP2v8Pd0YA0t/yCTDKn9voeH8x7Fu5AO0F98=; b=ixXlN+0qWj5CflCYj6OS2twOlX7SWSbskuptrMdy3js+ZIr1CmuNGONaAbqrCq0NnlRGi+vWTzoyKd8gn8VH4rAX0FvTyWruTs0pMRdKBuCqJw0r7HrP5d2sSKc0g9AKpkBdkD05GZEzf0eLgPpzZ60f+XLRHfxOVMUN2Uw+CpYwY+NJrBvpECiZRl9cvPo8fRqvvUb6no27snMKJfppnDq9L/8hDmIat9pQOT3N8JiWhchw57F1WBXaRiMoSdI8AQ+NvHVoiEZPvxFsxNeBMA9gzCAW2yZ7taZy0ovFCPsO9TaTmiKt8YCRGo3Q64nVJS5EqYq90LEM64ddY5ejSw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zmoGMmyyP2v8Pd0YA0t/yCTDKn9voeH8x7Fu5AO0F98=; b=dmyuM9qTZ1LJpbLEg/ab8+tt0Yfs9fNikSqa7YkcB6remsOrZhoG83qLJPMA1Wj8kS3xsCw5+hqj3NM5lv0wvlQX8YI7O3qi/Wz/5LX9MjnsW8PlcoS0L6zV2GoZk96jcz+eVUlI6wR9Ig5D2eNc/VPqs8tCraCuK7xmqDNGPns= Received: from CO1PR11MB5154.namprd11.prod.outlook.com (2603:10b6:303:95::7) by BN6PR11MB1907.namprd11.prod.outlook.com (2603:10b6:404:105::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.13; Tue, 8 Mar 2022 08:28:32 +0000 Received: from CO1PR11MB5154.namprd11.prod.outlook.com ([fe80::dc95:437b:6564:f220]) by CO1PR11MB5154.namprd11.prod.outlook.com ([fe80::dc95:437b:6564:f220%6]) with mapi id 15.20.5038.027; Tue, 8 Mar 2022 08:28:32 +0000 From: To: CC: , , , , , , , , , , Subject: Re: [PATCH v12 1/1] clk: microchip: Add driver for Microchip PolarFire SoC Thread-Topic: [PATCH v12 1/1] clk: microchip: Add driver for Microchip PolarFire SoC Thread-Index: AQHYJ+UUci49A9p2Akazz3J8N4Cq6qy1PjOA Date: Tue, 8 Mar 2022 08:28:32 +0000 Message-ID: <665fe279-593d-06d2-0e8c-8ad6ff802690@microchip.com> References: <20220222121143.3316880-1-conor.dooley@microchip.com> <20220222121143.3316880-2-conor.dooley@microchip.com> In-Reply-To: <20220222121143.3316880-2-conor.dooley@microchip.com> Accept-Language: en-IE, en-US Content-Language: en-IE X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f70470cf-2121-4dc4-d0aa-08da00dda192 x-ms-traffictypediagnostic: BN6PR11MB1907:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GMuw38AQHt3TmLEIy8qhMmy2E/mGD1uIUXG/QwTBWTSbKEQtxsQU8R6rvot4+H0sCLwDDTzzkK5U/FAOFmL5OEkl368uv75qBlb4GYxWn7ZVcG3ybAcxqlOUr/7ST/v7V275VL7J5IfTuyDn2h0OUDi1rL6BjgULP+DuCF/m7ICa6nkK+UJ7bks+KHlhuk7mM8mJstI0O5CVeQotI1fPjbE3GPcU/tbWVY9Mnl4GVggKswwrGyuwW0smd3G8dqVupqEHjd5+SKF315hEY3pT2N19v11Bg0o4lAjP837hNm8vnYY1UfsZnnP23SJN1qZNLuV3+kArLA5d5jC8bHSUBEeWz5txaAOJhKGSaxZN8gi0cEslOXdu2nen0uKwF7av96soTm9ElhKjIQ8efKrbmKNj2UUt7VOsKB7751pSLGsEwFa2wCRX3AdY7EEOqYBIRhKNdK0hdFmcuo6dT3oXLemdHFbfW4rIxkfUQDOcS1oioF76dQmOsT4qr078shLbxQVtifpv/NJrjjrHRTYGMNLNARC+ipeLfZHjMLDyRoQl6jNMIHv86zh69kYDfO060uR2XpocpKdlJG1Dya0V8gVkRNX56znKdaao24Z3d19uCIbMUl6o0vGW4AqW260PsSFdJbNaHPRFQLMlXcZ1flZ59cI3WSejxnddRnX6kc+8F9COONIvHd7SSLc/GphzcNsg/M+4VdJXD6HF7IQP7xU8+5zGr2kJtH2LXj+OFTSMzc45qRSeE+HRgQgmDW2krZbcjS9e2sX3hT1zB2ImQIDBtL0S0vTOodIP7tXWZv12lhMIG6fIJYqRKq/9f+ybs5MJlA/9zzqfBCPZtyZLGY+w+5P/WW+RBC3q7gDB1s4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB5154.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(71200400001)(6506007)(36756003)(53546011)(38100700002)(31686004)(2616005)(38070700005)(2906002)(83380400001)(107886003)(5660300002)(966005)(316002)(26005)(54906003)(91956017)(6512007)(8936002)(76116006)(66556008)(66946007)(30864003)(31696002)(6486002)(122000001)(86362001)(186003)(6916009)(8676002)(66446008)(4326008)(64756008)(508600001)(66476007)(45980500001)(43740500002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aE1Bbk9xOW9zaXRpMmJJSGVZYmY5MGdCek5KbGdDRFF5bDIrV25aOXFMQnUv?= =?utf-8?B?WUtOa24zTGFNWUNKK1VYQ2wxeUx2NVk0UG5sOWx2OGlvR2pmT2g4a0JWdFdl?= =?utf-8?B?UXVpRmx2UnlnaS9seUl6S0QwZmgvRnlJSDlQa1lxQXBaOEIweVBYN3Y3N0Zn?= =?utf-8?B?TWdpMVg3b1pxMnQyTHVBUHNBd2g3OVhWakZjRkdWczJPbzgwWFFQNmErSUY3?= =?utf-8?B?eVE0RmpPOGYwSVRRbzI5RUtIcDNIcUswM29CekRwaG4zMEZuTFRDVXo2c0VB?= =?utf-8?B?YTFFNmpUYnErNTZrNGd6YnhNOXM0ekVzODc5UEpKREZDQnJDQXIzVTlMbkRX?= =?utf-8?B?d0RZSmJVVUpMQWFjNE1WZjJ3RWFNQ2ZTZThvNmVjczM0L3Exd0lRWkNnS3dD?= =?utf-8?B?S1E2RUtEWTF5TDJDSmsxUmVlOW1RVERiT2J4TlE2ZXc1K3dtRFgrbmtjeXk3?= =?utf-8?B?NGtsN2V5VkFoZkVLV0EvT04rbFg1TWNJdm1kaTYyeXpDQnkwUE1KSUFIdVpR?= =?utf-8?B?TTlNN1RQWGhldnN0SzRsSlF0NWJ1NWx6RGhtRzNIblMvYWdwRWNwMHE4ZjlG?= =?utf-8?B?MFlPRllIdTV5bWRPYWwxOXJqYlV6TitucmdBdzlXV1JrT2FVMURTeG1uZ29K?= =?utf-8?B?Wml2bG43VG1xeGNBZjFtTk9XRTVkeHR2SlZzWVRsOFVIRXVPOWRsSHg1UC9W?= =?utf-8?B?UE5HK251TmJLR01nY3BKZ0U2MGZZUkljamhOK3hFTXhyc1M3YjlXaVcxcExC?= =?utf-8?B?Y2hZUHNVNVdqSjVzNWxMZmdpK0Y4SVluRU1GVFVpbnVKMGRKbWVjckZsdjlM?= =?utf-8?B?WGFnZ0gxWlE0Sk1IN1JUNGFFMUJsY3Nnb253SnhQL3l0R3VLR0cyVHJ1ajdI?= =?utf-8?B?WDIycUJNUDlGdjM0aHdjRFcranh5RmNkSjd5ZGFMNzRsMzJNYkxYVXc0Q1dD?= =?utf-8?B?Vy82YlVwVWxlcjg2VDRCYUVRcGphdG94TVpVdEZBNTlrK0xvZzZ5U3Y3TXNn?= =?utf-8?B?U0JZVm9aVWU4Q0daS1M4WVBhcVNpbDNkUTU1bVpIQkRRS2RwRmpNR3ZzR3R5?= =?utf-8?B?WUVjcWhlbnJWeHVtYnFkR2NqU0lKb0ExTzNGSFZNZTk3ZjJnOHlkT2RTNkIr?= =?utf-8?B?OUpNUFJuYnJLNGVOZ1JiY0xLU3NpZXZwbXEyNDdVdGthaHR2U1IrRjBWaFF5?= =?utf-8?B?bnJTZ2ZsSHE1WVFhL3NDNWZEVk1mNWNhR2E1aGpBVEFkT2hWQ0hGTEdQYndr?= =?utf-8?B?Vk5VV3JwZHFVZUlHaW91eG5FUUVsaHdWd0JqVzZEdWRaWFhyNDBwR3o2YTF0?= =?utf-8?B?QUxnUnJPdmxGdHhjUmtZQVRudWNjNVQ0TWR3c2JYcHJoaWp2Tjg5NDdRRTdr?= =?utf-8?B?NVhabXkzdGIveXB1VkQ5RVhwNkN3eE1ZZlNzcmlMalZwREE3dlJ4RXdzMFdL?= =?utf-8?B?Skg3cFhnZkFLdVdqSjBZcXVRdHJKZWI3M2IwSUNjOUpFTUNlNzlCQWFxQVVQ?= =?utf-8?B?NzY2d01CakRxSkRzQWo1UktjRDN0OVVPUUFqRGpUeGJBT2tVL2o5Slg0K0hi?= =?utf-8?B?WHBrbFVxQlV1c1Vkcjh0eWdDRkh2aDN4bmN2N3V5Nnloc2tsaG5sK0JvOTIz?= =?utf-8?B?UDNKVnlYMk9kNlU3KytJNTZQRXJ3NnRsNVp0UGlpOTBqK1E0NDdFTmVNVnpD?= =?utf-8?B?WTk2bmJ5ODFRbko0dGppekhKQ3VTRm9tTmtoWFFKV3BMd3ZwYVQ4K0d5VjFk?= =?utf-8?B?STF1U2lneWowbHFjVFlmWS9HbS9STngzWTdSWE1OWjVXMi9WdFBEcnVVN2tW?= =?utf-8?B?bHZXZVJaMGdjYitCRi9ENzg4MHNPTXV0TWI2cjlFNS9jY1VXeWRWMkxsQmtn?= =?utf-8?B?MWlweGtzRlNGa1l0YW4vTll3dldsQmxDa1ZKc01NY0JRVWtKYy85bDZRMFFn?= =?utf-8?B?WWZMZUtaazgyQVdvMlJkU0d0L2ZlSnNTNSs3UU5yUnZPMm1DVTRzc0xkL294?= =?utf-8?B?WnQvZHNkWTR1VHpWaWEyaFYwU0xZTkR5bDNSUVVWT1JZbzBBelBwSlpkVjlF?= =?utf-8?B?NTNFQVVBdk1TZlRRV1c5aW5JOTRhbzBmanUzd1RRNGU4THM3MHQzZEVOV29h?= =?utf-8?B?cCtSbGd2U2c3aW12MDNpRXlINmdlNVNUMUl2UlNnY2VJaU95WWpGdlBKWDJN?= =?utf-8?B?RDEvaG15M0NPd05XMDA2K2g4MGlNWkFlS0wxblpycW0rekFUZWJ2eStQU0cv?= =?utf-8?B?djJib1BSbWpvVWhOTjBCMUw3VUhRPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB5154.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f70470cf-2121-4dc4-d0aa-08da00dda192 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Mar 2022 08:28:32.3622 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: KQj0JiaCPlvJfrnQykwx7WkunKGucv9F3oregcWzkTKRe5K66eWtWq0wh9AW3JxehlbgQD9OUIINx+3eiy69Fm5KyyUi0aRtaefH54L5RlQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1907 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org SGV5IFN0ZXBoZW4sDQoNCkNvdWxkIHlvdSB0YWtlIGFub3RoZXIgbG9vayBhdCB0aGlzIHdoZW4g eW91IGdldCBhIGNoYW5jZQ0KJiBzZWUgaWYgSSBhZGRyZXNzZWQgeW91ciBjb21tZW50cyBvbiB2 OT8gWzBdDQoNClRoYW5rcywNCkNvbm9yLg0KDQpbMF0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcv bGludXgtY2xrLzIwMjIwMTI1MDA0ODE4LjgzRTI3QzM0MEU0QHNtdHAua2VybmVsLm9yZy8NCg0K T24gMjIvMDIvMjAyMiAxMjoxMSwgY29ub3IuZG9vbGV5QG1pY3JvY2hpcC5jb20gd3JvdGU6DQo+ IEZyb206IERhaXJlIE1jTmFtYXJhIDxkYWlyZS5tY25hbWFyYUBtaWNyb2NoaXAuY29tPg0KPiAN Cj4gQWRkIHN1cHBvcnQgZm9yIGNsb2NrIGNvbmZpZ3VyYXRpb24gb24gTWljcm9jaGlwIFBvbGFy RmlyZSBTb0MNCj4gDQo+IFJldmlld2VkLWJ5OiBHZWVydCBVeXR0ZXJob2V2ZW4gPGdlZXJ0QGxp bnV4LW02OGsub3JnPg0KPiBUZXN0ZWQtYnk6IEdlZXJ0IFV5dHRlcmhvZXZlbiA8Z2VlcnRAbGlu dXgtbTY4ay5vcmc+DQo+IENvLWRldmVsb3BlZC1ieTogUGFkbWFyYW8gQmVnYXJpIDxwYWRtYXJh by5iZWdhcmlAbWljcm9jaGlwLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogUGFkbWFyYW8gQmVnYXJp IDxwYWRtYXJhby5iZWdhcmlAbWljcm9jaGlwLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogRGFpcmUg TWNOYW1hcmEgPGRhaXJlLm1jbmFtYXJhQG1pY3JvY2hpcC5jb20+DQo+IENvLWRldmVsb3BlZC1i eTogQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4NCj4gU2lnbmVkLW9m Zi1ieTogQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4NCj4gLS0tDQo+ ICAgZHJpdmVycy9jbGsvS2NvbmZpZyAgICAgICAgICAgICAgfCAgIDQgKy0NCj4gICBkcml2ZXJz L2Nsay9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMiArLQ0KPiAgIGRyaXZlcnMvY2xrL21pY3Jv Y2hpcC9LY29uZmlnICAgIHwgIDEwICsNCj4gICBkcml2ZXJzL2Nsay9taWNyb2NoaXAvTWFrZWZp bGUgICB8ICAgMSArDQo+ICAgZHJpdmVycy9jbGsvbWljcm9jaGlwL2Nsay1tcGZzLmMgfCAzODEg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgMzk0 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvY2xrL21pY3JvY2hpcC9LY29uZmlnDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvY2xrL21pY3JvY2hpcC9jbGstbXBmcy5jDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9j bGsvS2NvbmZpZyBiL2RyaXZlcnMvY2xrL0tjb25maWcNCj4gaW5kZXggNGE4NDUxZjYxZjM3Li44 ZGZmZDJkOWJhMzggMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY2xrL0tjb25maWcNCj4gKysrIGIv ZHJpdmVycy9jbGsvS2NvbmZpZw0KPiBAQCAtMzMxLDkgKzMzMSw2IEBAIGNvbmZpZyBDT01NT05f Q0xLX1BYQQ0KPiAgIAloZWxwDQo+ICAgCSAgU3VwcG9ydCBmb3IgdGhlIE1hcnZlbGwgUFhBIFNv Qy4NCj4gICANCj4gLWNvbmZpZyBDT01NT05fQ0xLX1BJQzMyDQo+IC0JZGVmX2Jvb2wgQ09NTU9O X0NMSyAmJiBNQUNIX1BJQzMyDQo+IC0NCj4gICBjb25maWcgQ09NTU9OX0NMS19PWE5BUw0KPiAg IAlib29sICJDbG9jayBkcml2ZXIgZm9yIHRoZSBPWE5BUyBTb0MgRmFtaWx5Ig0KPiAgIAlkZXBl bmRzIG9uIEFSQ0hfT1hOQVMgfHwgQ09NUElMRV9URVNUDQo+IEBAIC00MDgsNiArNDA1LDcgQEAg c291cmNlICJkcml2ZXJzL2Nsay9rZXlzdG9uZS9LY29uZmlnIg0KPiAgIHNvdXJjZSAiZHJpdmVy cy9jbGsvbWVkaWF0ZWsvS2NvbmZpZyINCj4gICBzb3VyY2UgImRyaXZlcnMvY2xrL21lc29uL0tj b25maWciDQo+ICAgc291cmNlICJkcml2ZXJzL2Nsay9tc3Rhci9LY29uZmlnIg0KPiArc291cmNl ICJkcml2ZXJzL2Nsay9taWNyb2NoaXAvS2NvbmZpZyINCj4gICBzb3VyY2UgImRyaXZlcnMvY2xr L212ZWJ1L0tjb25maWciDQo+ICAgc291cmNlICJkcml2ZXJzL2Nsay9waXN0YWNoaW8vS2NvbmZp ZyINCj4gICBzb3VyY2UgImRyaXZlcnMvY2xrL3Fjb20vS2NvbmZpZyINCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvY2xrL01ha2VmaWxlIGIvZHJpdmVycy9jbGsvTWFrZWZpbGUNCj4gaW5kZXggNmE5 ODI5MTM1MGI2Li4zYjAwNjI3NDY5ODQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY2xrL01ha2Vm aWxlDQo+ICsrKyBiL2RyaXZlcnMvY2xrL01ha2VmaWxlDQo+IEBAIC05Miw3ICs5Miw3IEBAIG9i ai0kKENPTkZJR19BUkNIX0tFWVNUT05FKQkJKz0ga2V5c3RvbmUvDQo+ICAgb2JqLSQoQ09ORklH X01BQ0hfTE9PTkdTT04zMikJCSs9IGxvb25nc29uMS8NCj4gICBvYmoteQkJCQkJKz0gbWVkaWF0 ZWsvDQo+ICAgb2JqLSQoQ09ORklHX0FSQ0hfTUVTT04pCQkrPSBtZXNvbi8NCj4gLW9iai0kKENP TkZJR19NQUNIX1BJQzMyKQkJKz0gbWljcm9jaGlwLw0KPiArb2JqLXkJCQkJCSs9IG1pY3JvY2hp cC8NCj4gICBpZmVxICgkKENPTkZJR19DT01NT05fQ0xLKSwgeSkNCj4gICBvYmotJChDT05GSUdf QVJDSF9NTVApCQkJKz0gbW1wLw0KPiAgIGVuZGlmDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Ns ay9taWNyb2NoaXAvS2NvbmZpZyBiL2RyaXZlcnMvY2xrL21pY3JvY2hpcC9LY29uZmlnDQo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uYTVhOTk4NzNjNGY1DQo+ IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZHJpdmVycy9jbGsvbWljcm9jaGlwL0tjb25maWcNCj4g QEAgLTAsMCArMSwxMCBAQA0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0K PiArDQo+ICtjb25maWcgQ09NTU9OX0NMS19QSUMzMg0KPiArCWRlZl9ib29sIENPTU1PTl9DTEsg JiYgTUFDSF9QSUMzMg0KPiArDQo+ICtjb25maWcgTUNIUF9DTEtfTVBGUw0KPiArCWJvb2wgIkNs ayBkcml2ZXIgZm9yIFBvbGFyRmlyZSBTb0MiDQo+ICsJZGVwZW5kcyBvbiAoUklTQ1YgJiYgU09D X01JQ1JPQ0hJUF9QT0xBUkZJUkUpIHx8IENPTVBJTEVfVEVTVA0KPiArCWhlbHANCj4gKwkgIFN1 cHBvcnRzIENsb2NrIENvbmZpZ3VyYXRpb24gZm9yIFBvbGFyRmlyZSBTb0MNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvY2xrL21pY3JvY2hpcC9NYWtlZmlsZSBiL2RyaXZlcnMvY2xrL21pY3JvY2hp cC9NYWtlZmlsZQ0KPiBpbmRleCBmMzRiMjQ3ZTg3MGYuLjVmYTZkY2YzMGE5YSAxMDA2NDQNCj4g LS0tIGEvZHJpdmVycy9jbGsvbWljcm9jaGlwL01ha2VmaWxlDQo+ICsrKyBiL2RyaXZlcnMvY2xr L21pY3JvY2hpcC9NYWtlZmlsZQ0KPiBAQCAtMSwzICsxLDQgQEANCj4gICAjIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkNCj4gICBvYmotJChDT05GSUdfQ09NTU9OX0NMS19Q SUMzMikgKz0gY2xrLWNvcmUubw0KPiAgIG9iai0kKENPTkZJR19QSUMzMk1aREEpICs9IGNsay1w aWMzMm16ZGEubw0KPiArb2JqLSQoQ09ORklHX01DSFBfQ0xLX01QRlMpICs9IGNsay1tcGZzLm8N Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21pY3JvY2hpcC9jbGstbXBmcy5jIGIvZHJpdmVy cy9jbGsvbWljcm9jaGlwL2Nsay1tcGZzLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k ZXggMDAwMDAwMDAwMDAwLi5hYTE1NjFiNzczZDYNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9k cml2ZXJzL2Nsay9taWNyb2NoaXAvY2xrLW1wZnMuYw0KPiBAQCAtMCwwICsxLDM4MSBAQA0KPiAr Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQ0KPiArLyoNCj4gKyAqIERh aXJlIE1jTmFtYXJhLDxkYWlyZS5tY25hbWFyYUBtaWNyb2NoaXAuY29tPg0KPiArICogQ29weXJp Z2h0IChDKSAyMDIwIE1pY3JvY2hpcCBUZWNobm9sb2d5IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2 ZWQuDQo+ICsgKi8NCj4gKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4NCj4gKyNpbmNs dWRlIDxsaW51eC9pby5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiArI2luY2x1 ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4N Cj4gKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9taWNyb2NoaXAsbXBmcy1jbG9jay5oPg0K PiArDQo+ICsvKiBhZGRyZXNzIG9mZnNldCBvZiBjb250cm9sIHJlZ2lzdGVycyAqLw0KPiArI2Rl ZmluZSBSRUdfQ0xPQ0tfQ09ORklHX0NSCTB4MDh1DQo+ICsjZGVmaW5lIFJFR19TVUJCTEtfQ0xP Q0tfQ1IJMHg4NHUNCj4gKyNkZWZpbmUgUkVHX1NVQkJMS19SRVNFVF9DUgkweDg4dQ0KPiArDQo+ ICtzdHJ1Y3QgbXBmc19jbG9ja19kYXRhIHsNCj4gKwl2b2lkIF9faW9tZW0gKmJhc2U7DQo+ICsJ c3RydWN0IGNsa19od19vbmVjZWxsX2RhdGEgaHdfZGF0YTsNCj4gK307DQo+ICsNCj4gK3N0cnVj dCBtcGZzX2NmZ19jbG9jayB7DQo+ICsJY29uc3Qgc3RydWN0IGNsa19kaXZfdGFibGUgKnRhYmxl Ow0KPiArCXVuc2lnbmVkIGludCBpZDsNCj4gKwl1OCBzaGlmdDsNCj4gKwl1OCB3aWR0aDsNCj4g K307DQo+ICsNCj4gK3N0cnVjdCBtcGZzX2NmZ19od19jbG9jayB7DQo+ICsJc3RydWN0IG1wZnNf Y2ZnX2Nsb2NrIGNmZzsNCj4gKwl2b2lkIF9faW9tZW0gKnN5c19iYXNlOw0KPiArCXN0cnVjdCBj bGtfaHcgaHc7DQo+ICsJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsNCj4gK307DQo+ICsNCj4g KyNkZWZpbmUgdG9fbXBmc19jZmdfY2xrKF9odykgY29udGFpbmVyX29mKF9odywgc3RydWN0IG1w ZnNfY2ZnX2h3X2Nsb2NrLCBodykNCj4gKw0KPiArc3RydWN0IG1wZnNfcGVyaXBoX2Nsb2NrIHsN Cj4gKwl1bnNpZ25lZCBpbnQgaWQ7DQo+ICsJdTggc2hpZnQ7DQo+ICt9Ow0KPiArDQo+ICtzdHJ1 Y3QgbXBmc19wZXJpcGhfaHdfY2xvY2sgew0KPiArCXN0cnVjdCBtcGZzX3BlcmlwaF9jbG9jayBw ZXJpcGg7DQo+ICsJdm9pZCBfX2lvbWVtICpzeXNfYmFzZTsNCj4gKwlzdHJ1Y3QgY2xrX2h3IGh3 Ow0KPiArfTsNCj4gKw0KPiArI2RlZmluZSB0b19tcGZzX3BlcmlwaF9jbGsoX2h3KSBjb250YWlu ZXJfb2YoX2h3LCBzdHJ1Y3QgbXBmc19wZXJpcGhfaHdfY2xvY2ssIGh3KQ0KPiArDQo+ICsvKg0K PiArICogbXBmc19jbGtfbG9jayBwcmV2ZW50cyBhbnl0aGluZyBlbHNlIGZyb20gd3JpdGluZyB0 byB0aGUNCj4gKyAqIG1wZnMgY2xrIGJsb2NrIHdoaWxlIGEgc29mdHdhcmUgbG9ja2VkIHJlZ2lz dGVyIGlzIGJlaW5nIHdyaXR0ZW4uDQo+ICsgKi8NCj4gK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0so bXBmc19jbGtfbG9jayk7DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX3BhcmVudF9k YXRhIG1wZnNfY2ZnX3BhcmVudFtdID0gew0KPiArCXsgLmluZGV4ID0gMCB9LA0KPiArfTsNCj4g Kw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfZGl2X3RhYmxlIG1wZnNfZGl2X2NwdV9heGlf dGFibGVbXSA9IHsNCj4gKwl7IDAsIDEgfSwgeyAxLCAyIH0sIHsgMiwgNCB9LCB7IDMsIDggfSwN Cj4gKwl7IDAsIDAgfQ0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfZGl2 X3RhYmxlIG1wZnNfZGl2X2FoYl90YWJsZVtdID0gew0KPiArCXsgMSwgMiB9LCB7IDIsIDR9LCB7 IDMsIDggfSwNCj4gKwl7IDAsIDAgfQ0KPiArfTsNCj4gKw0KPiArc3RhdGljIHVuc2lnbmVkIGxv bmcgbXBmc19jZmdfY2xrX3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBs b25nIHByYXRlKQ0KPiArew0KPiArCXN0cnVjdCBtcGZzX2NmZ19od19jbG9jayAqY2ZnX2h3ID0g dG9fbXBmc19jZmdfY2xrKGh3KTsNCj4gKwlzdHJ1Y3QgbXBmc19jZmdfY2xvY2sgKmNmZyA9ICZj ZmdfaHctPmNmZzsNCj4gKwl2b2lkIF9faW9tZW0gKmJhc2VfYWRkciA9IGNmZ19ody0+c3lzX2Jh c2U7DQo+ICsJdTMyIHZhbDsNCj4gKw0KPiArCXZhbCA9IHJlYWRsX3JlbGF4ZWQoYmFzZV9hZGRy ICsgUkVHX0NMT0NLX0NPTkZJR19DUikgPj4gY2ZnLT5zaGlmdDsNCj4gKwl2YWwgJj0gY2xrX2Rp dl9tYXNrKGNmZy0+d2lkdGgpOw0KPiArDQo+ICsJcmV0dXJuIHByYXRlIC8gKDF1IDw8IHZhbCk7 DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBsb25nIG1wZnNfY2ZnX2Nsa19yb3VuZF9yYXRlKHN0cnVj dCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsIHVuc2lnbmVkIGxvbmcgKnByYXRlKQ0K PiArew0KPiArCXN0cnVjdCBtcGZzX2NmZ19od19jbG9jayAqY2ZnX2h3ID0gdG9fbXBmc19jZmdf Y2xrKGh3KTsNCj4gKwlzdHJ1Y3QgbXBmc19jZmdfY2xvY2sgKmNmZyA9ICZjZmdfaHctPmNmZzsN Cj4gKw0KPiArCXJldHVybiBkaXZpZGVyX3JvdW5kX3JhdGUoaHcsIHJhdGUsIHByYXRlLCBjZmct PnRhYmxlLCBjZmctPndpZHRoLCAwKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludCBtcGZzX2Nm Z19jbGtfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwgdW5z aWduZWQgbG9uZyBwcmF0ZSkNCj4gK3sNCj4gKwlzdHJ1Y3QgbXBmc19jZmdfaHdfY2xvY2sgKmNm Z19odyA9IHRvX21wZnNfY2ZnX2Nsayhodyk7DQo+ICsJc3RydWN0IG1wZnNfY2ZnX2Nsb2NrICpj ZmcgPSAmY2ZnX2h3LT5jZmc7DQo+ICsJdm9pZCBfX2lvbWVtICpiYXNlX2FkZHIgPSBjZmdfaHct PnN5c19iYXNlOw0KPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ICsJdTMyIHZhbDsNCj4gKwlp bnQgZGl2aWRlcl9zZXR0aW5nOw0KPiArDQo+ICsJZGl2aWRlcl9zZXR0aW5nID0gZGl2aWRlcl9n ZXRfdmFsKHJhdGUsIHByYXRlLCBjZmctPnRhYmxlLCBjZmctPndpZHRoLCAwKTsNCj4gKw0KPiAr CWlmIChkaXZpZGVyX3NldHRpbmcgPCAwKQ0KPiArCQlyZXR1cm4gZGl2aWRlcl9zZXR0aW5nOw0K PiArDQo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJm1wZnNfY2xrX2xvY2ssIGZsYWdzKTsNCj4gKw0K PiArCXZhbCA9IHJlYWRsX3JlbGF4ZWQoYmFzZV9hZGRyICsgUkVHX0NMT0NLX0NPTkZJR19DUik7 DQo+ICsJdmFsICY9IH4oY2xrX2Rpdl9tYXNrKGNmZy0+d2lkdGgpIDw8IGNmZ19ody0+Y2ZnLnNo aWZ0KTsNCj4gKwl2YWwgfD0gZGl2aWRlcl9zZXR0aW5nIDw8IGNmZy0+c2hpZnQ7DQo+ICsJd3Jp dGVsX3JlbGF4ZWQodmFsLCBiYXNlX2FkZHIgKyBSRUdfQ0xPQ0tfQ09ORklHX0NSKTsNCj4gKw0K PiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1wZnNfY2xrX2xvY2ssIGZsYWdzKTsNCj4gKw0K PiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMg bXBmc19jbGtfY2ZnX29wcyA9IHsNCj4gKwkucmVjYWxjX3JhdGUgPSBtcGZzX2NmZ19jbGtfcmVj YWxjX3JhdGUsDQo+ICsJLnJvdW5kX3JhdGUgPSBtcGZzX2NmZ19jbGtfcm91bmRfcmF0ZSwNCj4g Kwkuc2V0X3JhdGUgPSBtcGZzX2NmZ19jbGtfc2V0X3JhdGUsDQo+ICt9Ow0KPiArDQo+ICsjZGVm aW5lIENMS19DRkcoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0LCBfd2lkdGgsIF90YWJsZSwg X2ZsYWdzKSB7CQlcDQo+ICsJLmNmZy5pZCA9IF9pZCwJCQkJCQkJCVwNCj4gKwkuY2ZnLnNoaWZ0 ID0gX3NoaWZ0LAkJCQkJCQlcDQo+ICsJLmNmZy53aWR0aCA9IF93aWR0aCwJCQkJCQkJXA0KPiAr CS5jZmcudGFibGUgPSBfdGFibGUsCQkJCQkJCVwNCj4gKwkuaHcuaW5pdCA9IENMS19IV19JTklU X1BBUkVOVFNfREFUQShfbmFtZSwgX3BhcmVudCwgJm1wZnNfY2xrX2NmZ19vcHMsCVwNCj4gKwkJ CQkJICAgIF9mbGFncyksCQkJCVwNCj4gK30NCj4gKw0KPiArc3RhdGljIHN0cnVjdCBtcGZzX2Nm Z19od19jbG9jayBtcGZzX2NmZ19jbGtzW10gPSB7DQo+ICsJQ0xLX0NGRyhDTEtfQ1BVLCAiY2xr X2NwdSIsIG1wZnNfY2ZnX3BhcmVudCwgMCwgMiwgbXBmc19kaXZfY3B1X2F4aV90YWJsZSwgMCks DQo+ICsJQ0xLX0NGRyhDTEtfQVhJLCAiY2xrX2F4aSIsIG1wZnNfY2ZnX3BhcmVudCwgMiwgMiwg bXBmc19kaXZfY3B1X2F4aV90YWJsZSwgMCksDQo+ICsJQ0xLX0NGRyhDTEtfQUhCLCAiY2xrX2Fo YiIsIG1wZnNfY2ZnX3BhcmVudCwgNCwgMiwgbXBmc19kaXZfYWhiX3RhYmxlLCAwKSwNCj4gK307 DQo+ICsNCj4gK3N0YXRpYyBpbnQgbXBmc19jbGtfcmVnaXN0ZXJfY2ZnKHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IG1wZnNfY2ZnX2h3X2Nsb2NrICpjZmdfaHcsDQo+ICsJCQkJIHZvaWQgX19p b21lbSAqc3lzX2Jhc2UpDQo+ICt7DQo+ICsJY2ZnX2h3LT5zeXNfYmFzZSA9IHN5c19iYXNlOw0K PiArDQo+ICsJcmV0dXJuIGRldm1fY2xrX2h3X3JlZ2lzdGVyKGRldiwgJmNmZ19ody0+aHcpOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IG1wZnNfY2xrX3JlZ2lzdGVyX2NmZ3Moc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgbXBmc19jZmdfaHdfY2xvY2sgKmNmZ19od3MsDQo+ICsJCQkJICB1 bnNpZ25lZCBpbnQgbnVtX2Nsa3MsIHN0cnVjdCBtcGZzX2Nsb2NrX2RhdGEgKmRhdGEpDQo+ICt7 DQo+ICsJdm9pZCBfX2lvbWVtICpzeXNfYmFzZSA9IGRhdGEtPmJhc2U7DQo+ICsJdW5zaWduZWQg aW50IGksIGlkOw0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2Ns a3M7IGkrKykgew0KPiArCQlzdHJ1Y3QgbXBmc19jZmdfaHdfY2xvY2sgKmNmZ19odyA9ICZjZmdf aHdzW2ldOw0KPiArDQo+ICsJCXJldCA9IG1wZnNfY2xrX3JlZ2lzdGVyX2NmZyhkZXYsIGNmZ19o dywgc3lzX2Jhc2UpOw0KPiArCQlpZiAocmV0KQ0KPiArCQkJcmV0dXJuIGRldl9lcnJfcHJvYmUo ZGV2LCByZXQsICJmYWlsZWQgdG8gcmVnaXN0ZXIgY2xvY2sgaWQ6ICVkXG4iLA0KPiArCQkJCQkg ICAgIGNmZ19ody0+Y2ZnLmlkKTsNCj4gKw0KPiArCQlpZCA9IGNmZ19od3NbaV0uY2ZnLmlkOw0K PiArCQlkYXRhLT5od19kYXRhLmh3c1tpZF0gPSAmY2ZnX2h3LT5odzsNCj4gKwl9DQo+ICsNCj4g KwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludCBtcGZzX3BlcmlwaF9jbGtfZW5h YmxlKHN0cnVjdCBjbGtfaHcgKmh3KQ0KPiArew0KPiArCXN0cnVjdCBtcGZzX3BlcmlwaF9od19j bG9jayAqcGVyaXBoX2h3ID0gdG9fbXBmc19wZXJpcGhfY2xrKGh3KTsNCj4gKwlzdHJ1Y3QgbXBm c19wZXJpcGhfY2xvY2sgKnBlcmlwaCA9ICZwZXJpcGhfaHctPnBlcmlwaDsNCj4gKwl2b2lkIF9f aW9tZW0gKmJhc2VfYWRkciA9IHBlcmlwaF9ody0+c3lzX2Jhc2U7DQo+ICsJdTMyIHJlZywgdmFs Ow0KPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ICsNCj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgm bXBmc19jbGtfbG9jaywgZmxhZ3MpOw0KPiArDQo+ICsJcmVnID0gcmVhZGxfcmVsYXhlZChiYXNl X2FkZHIgKyBSRUdfU1VCQkxLX1JFU0VUX0NSKTsNCj4gKwl2YWwgPSByZWcgJiB+KDF1IDw8IHBl cmlwaC0+c2hpZnQpOw0KPiArCXdyaXRlbF9yZWxheGVkKHZhbCwgYmFzZV9hZGRyICsgUkVHX1NV QkJMS19SRVNFVF9DUik7DQo+ICsNCj4gKwlyZWcgPSByZWFkbF9yZWxheGVkKGJhc2VfYWRkciAr IFJFR19TVUJCTEtfQ0xPQ0tfQ1IpOw0KPiArCXZhbCA9IHJlZyB8ICgxdSA8PCBwZXJpcGgtPnNo aWZ0KTsNCj4gKwl3cml0ZWxfcmVsYXhlZCh2YWwsIGJhc2VfYWRkciArIFJFR19TVUJCTEtfQ0xP Q0tfQ1IpOw0KPiArDQo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbXBmc19jbGtfbG9jaywg ZmxhZ3MpOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIG1w ZnNfcGVyaXBoX2Nsa19kaXNhYmxlKHN0cnVjdCBjbGtfaHcgKmh3KQ0KPiArew0KPiArCXN0cnVj dCBtcGZzX3BlcmlwaF9od19jbG9jayAqcGVyaXBoX2h3ID0gdG9fbXBmc19wZXJpcGhfY2xrKGh3 KTsNCj4gKwlzdHJ1Y3QgbXBmc19wZXJpcGhfY2xvY2sgKnBlcmlwaCA9ICZwZXJpcGhfaHctPnBl cmlwaDsNCj4gKwl2b2lkIF9faW9tZW0gKmJhc2VfYWRkciA9IHBlcmlwaF9ody0+c3lzX2Jhc2U7 DQo+ICsJdTMyIHJlZywgdmFsOw0KPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ICsNCj4gKwlz cGluX2xvY2tfaXJxc2F2ZSgmbXBmc19jbGtfbG9jaywgZmxhZ3MpOw0KPiArDQo+ICsJcmVnID0g cmVhZGxfcmVsYXhlZChiYXNlX2FkZHIgKyBSRUdfU1VCQkxLX1JFU0VUX0NSKTsNCj4gKwl2YWwg PSByZWcgfCAoMXUgPDwgcGVyaXBoLT5zaGlmdCk7DQo+ICsJd3JpdGVsX3JlbGF4ZWQodmFsLCBi YXNlX2FkZHIgKyBSRUdfU1VCQkxLX1JFU0VUX0NSKTsNCj4gKw0KPiArCXJlZyA9IHJlYWRsX3Jl bGF4ZWQoYmFzZV9hZGRyICsgUkVHX1NVQkJMS19DTE9DS19DUik7DQo+ICsJdmFsID0gcmVnICYg figxdSA8PCBwZXJpcGgtPnNoaWZ0KTsNCj4gKwl3cml0ZWxfcmVsYXhlZCh2YWwsIGJhc2VfYWRk ciArIFJFR19TVUJCTEtfQ0xPQ0tfQ1IpOw0KPiArDQo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmbXBmc19jbGtfbG9jaywgZmxhZ3MpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IG1wZnNf cGVyaXBoX2Nsa19pc19lbmFibGVkKHN0cnVjdCBjbGtfaHcgKmh3KQ0KPiArew0KPiArCXN0cnVj dCBtcGZzX3BlcmlwaF9od19jbG9jayAqcGVyaXBoX2h3ID0gdG9fbXBmc19wZXJpcGhfY2xrKGh3 KTsNCj4gKwlzdHJ1Y3QgbXBmc19wZXJpcGhfY2xvY2sgKnBlcmlwaCA9ICZwZXJpcGhfaHctPnBl cmlwaDsNCj4gKwl2b2lkIF9faW9tZW0gKmJhc2VfYWRkciA9IHBlcmlwaF9ody0+c3lzX2Jhc2U7 DQo+ICsJdTMyIHJlZzsNCj4gKw0KPiArCXJlZyA9IHJlYWRsX3JlbGF4ZWQoYmFzZV9hZGRyICsg UkVHX1NVQkJMS19SRVNFVF9DUik7DQo+ICsJaWYgKChyZWcgJiAoMXUgPDwgcGVyaXBoLT5zaGlm dCkpID09IDB1KSB7DQo+ICsJCXJlZyA9IHJlYWRsX3JlbGF4ZWQoYmFzZV9hZGRyICsgUkVHX1NV QkJMS19DTE9DS19DUik7DQo+ICsJCWlmIChyZWcgJiAoMXUgPDwgcGVyaXBoLT5zaGlmdCkpDQo+ ICsJCQlyZXR1cm4gMTsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiAr c3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIG1wZnNfcGVyaXBoX2Nsa19vcHMgPSB7DQo+ICsJ LmVuYWJsZSA9IG1wZnNfcGVyaXBoX2Nsa19lbmFibGUsDQo+ICsJLmRpc2FibGUgPSBtcGZzX3Bl cmlwaF9jbGtfZGlzYWJsZSwNCj4gKwkuaXNfZW5hYmxlZCA9IG1wZnNfcGVyaXBoX2Nsa19pc19l bmFibGVkLA0KPiArfTsNCj4gKw0KPiArI2RlZmluZSBDTEtfUEVSSVBIKF9pZCwgX25hbWUsIF9w YXJlbnQsIF9zaGlmdCwgX2ZsYWdzKSB7CQkJXA0KPiArCS5wZXJpcGguaWQgPSBfaWQsCQkJCQkJ CVwNCj4gKwkucGVyaXBoLnNoaWZ0ID0gX3NoaWZ0LAkJCQkJCQlcDQo+ICsJLmh3LmluaXQgPSBD TEtfSFdfSU5JVF9IVyhfbmFtZSwgX3BhcmVudCwgJm1wZnNfcGVyaXBoX2Nsa19vcHMsCQlcDQo+ ICsJCQkJICBfZmxhZ3MpLAkJCQkJXA0KPiArfQ0KPiArDQo+ICsjZGVmaW5lIFBBUkVOVF9DTEso UEFSRU5UKSAoJm1wZnNfY2ZnX2Nsa3NbQ0xLXyMjUEFSRU5UXS5odykNCj4gKw0KPiArLyoNCj4g KyAqIENyaXRpY2FsIGNsb2NrczoNCj4gKyAqIC0gQ0xLX0VOVk06IHJlc2VydmVkIGJ5IGhhcnQg c29mdHdhcmUgc2VydmljZXMgKGhzcykgc3VwZXJsb29wIG1vbml0b3IvbSBtb2RlIGludGVycnVw dA0KPiArICogICB0cmFwIGhhbmRsZXINCj4gKyAqIC0gQ0xLX01NVUFSVDA6IHJlc2VydmVkIGJ5 IHRoZSBoc3MNCj4gKyAqIC0gQ0xLX0REUkM6IHByb3ZpZGVzIGNsb2NrIHRvIHRoZSBkZHIgc3Vi c3lzdGVtDQo+ICsgKiAtIENMS19GSUN4OiB0aGVzZSBwcm92aWRlIGNsb2NrcyBmb3Igc2VjdGlv bnMgb2YgdGhlIGZwZ2EgZmFicmljLCBkaXNhYmxpbmcgdGhlbSB3b3VsZA0KPiArICogICBjYXVz ZSB0aGUgZmFicmljIHRvIGdvIGludG8gcmVzZXQNCj4gKyAqLw0KPiArDQo+ICtzdGF0aWMgc3Ry dWN0IG1wZnNfcGVyaXBoX2h3X2Nsb2NrIG1wZnNfcGVyaXBoX2Nsa3NbXSA9IHsNCj4gKwlDTEtf UEVSSVBIKENMS19FTlZNLCAiY2xrX3BlcmlwaF9lbnZtIiwgUEFSRU5UX0NMSyhBSEIpLCAwLCBD TEtfSVNfQ1JJVElDQUwpLA0KPiArCUNMS19QRVJJUEgoQ0xLX01BQzAsICJjbGtfcGVyaXBoX21h YzAiLCBQQVJFTlRfQ0xLKEFIQiksIDEsIDApLA0KPiArCUNMS19QRVJJUEgoQ0xLX01BQzEsICJj bGtfcGVyaXBoX21hYzEiLCBQQVJFTlRfQ0xLKEFIQiksIDIsIDApLA0KPiArCUNMS19QRVJJUEgo Q0xLX01NQywgImNsa19wZXJpcGhfbW1jIiwgUEFSRU5UX0NMSyhBSEIpLCAzLCAwKSwNCj4gKwlD TEtfUEVSSVBIKENMS19USU1FUiwgImNsa19wZXJpcGhfdGltZXIiLCBQQVJFTlRfQ0xLKEFIQiks IDQsIDApLA0KPiArCUNMS19QRVJJUEgoQ0xLX01NVUFSVDAsICJjbGtfcGVyaXBoX21tdWFydDAi LCBQQVJFTlRfQ0xLKEFIQiksIDUsIENMS19JU19DUklUSUNBTCksDQo+ICsJQ0xLX1BFUklQSChD TEtfTU1VQVJUMSwgImNsa19wZXJpcGhfbW11YXJ0MSIsIFBBUkVOVF9DTEsoQUhCKSwgNiwgMCks DQo+ICsJQ0xLX1BFUklQSChDTEtfTU1VQVJUMiwgImNsa19wZXJpcGhfbW11YXJ0MiIsIFBBUkVO VF9DTEsoQUhCKSwgNywgMCksDQo+ICsJQ0xLX1BFUklQSChDTEtfTU1VQVJUMywgImNsa19wZXJp cGhfbW11YXJ0MyIsIFBBUkVOVF9DTEsoQUhCKSwgOCwgMCksDQo+ICsJQ0xLX1BFUklQSChDTEtf TU1VQVJUNCwgImNsa19wZXJpcGhfbW11YXJ0NCIsIFBBUkVOVF9DTEsoQUhCKSwgOSwgMCksDQo+ ICsJQ0xLX1BFUklQSChDTEtfU1BJMCwgImNsa19wZXJpcGhfc3BpMCIsIFBBUkVOVF9DTEsoQUhC KSwgMTAsIDApLA0KPiArCUNMS19QRVJJUEgoQ0xLX1NQSTEsICJjbGtfcGVyaXBoX3NwaTEiLCBQ QVJFTlRfQ0xLKEFIQiksIDExLCAwKSwNCj4gKwlDTEtfUEVSSVBIKENMS19JMkMwLCAiY2xrX3Bl cmlwaF9pMmMwIiwgUEFSRU5UX0NMSyhBSEIpLCAxMiwgMCksDQo+ICsJQ0xLX1BFUklQSChDTEtf STJDMSwgImNsa19wZXJpcGhfaTJjMSIsIFBBUkVOVF9DTEsoQUhCKSwgMTMsIDApLA0KPiArCUNM S19QRVJJUEgoQ0xLX0NBTjAsICJjbGtfcGVyaXBoX2NhbjAiLCBQQVJFTlRfQ0xLKEFIQiksIDE0 LCAwKSwNCj4gKwlDTEtfUEVSSVBIKENMS19DQU4xLCAiY2xrX3BlcmlwaF9jYW4xIiwgUEFSRU5U X0NMSyhBSEIpLCAxNSwgMCksDQo+ICsJQ0xLX1BFUklQSChDTEtfVVNCLCAiY2xrX3BlcmlwaF91 c2IiLCBQQVJFTlRfQ0xLKEFIQiksIDE2LCAwKSwNCj4gKwlDTEtfUEVSSVBIKENMS19SVEMsICJj bGtfcGVyaXBoX3J0YyIsIFBBUkVOVF9DTEsoQUhCKSwgMTgsIDApLA0KPiArCUNMS19QRVJJUEgo Q0xLX1FTUEksICJjbGtfcGVyaXBoX3FzcGkiLCBQQVJFTlRfQ0xLKEFIQiksIDE5LCAwKSwNCj4g KwlDTEtfUEVSSVBIKENMS19HUElPMCwgImNsa19wZXJpcGhfZ3BpbzAiLCBQQVJFTlRfQ0xLKEFI QiksIDIwLCAwKSwNCj4gKwlDTEtfUEVSSVBIKENMS19HUElPMSwgImNsa19wZXJpcGhfZ3BpbzEi LCBQQVJFTlRfQ0xLKEFIQiksIDIxLCAwKSwNCj4gKwlDTEtfUEVSSVBIKENMS19HUElPMiwgImNs a19wZXJpcGhfZ3BpbzIiLCBQQVJFTlRfQ0xLKEFIQiksIDIyLCAwKSwNCj4gKwlDTEtfUEVSSVBI KENMS19ERFJDLCAiY2xrX3BlcmlwaF9kZHJjIiwgUEFSRU5UX0NMSyhBSEIpLCAyMywgQ0xLX0lT X0NSSVRJQ0FMKSwNCj4gKwlDTEtfUEVSSVBIKENMS19GSUMwLCAiY2xrX3BlcmlwaF9maWMwIiwg UEFSRU5UX0NMSyhBSEIpLCAyNCwgQ0xLX0lTX0NSSVRJQ0FMKSwNCj4gKwlDTEtfUEVSSVBIKENM S19GSUMxLCAiY2xrX3BlcmlwaF9maWMxIiwgUEFSRU5UX0NMSyhBSEIpLCAyNSwgQ0xLX0lTX0NS SVRJQ0FMKSwNCj4gKwlDTEtfUEVSSVBIKENMS19GSUMyLCAiY2xrX3BlcmlwaF9maWMyIiwgUEFS RU5UX0NMSyhBSEIpLCAyNiwgQ0xLX0lTX0NSSVRJQ0FMKSwNCj4gKwlDTEtfUEVSSVBIKENMS19G SUMzLCAiY2xrX3BlcmlwaF9maWMzIiwgUEFSRU5UX0NMSyhBSEIpLCAyNywgQ0xLX0lTX0NSSVRJ Q0FMKSwNCj4gKwlDTEtfUEVSSVBIKENMS19BVEhFTkEsICJjbGtfcGVyaXBoX2F0aGVuYSIsIFBB UkVOVF9DTEsoQUhCKSwgMjgsIDApLA0KPiArCUNMS19QRVJJUEgoQ0xLX0NGTSwgImNsa19wZXJp cGhfY2ZtIiwgUEFSRU5UX0NMSyhBSEIpLCAyOSwgMCksDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMg aW50IG1wZnNfY2xrX3JlZ2lzdGVyX3BlcmlwaChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBt cGZzX3BlcmlwaF9od19jbG9jayAqcGVyaXBoX2h3LA0KPiArCQkJCSAgICB2b2lkIF9faW9tZW0g KnN5c19iYXNlKQ0KPiArew0KPiArCXBlcmlwaF9ody0+c3lzX2Jhc2UgPSBzeXNfYmFzZTsNCj4g Kw0KPiArCXJldHVybiBkZXZtX2Nsa19od19yZWdpc3RlcihkZXYsICZwZXJpcGhfaHctPmh3KTsN Cj4gK30NCj4gKw0KPiArc3RhdGljIGludCBtcGZzX2Nsa19yZWdpc3Rlcl9wZXJpcGhzKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IG1wZnNfcGVyaXBoX2h3X2Nsb2NrICpwZXJpcGhfaHdzLA0K PiArCQkJCSAgICAgaW50IG51bV9jbGtzLCBzdHJ1Y3QgbXBmc19jbG9ja19kYXRhICpkYXRhKQ0K PiArew0KPiArCXZvaWQgX19pb21lbSAqc3lzX2Jhc2UgPSBkYXRhLT5iYXNlOw0KPiArCXVuc2ln bmVkIGludCBpLCBpZDsNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IG51 bV9jbGtzOyBpKyspIHsNCj4gKwkJc3RydWN0IG1wZnNfcGVyaXBoX2h3X2Nsb2NrICpwZXJpcGhf aHcgPSAmcGVyaXBoX2h3c1tpXTsNCj4gKw0KPiArCQlyZXQgPSBtcGZzX2Nsa19yZWdpc3Rlcl9w ZXJpcGgoZGV2LCBwZXJpcGhfaHcsIHN5c19iYXNlKTsNCj4gKwkJaWYgKHJldCkNCj4gKwkJCXJl dHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIGNsb2NrIGlk OiAlZFxuIiwNCj4gKwkJCQkJICAgICBwZXJpcGhfaHctPnBlcmlwaC5pZCk7DQo+ICsNCj4gKwkJ aWQgPSBwZXJpcGhfaHdzW2ldLnBlcmlwaC5pZDsNCj4gKwkJZGF0YS0+aHdfZGF0YS5od3NbaWRd ID0gJnBlcmlwaF9ody0+aHc7DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsN Cj4gK3N0YXRpYyBpbnQgbXBmc19jbGtfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikNCj4gK3sNCj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Ow0KPiArCXN0cnVj dCBtcGZzX2Nsb2NrX2RhdGEgKmNsa19kYXRhOw0KPiArCXVuc2lnbmVkIGludCBudW1fY2xrczsN Cj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJLyogQ0xLX1JFU0VSVkVEIGlzIG5vdCBwYXJ0IG9mIGNm Z19jbGtzIG5vciBwZXJpcGhfY2xrcywgc28gYWRkIDEgKi8NCj4gKwludW1fY2xrcyA9IEFSUkFZ X1NJWkUobXBmc19jZmdfY2xrcykgKyBBUlJBWV9TSVpFKG1wZnNfcGVyaXBoX2Nsa3MpICsgMTsN Cj4gKw0KPiArCWNsa19kYXRhID0gZGV2bV9remFsbG9jKGRldiwgc3RydWN0X3NpemUoY2xrX2Rh dGEsIGh3X2RhdGEuaHdzLCBudW1fY2xrcyksIEdGUF9LRVJORUwpOw0KPiArCWlmICghY2xrX2Rh dGEpDQo+ICsJCXJldHVybiAtRU5PTUVNOw0KPiArDQo+ICsJY2xrX2RhdGEtPmJhc2UgPSBkZXZt X3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7DQo+ICsJaWYgKElTX0VSUihjbGtf ZGF0YS0+YmFzZSkpDQo+ICsJCXJldHVybiBQVFJfRVJSKGNsa19kYXRhLT5iYXNlKTsNCj4gKw0K PiArCWNsa19kYXRhLT5od19kYXRhLm51bSA9IG51bV9jbGtzOw0KPiArDQo+ICsJcmV0ID0gbXBm c19jbGtfcmVnaXN0ZXJfY2ZncyhkZXYsIG1wZnNfY2ZnX2Nsa3MsIEFSUkFZX1NJWkUobXBmc19j ZmdfY2xrcyksIGNsa19kYXRhKTsNCj4gKwlpZiAocmV0KQ0KPiArCQlyZXR1cm4gcmV0Ow0KPiAr DQo+ICsJcmV0ID0gbXBmc19jbGtfcmVnaXN0ZXJfcGVyaXBocyhkZXYsIG1wZnNfcGVyaXBoX2Ns a3MsIEFSUkFZX1NJWkUobXBmc19wZXJpcGhfY2xrcyksDQo+ICsJCQkJCWNsa19kYXRhKTsNCj4g KwlpZiAocmV0KQ0KPiArCQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJcmV0ID0gZGV2bV9vZl9jbGtf YWRkX2h3X3Byb3ZpZGVyKGRldiwgb2ZfY2xrX2h3X29uZWNlbGxfZ2V0LCAmY2xrX2RhdGEtPmh3 X2RhdGEpOw0KPiArCWlmIChyZXQpDQo+ICsJCXJldHVybiByZXQ7DQo+ICsNCj4gKwlyZXR1cm4g cmV0Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtcGZz X2Nsa19vZl9tYXRjaF90YWJsZVtdID0gew0KPiArCXsgLmNvbXBhdGlibGUgPSAibWljcm9jaGlw LG1wZnMtY2xrY2ZnIiwgfSwNCj4gKwl7fQ0KPiArfTsNCj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUo b2YsIG1wZnNfY2xrX21hdGNoX3RhYmxlKTsNCj4gKw0KPiArc3RhdGljIHN0cnVjdCBwbGF0Zm9y bV9kcml2ZXIgbXBmc19jbGtfZHJpdmVyID0gew0KPiArCS5wcm9iZSA9IG1wZnNfY2xrX3Byb2Jl LA0KPiArCS5kcml2ZXIJPSB7DQo+ICsJCS5uYW1lID0gIm1pY3JvY2hpcC1tcGZzLWNsa2NmZyIs DQo+ICsJCS5vZl9tYXRjaF90YWJsZSA9IG1wZnNfY2xrX29mX21hdGNoX3RhYmxlLA0KPiArCX0s DQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgaW50IF9faW5pdCBjbGtfbXBmc19pbml0KHZvaWQpDQo+ ICt7DQo+ICsJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmbXBmc19jbGtfZHJpdmVy KTsNCj4gK30NCj4gK2NvcmVfaW5pdGNhbGwoY2xrX21wZnNfaW5pdCk7DQo+ICsNCj4gK3N0YXRp YyB2b2lkIF9fZXhpdCBjbGtfbXBmc19leGl0KHZvaWQpDQo+ICt7DQo+ICsJcGxhdGZvcm1fZHJp dmVyX3VucmVnaXN0ZXIoJm1wZnNfY2xrX2RyaXZlcik7DQo+ICt9DQo+ICttb2R1bGVfZXhpdChj bGtfbXBmc19leGl0KTsNCj4gKw0KPiArTU9EVUxFX0RFU0NSSVBUSU9OKCJNaWNyb2NoaXAgUG9s YXJGaXJlIFNvQyBDbG9jayBEcml2ZXIiKTsNCj4gK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsN Cg0K