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 095F5ECAAD2 for ; Fri, 26 Aug 2022 06:42:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245052AbiHZGm3 (ORCPT ); Fri, 26 Aug 2022 02:42:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41618 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245020AbiHZGm1 (ORCPT ); Fri, 26 Aug 2022 02:42:27 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 63061D125E; Thu, 25 Aug 2022 23:42:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1661496146; x=1693032146; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=SBpJfT0w5Z9yL43bFmVkTivm+qFTxAkhqB3b4uBc6Zg=; b=PCJ/zYFaIqJ5QQo1/QMW1rhLAejI6mgU1Jg4MoE0Okk6vD51JufkDro3 zn5PpDfGMP6bNs1U6rvU1wVbXPvExt0DD4K7SoKWAoA7Do/U2lUgPKuPH jGE5f+xpEG7Boopwy71QqgHuuw+EK2dNBz2c+x8PKBkjzis9D4VggK+58 vJlP1ic8CoNbGgQ0zFRr7xafEiJzqwH59McYKN9T6DER6eAiEmKNeFLOj VjAatciHv1wABBPAaywlCv7IektVRzVQMDvem8JQv9eK/UMGTdTl+G1hF fV1mIBCFUicNyxG5UiCL2JCeVJdLWD1fEPUFXeX1Ktz2DafvdqldvHD66 g==; X-IronPort-AV: E=Sophos;i="5.93,264,1654585200"; d="scan'208";a="177966160" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa3.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 25 Aug 2022 23:42:24 -0700 Received: from chn-vm-ex01.mchp-main.com (10.10.85.143) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.12; Thu, 25 Aug 2022 23:42:24 -0700 Received: from NAM12-MW2-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.2507.12 via Frontend Transport; Thu, 25 Aug 2022 23:42:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eZpd2/qIe52sYWQ/ZDA+XHZTQQHtnBzZm3loOcLJrsi1pDF+P2e6G4XF7sxsGiqqzKLmdZp5M8OTJCxztr+TrHl7BWHyczPdDnvy3vLmN/dgyUSbkdX/fcHmrDJGe3lRsy/S8D3BiWoPMFi/26SEAZzssjSnNg7bhBSxCsBspHOFyzBcSYzWCPOSevXuQI1+Fz7JPUjZDhiLGykbRn8GkgRSWKK/q72hhfuw9e3LxbvsR36ip5yhtCQCTfwt2IIXMfjzF8GGTkQ/iZHRwyGRoo/23Etyq7VUQGt81F2VcurrqkS5XUDVuka4O3uRtUnDgb2XGhsAKE9Mqi5GGlvt9w== 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=SBpJfT0w5Z9yL43bFmVkTivm+qFTxAkhqB3b4uBc6Zg=; b=JmrQnMh3vW6a6PrsqFHWgdSu7P/ybtSC4kyCmThldFTrhxQax8YI5qZvdncSwSr+aaKNSMpNn9H4OBAM9KT8QpxgPNuTVBqJ4Atvsgtq8cvX1yqDFrizRWCoOr0fuTX0rr5z1+hWrQwVR2lIDKLZxT2q78hC5Dcrk18dxkQ0nJwJcC7G1loBhSBqic3t+MSBIhuKOZ918oTVsR4TRND93t/rpo9ccyZ1H1StA22hqdaik1AhLMHlrZr2PGw3omUPoZKEA/zqClA5PdwYcG6CbhCY4PnIOW7R8wHm2OB/tM6grtYr1PNHlaBWHyv7giS1aNklYjW+fWVUKAnNBFWq5A== 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=SBpJfT0w5Z9yL43bFmVkTivm+qFTxAkhqB3b4uBc6Zg=; b=ldXNoeHe/I7jX62w1lq/j1q/3/8T+UBi1DhEkE1GphzckC32TINuGEocYrdUQHdgwqn8fiCJr7gRbOoEP+pItbE+R5eUhHMdX1nGqxE7ZS/0P4g1/CH675nVhbva6vypk/YlvI1eINik1sXZququ/ao2ugTQ9oTE7bQNiMyLlgk= Received: from BN6PR11MB1953.namprd11.prod.outlook.com (2603:10b6:404:105::14) by BN6PR11MB1233.namprd11.prod.outlook.com (2603:10b6:404:44::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.21; Fri, 26 Aug 2022 06:42:19 +0000 Received: from BN6PR11MB1953.namprd11.prod.outlook.com ([fe80::a159:97ec:24bc:6610]) by BN6PR11MB1953.namprd11.prod.outlook.com ([fe80::a159:97ec:24bc:6610%10]) with mapi id 15.20.5566.015; Fri, 26 Aug 2022 06:42:12 +0000 From: To: , , , , , , , CC: , , , , , Subject: Re: [PATCH v3 4/5] clk: microchip: add PolarFire SoC fabric clock support Thread-Topic: [PATCH v3 4/5] clk: microchip: add PolarFire SoC fabric clock support Thread-Index: AQHYuRb4LBQCdLCrEE6SIWRxlmEl6Q== Date: Fri, 26 Aug 2022 06:42:12 +0000 Message-ID: <6764b456-2e06-54da-2bbb-1efda2dbf52e@microchip.com> References: <20220824093342.187844-1-conor.dooley@microchip.com> <20220824093342.187844-5-conor.dooley@microchip.com> In-Reply-To: <20220824093342.187844-5-conor.dooley@microchip.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.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: 663bcbaa-7c41-4269-db9e-08da872e1b6f x-ms-traffictypediagnostic: BN6PR11MB1233:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0KrenBvD/Mmk0EeEwOdqx7OaQu065R+rVy2vRICoCRekMDCVZd1OLgBvkoAXU1DgwRwmiS8VbpEe9rX9s8V1L/bkFkD0U49LVwY/470+aBGFUeQxJ3INt8K1ujRaGikDtrHuHNIOIPAPRnymkbPAulXge5oTSbKazH8OCGyPoRs9Yi9XLXB8s01Asq8G1fh+ISvBKtvxacUig+SM2ULHfC6T1OGANl0FBlOxk5pt0aQCagnSSCPIFqDDRok5wah9YVur/+4fIhG/dSwHw0fQCj5EMGfFNB8DFKkzf5q5orV6N1Va1x08V56wgL5ypYTMbXwNC4mO9P0iBDWh2m+APe7ddsdgXwxqUJpegnxKGROri2fK/kRZ/6EPADzvcqXcMGWp4DgCk9BwhwN5mSIQFJyHYB6ZoAQE/Xg+0KN7fC71ayJbZhsTzflcl8R6KJklNULlBZTnG4/BGlWdFdpW4S1Z3MoUwGK2v8OhTD9v1CrxrsM2R96wPAUu+ATCTCvcPYINfuO5rNCM6/MktZx/KVO0gdy+N+uWN4+QA7CzStGGskUgRq706e81ZzhgKV0Sp8RQENdwv0kGSYKb1lNgwgrMvyAgwdZlAnZxBtxnxJUKiuqD2dgz+E7fSbIQQItFVlWb4Jf+83ye43gc4qF7TBaAURvIdRu7DCA542GSK5t1XyS11iUwjQ0P3d2wmY8NVBXzdrlaIZaKz+9Bmdy1UIanFPHsvFLOwr2m3bRZ9zQ+7DVpBYD/GQhOAcnpYzDU/z2wwXcX9dmnHVbQb3iP0AvukWNNIOSwbL+qMGCpr8SlB1Tft3IGtQvB5An5ruUY2e9O4w0L+6OcP050EUHrvwteOjIlysdfAU2fGE5sY/U= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR11MB1953.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(396003)(366004)(346002)(376002)(136003)(39860400002)(91956017)(8676002)(4326008)(66446008)(64756008)(66476007)(66556008)(66946007)(76116006)(54906003)(110136005)(316002)(6636002)(86362001)(31696002)(36756003)(7416002)(8936002)(5660300002)(30864003)(2906002)(122000001)(31686004)(38070700005)(38100700002)(6506007)(53546011)(966005)(6486002)(478600001)(6512007)(26005)(41300700001)(71200400001)(2616005)(186003)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RmEwVXF5TkxtTmZ6cTRRcUpXQXpVZDFsSkQzR0xFZXhWYlA4eU9GTktCaThD?= =?utf-8?B?YmFPSnZyMjRjNXpDSkdOZE9XZzJGZlRJVXFRTFdNY2czQTBOWmk3bCtZbTFs?= =?utf-8?B?SFdieEZYbHRuVUdQRU5yUUs5TCtHNFZ2cVBDZ2R6L0xWeFNHUmk0WlBsTkJI?= =?utf-8?B?OTVadHRhVUN0M3BzcHZhcUpnSUY1bko4bTNxVzVhY0VhM3FTTkJDR0ltNHEv?= =?utf-8?B?amdzc083TUpoU2dIQWE2TEM3UmU1aU5BODBxMjFpZWVEajhFSEFsSURpUVBK?= =?utf-8?B?OEhuV3cvK2t2V29ENXZCWGlic1I5bFA2aGszVkdCQk5uU2k2WmpqczRBeE5N?= =?utf-8?B?aUYvbWNMRTViQXFBUEpQZkh0MHlpODVHSXV1OHpLUkVNUzUwN00vYXBlSGs0?= =?utf-8?B?cm50SXlvQk1lZnpkTFVRZm9McGJzUmx2R2duU2dlVXhqZmlFWWY2enFkUjc4?= =?utf-8?B?dmEwanVsbk9ObGt3ZkovRExNbjNEZkpTV3dLM0JvZ2pPenNCZEJlS0c4WEh5?= =?utf-8?B?ZFd3Y1Y4YzVnN2hocDBRVElLRXQrcmJWcTRSVnJHeGN6T3JPLzBLVjZBZUZz?= =?utf-8?B?MU9Idk5Mbml6YVpwUjRCOVpYejZPdzZkVW5UMUI3QnZyMjlUMVhwd3FQZ1Fz?= =?utf-8?B?ZEJiUnB1UStrUTVGeHpoYVdnUzBZQ2g1cmM0Q3R6blhXMjVveVo2SUI3SnIz?= =?utf-8?B?bkwrNHJYS0RtekxJK0VRc2hGenlwYWt6bmswR0g2dGFocy9vY1pVamJRbkxl?= =?utf-8?B?OFA5WjlyL0xOOG1nc2hjN3dJQnpxc1Nob1BONzlhbkZOcnR5N3JYTy9yMXZZ?= =?utf-8?B?RDlndHdlckZvZi9uQ0NvLzBTTHl5Ym84VWtOR28rQ0N6Vy9XZW12NW0rL3Rn?= =?utf-8?B?U0NSTEdLUXowQ0hkdXFGeWZYOGRsTVFDWkMzM3Y4emxKNmJWUzRsUVpWdEp4?= =?utf-8?B?RUtRbTVpTDNXUXB3cldJZ0N1VWU2UEZkOTRRZmpDa0poUjRMMy9YbzV4VVVy?= =?utf-8?B?bzJpK3ZhV0hmRkk4R2grZXNwcWxybDk3elZCTFVrdEtLYnc4cGJzOW9oRFhQ?= =?utf-8?B?TGRuZ29kS1VsMlJzdy9jSm1aQWNNWmVmck9OaUowVDl1Tkg1aXRieVJjRVNZ?= =?utf-8?B?cVdNWEk0am1CUTNJN0lTcXJuMVVXZytpSVhzYlM0cmJkNy9ZSWV1M0QwYzJD?= =?utf-8?B?bGlFRWZVaFJ0NFRYVXlYcUQzV3E5MExxaWlZOGFiYmVwSGh2QkR3clI2R3JX?= =?utf-8?B?OHA0VVdqK0lUamNFRE1OMHRZdjE0K0xHTitxOGtxYm11WmdieDdCMTZ2allW?= =?utf-8?B?UklTTFlEaXh2ZHoremZrUmN0cmwrcGVSUW9RamRuVVYxallZVHYvN1NSK0xQ?= =?utf-8?B?TTZYZWw1UlcxTjZvaFdzSzRWYlhzUktXM1ZjQk1ycVoxeGEyN3h6YTg1alha?= =?utf-8?B?OVlacmVhOFkvYTF6d20xL3RucEZOUHE2b3EwV1JnQ2lxbS9SZ3lGSWQySFli?= =?utf-8?B?QjMxM3VZUWkrZkdGUGl1MjFFeFhxcVpjRTFVRWtSREw5RTFpdytMc2V6bGt1?= =?utf-8?B?NVNxNGtFdjR0TkJKYUNBM3Q3TTBTNkpmVE9XbVdGaC8zTWNJcHh2Z0xkbUZ1?= =?utf-8?B?d0E3cC9Td1RMZ2oxQVc5djBJeEI4QXI1bG80eW5FZVBseHNSSGUyTlZ4ZkFN?= =?utf-8?B?cGI5K2FBNUttSzJDaFFmZ3FYTTJNa0NLQnVCaUZTK2c3dlJUYjJEcmZ6dDlt?= =?utf-8?B?Y0VBVGNoZlp5RDNKTEZKU1FCTGZmUFZXeEx6a2NPNUx0UFdDSXZXemcxa2lI?= =?utf-8?B?U3A0d0FwYWUvU2huQ2pVVFZ4QUgwbzZ0THN3dkhIUmtiVXU5YjBTaEJYKy9G?= =?utf-8?B?RllZSnlHQkN3K2ZUZVN4ekdhdkhyZU9ITkRQZURwS1czZ1pWd21TQkJBcjJB?= =?utf-8?B?aEp6QTVUaE9Dc2diYTRSZWxNNmErL2QrTElFVS9aeWpYa3lSdEozYXYrUWY2?= =?utf-8?B?RExRM01wZG9wdGVyaDdaS3JVRHM4bkY2ak1iOWczVkREb2JoQW1qT0hKb3FB?= =?utf-8?B?cldUd2FFTnhONnVBcFFVWVp2c1dXbkw0VUt2dGJDemtkcW01cElNRUZvQ1lK?= =?utf-8?B?aHJ0aXRCQVpDY1dLL3hDMVpjT0s3ZW9pT0E4UjROMzdYY1lyYlo1UGNhL1VK?= =?utf-8?B?OXc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <61FE971785A7954BBF7B59D6B387404E@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR11MB1953.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 663bcbaa-7c41-4269-db9e-08da872e1b6f X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2022 06:42:12.4438 (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: 2+6WPvEz7AI6JIcq+Uj47g2I7GmJ+9lsLTl3NtWwtESxiz4gNKuzWzV8HImI9M2Hx68Nx/gbbWU2FIPv2M3X+BL9kKOZSbgQ33EMp1S+QAo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1233 Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org T24gMjQuMDguMjAyMiAxMjozMywgQ29ub3IgRG9vbGV5IHdyb3RlOg0KPiBFWFRFUk5BTCBFTUFJ TDogRG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSBrbm93 IHRoZSBjb250ZW50IGlzIHNhZmUNCj4gDQo+IEFkZCBhIGRyaXZlciB0byBzdXBwb3J0IHRoZSBQ TExzIGluIFBvbGFyRmlyZSBTb0MncyBDbG9jayBDb25kaXRpb25pbmcNCj4gQ2lyY3VpdHJ5LCBh biBpbnN0YW5jZSBvZiB3aGljaCBpcyBsb2NhdGVkIGluIGVhY2ggb3JkaW5hbCBjb3JuZXIgb2YN Cj4gdGhlIEZQR0EuIE9ubHkgZ2V0X3JhdGUoKSBpcyBzdXBwb3J0ZWQgYXMgdGhlc2UgY2xvY2tz IGFyZSBpbnRlbmRlZCB0bw0KPiBiZSBzdGF0aWNhbGx5IGNvbmZpZ3VyZWQgYnkgdGhlIEZQR0Eg ZGVzaWduLiBDdXJyZW50bHksIHRoZSBETExzIGFyZQ0KPiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMg ZHJpdmVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgaGFyZHdhcmUsIHNlZQ0KPiAiUG9s YXJGaXJlIFNvQyBGUEdBIENsb2NraW5nIFJlc291cmNlcyIgaW4gdGhlIGxpbmsgYmVsb3cuDQo+ IA0KPiBMaW5rOiBodHRwczovL29ubGluZWRvY3MubWljcm9jaGlwLmNvbS9wci9HVUlELThGMEND NEMwLTAzMTctNDI2Mi04OUNBLUNFNzc3M0VEMTkzMS1lbi1VUy0xL2luZGV4Lmh0bWwNCj4gU2ln bmVkLW9mZi1ieTogQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4NCj4g LS0tDQo+ICBkcml2ZXJzL2Nsay9taWNyb2NoaXAvTWFrZWZpbGUgICAgICAgfCAgIDEgKw0KPiAg ZHJpdmVycy9jbGsvbWljcm9jaGlwL2Nsay1tcGZzLWNjYy5jIHwgMjkzICsrKysrKysrKysrKysr KysrKysrKysrKysrKw0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAyOTQgaW5zZXJ0aW9ucygrKQ0KPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xrL21pY3JvY2hpcC9jbGstbXBmcy1jY2MuYw0K PiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21pY3JvY2hpcC9NYWtlZmlsZSBiL2RyaXZl cnMvY2xrL21pY3JvY2hpcC9NYWtlZmlsZQ0KPiBpbmRleCA1ZmE2ZGNmMzBhOWEuLjEzMjUwZTA0 ZTQ2YyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9jbGsvbWljcm9jaGlwL01ha2VmaWxlDQo+ICsr KyBiL2RyaXZlcnMvY2xrL21pY3JvY2hpcC9NYWtlZmlsZQ0KPiBAQCAtMiwzICsyLDQgQEANCj4g IG9iai0kKENPTkZJR19DT01NT05fQ0xLX1BJQzMyKSArPSBjbGstY29yZS5vDQo+ICBvYmotJChD T05GSUdfUElDMzJNWkRBKSArPSBjbGstcGljMzJtemRhLm8NCj4gIG9iai0kKENPTkZJR19NQ0hQ X0NMS19NUEZTKSArPSBjbGstbXBmcy5vDQo+ICtvYmotJChDT05GSUdfTUNIUF9DTEtfTVBGUykg Kz0gY2xrLW1wZnMtY2NjLm8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21pY3JvY2hpcC9j bGstbXBmcy1jY2MuYyBiL2RyaXZlcnMvY2xrL21pY3JvY2hpcC9jbGstbXBmcy1jY2MuYw0KPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjJhMzQwMzRjMmM2ZQ0K PiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RyaXZlcnMvY2xrL21pY3JvY2hpcC9jbGstbXBmcy1j Y2MuYw0KPiBAQCAtMCwwICsxLDI5MyBAQA0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAtb25seQ0KPiArLyoNCj4gKyAqIEF1dGhvcjogQ29ub3IgRG9vbGV5IDxjb25vci5k b29sZXlAbWljcm9jaGlwLmNvbT4NCj4gKyAqDQo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjIgTWlj cm9jaGlwIFRlY2hub2xvZ3kgSW5jLiBhbmQgaXRzIHN1YnNpZGlhcmllcw0KPiArICovDQo+ICsj aW5jbHVkZSAiYXNtLWdlbmVyaWMvZXJybm8tYmFzZS5oIg0KPiArI2luY2x1ZGUgPGxpbnV4L2Ns ay1wcm92aWRlci5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L2lvLmg+DQo+ICsjaW5jbHVkZSA8bGlu dXgvbW9kdWxlLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQo+ICsj aW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svbWljcm9jaGlwLG1wZnMtY2xvY2suaD4NCj4gKw0K PiArLyogYWRkcmVzcyBvZmZzZXQgb2YgY29udHJvbCByZWdpc3RlcnMgKi8NCj4gKyNkZWZpbmUg TVBGU19DQ0NfUExMX0NSICAgICAgICAgICAgICAgICAgICAgICAgMHgwNHUNCj4gKyNkZWZpbmUg TVBGU19DQ0NfUkVGX0NSICAgICAgICAgICAgICAgICAgICAgICAgMHgwOHUNCj4gKyNkZWZpbmUg TVBGU19DQ0NfU1NDR18yX0NSICAgICAgICAgICAgIDB4MkN1DQo+ICsjZGVmaW5lIE1QRlNfQ0ND X1BPU1RESVYwMV9DUiAgICAgICAgICAweDEwdQ0KPiArI2RlZmluZSBNUEZTX0NDQ19QT1NURElW MjNfQ1IgICAgICAgICAgMHgxNHUNCj4gKw0KPiArI2RlZmluZSBNUEZTX0NDQ19GQkRJVl9TSElG VCAgICAgICAgICAgMHgwMHUNCj4gKyNkZWZpbmUgTVBGU19DQ0NfRkJESVZfV0lEVEggICAgICAg ICAgIDB4MEN1DQo+ICsjZGVmaW5lIE1QRlNfQ0NDX1BPU1RESVYwX1NISUZUICAgICAgICAgICAg ICAgIDB4MDh1DQo+ICsjZGVmaW5lIE1QRlNfQ0NDX1BPU1RESVYxX1NISUZUICAgICAgICAgICAg ICAgIDB4MTh1DQo+ICsjZGVmaW5lIE1QRlNfQ0NDX1BPU1RESVYyX1NISUZUICAgICAgICAgICAg ICAgIE1QRlNfQ0NDX1BPU1RESVYwX1NISUZUDQo+ICsjZGVmaW5lIE1QRlNfQ0NDX1BPU1RESVYz X1NISUZUICAgICAgICAgICAgICAgIE1QRlNfQ0NDX1BPU1RESVYxX1NISUZUDQo+ICsjZGVmaW5l IE1QRlNfQ0NDX1BPU1RESVZfV0lEVEggICAgICAgICAweDA2dQ0KPiArI2RlZmluZSBNUEZTX0ND Q19SRUZDTEtfU0VMICAgICAgICAgICAgQklUKDYpDQo+ICsjZGVmaW5lIE1QRlNfQ0NDX1JFRkRJ Vl9TSElGVCAgICAgICAgICAweDA4dQ0KPiArI2RlZmluZSBNUEZTX0NDQ19SRUZESVZfV0lEVEgg ICAgICAgICAgMHgwNnUNCj4gKw0KPiArI2RlZmluZSBNUEZTX0NDQ19GSVhFRF9ESVYgICAgICAg ICAgICAgNA0KPiArI2RlZmluZSBNUEZTX0NDQ19PVVRQVVRTX1BFUl9QTEwgICAgICAgNA0KPiAr I2RlZmluZSBNUEZTX0NDQ19SRUZTX1BFUl9QTEwgICAgICAgICAgMg0KPiArDQo+ICtzdHJ1Y3Qg bXBmc19jY2NfZGF0YSB7DQo+ICsgICAgICAgdm9pZCBfX2lvbWVtICoqcGxsX2Jhc2U7DQo+ICsg ICAgICAgc3RydWN0IGRldmljZSAqZGV2Ow0KPiArICAgICAgIHN0cnVjdCBjbGtfaHdfb25lY2Vs bF9kYXRhIGh3X2RhdGE7DQo+ICt9Ow0KPiArDQo+ICtzdHJ1Y3QgbXBmc19jY2NfcGxsX2h3X2Ns b2NrIHsNCj4gKyAgICAgICB2b2lkIF9faW9tZW0gKmJhc2U7DQo+ICsgICAgICAgY29uc3QgY2hh ciAqbmFtZTsNCj4gKyAgICAgICBjb25zdCBzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhICpwYXJlbnRz Ow0KPiArICAgICAgIHVuc2lnbmVkIGludCBpZDsNCj4gKyAgICAgICB1MzIgcmVnX29mZnNldDsN Cj4gKyAgICAgICB1MzIgc2hpZnQ7DQo+ICsgICAgICAgdTMyIHdpZHRoOw0KPiArICAgICAgIHUz MiBmbGFnczsNCj4gKyAgICAgICBzdHJ1Y3QgY2xrX2h3IGh3Ow0KPiArICAgICAgIHN0cnVjdCBj bGtfaW5pdF9kYXRhIGluaXQ7DQo+ICt9Ow0KPiArDQo+ICsjZGVmaW5lIHRvX21wZnNfY2NjX2Ns ayhfaHcpIGNvbnRhaW5lcl9vZihfaHcsIHN0cnVjdCBtcGZzX2NjY19wbGxfaHdfY2xvY2ssIGh3 KQ0KPiArDQo+ICsvKg0KPiArICogbXBmc19jY2NfbG9jayBwcmV2ZW50cyBhbnl0aGluZyBlbHNl IGZyb20gd3JpdGluZyB0byBhIGZhYnJpYyBjY2MNCj4gKyAqIHdoaWxlIGEgc29mdHdhcmUgbG9j a2VkIHJlZ2lzdGVyIGlzIGJlaW5nIHdyaXR0ZW4uDQo+ICsgKi8NCj4gK3N0YXRpYyBERUZJTkVf U1BJTkxPQ0sobXBmc19jY2NfbG9jayk7DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xr X3BhcmVudF9kYXRhIG1wZnNfY2NjX3BsbDBfcmVmc1tdID0gew0KPiArICAgICAgIHsgLmZ3X25h bWUgPSAicGxsMF9yZWYwIiB9LA0KPiArICAgICAgIHsgLmZ3X25hbWUgPSAicGxsMF9yZWYxIiB9 LA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgbXBm c19jY2NfcGxsMV9yZWZzW10gPSB7DQo+ICsgICAgICAgeyAuZndfbmFtZSA9ICJwbGwxX3JlZjAi IH0sDQo+ICsgICAgICAgeyAuZndfbmFtZSA9ICJwbGwxX3JlZjEiIH0sDQo+ICt9Ow0KPiArDQo+ ICtzdGF0aWMgdW5zaWduZWQgbG9uZyBtcGZzX2NjY19wbGxfcmVjYWxjX3JhdGUoc3RydWN0IGNs a19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcHJhdGUpDQo+ICt7DQo+ICsgICAgICAgc3RydWN0IG1w ZnNfY2NjX3BsbF9od19jbG9jayAqY2NjX2h3ID0gdG9fbXBmc19jY2NfY2xrKGh3KTsNCj4gKyAg ICAgICB2b2lkIF9faW9tZW0gKm11bHRfYWRkciA9IGNjY19ody0+YmFzZSArIGNjY19ody0+cmVn X29mZnNldDsNCj4gKyAgICAgICB2b2lkIF9faW9tZW0gKnJlZl9kaXZfYWRkciA9IGNjY19ody0+ YmFzZSArIE1QRlNfQ0NDX1JFRl9DUjsNCj4gKyAgICAgICB1MzIgbXVsdCwgcmVmX2RpdjsNCj4g Kw0KPiArICAgICAgIG11bHQgPSByZWFkbF9yZWxheGVkKG11bHRfYWRkcikgPj4gTVBGU19DQ0Nf RkJESVZfU0hJRlQ7DQo+ICsgICAgICAgbXVsdCAmPSBjbGtfZGl2X21hc2soTVBGU19DQ0NfRkJE SVZfV0lEVEgpOw0KPiArICAgICAgIHJlZl9kaXYgPSByZWFkbF9yZWxheGVkKHJlZl9kaXZfYWRk cikgPj4gTVBGU19DQ0NfUkVGRElWX1NISUZUOw0KPiArICAgICAgIHJlZl9kaXYgJj0gY2xrX2Rp dl9tYXNrKE1QRlNfQ0NDX1JFRkRJVl9XSURUSCk7DQo+ICsNCj4gKyAgICAgICByZXR1cm4gcHJh dGUgKiBtdWx0IC8gKHJlZl9kaXYgKiBNUEZTX0NDQ19GSVhFRF9ESVYpOw0KPiArfQ0KPiArDQo+ ICtzdGF0aWMgdTggbXBmc19jY2NfcGxsX2dldF9wYXJlbnQoc3RydWN0IGNsa19odyAqaHcpDQo+ ICt7DQo+ICsgICAgICAgc3RydWN0IG1wZnNfY2NjX3BsbF9od19jbG9jayAqY2NjX2h3ID0gdG9f bXBmc19jY2NfY2xrKGh3KTsNCj4gKyAgICAgICB2b2lkIF9faW9tZW0gKnBsbF9jcl9hZGRyID0g Y2NjX2h3LT5iYXNlICsgTVBGU19DQ0NfUExMX0NSOw0KPiArDQo+ICsgICAgICAgcmV0dXJuICEh KHJlYWRsX3JlbGF4ZWQocGxsX2NyX2FkZHIpICYgTVBGU19DQ0NfUkVGQ0xLX1NFTCk7DQo+ICt9 DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBtcGZzX2NjY19wbGxfb3BzID0g ew0KPiArICAgICAgIC5yZWNhbGNfcmF0ZSA9IG1wZnNfY2NjX3BsbF9yZWNhbGNfcmF0ZSwNCj4g KyAgICAgICAuZ2V0X3BhcmVudCA9IG1wZnNfY2NjX3BsbF9nZXRfcGFyZW50LA0KPiArfTsNCj4g Kw0KPiArI2RlZmluZSBDTEtfQ0NDX1BMTChfaWQsIF9wYXJlbnRzLCBfc2hpZnQsIF93aWR0aCwg X2ZsYWdzLCBfb2Zmc2V0KSB7ICAgICAgICAgIFwNCj4gKyAgICAgICAuaWQgPSBfaWQsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCj4gKyAgICAgICAuc2hpZnQgPSBfc2hpZnQsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICAgICAu d2lkdGggPSBfd2lkdGgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICAgICAucmVnX29mZnNldCA9IF9vZmZzZXQs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCj4gKyAgICAgICAuZmxhZ3MgPSBfZmxhZ3MsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICAgICAucGFyZW50 cyA9IF9wYXJlbnRzLFwNCj4gK30NCj4gKw0KPiArc3RhdGljIHN0cnVjdCBtcGZzX2NjY19wbGxf aHdfY2xvY2sgbXBmc19jY2NfcGxsX2Nsa3NbXSA9IHsNCj4gKyAgICAgICBDTEtfQ0NDX1BMTChD TEtfQ0NDX1BMTDAsIG1wZnNfY2NjX3BsbDBfcmVmcywgTVBGU19DQ0NfRkJESVZfU0hJRlQsDQo+ ICsgICAgICAgICAgICAgICAgICAgTVBGU19DQ0NfRkJESVZfV0lEVEgsIDAsIE1QRlNfQ0NDX1NT Q0dfMl9DUiksDQo+ICsgICAgICAgQ0xLX0NDQ19QTEwoQ0xLX0NDQ19QTEwxLCBtcGZzX2NjY19w bGwxX3JlZnMsIE1QRlNfQ0NDX0ZCRElWX1NISUZULA0KPiArICAgICAgICAgICAgICAgICAgIE1Q RlNfQ0NDX0ZCRElWX1dJRFRILCAwLCBNUEZTX0NDQ19TU0NHXzJfQ1IpLA0KPiArfTsNCj4gKw0K PiArc3RydWN0IG1wZnNfY2NjX291dF9od19jbG9jayB7DQo+ICsgICAgICAgc3RydWN0IGNsa19k aXZpZGVyIGRpdmlkZXI7DQo+ICsgICAgICAgc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsNCj4g KyAgICAgICB1bnNpZ25lZCBpbnQgaWQ7DQo+ICsgICAgICAgdTMyIHJlZ19vZmZzZXQ7DQo+ICt9 Ow0KPiArDQo+ICsjZGVmaW5lIENMS19DQ0NfT1VUKF9pZCwgX3NoaWZ0LCBfd2lkdGgsIF9mbGFn cywgX29mZnNldCkgeyAgICBcDQo+ICsgICAgICAgLmlkID0gX2lkLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgLmRpdmlkZXIuc2hpZnQg PSBfc2hpZnQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgLmRp dmlkZXIud2lkdGggPSBfd2lkdGgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ ICsgICAgICAgLnJlZ19vZmZzZXQgPSBfb2Zmc2V0LCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQo+ICsgICAgICAgLmRpdmlkZXIuZmxhZ3MgPSBfZmxhZ3MsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgLmRpdmlkZXIubG9jayA9ICZtcGZzX2Nj Y19sb2NrLCAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBz dHJ1Y3QgbXBmc19jY2Nfb3V0X2h3X2Nsb2NrIG1wZnNfY2NjX3BsbDBvdXRfY2xrc1tdID0gew0K PiArICAgICAgIENMS19DQ0NfT1VUKENMS19DQ0NfUExMMF9PVVQwLCBNUEZTX0NDQ19QT1NURElW MF9TSElGVCwgTVBGU19DQ0NfUE9TVERJVl9XSURUSCwNCj4gKyAgICAgICAgICAgICAgICAgICBD TEtfRElWSURFUl9PTkVfQkFTRUQsIE1QRlNfQ0NDX1BPU1RESVYwMV9DUiksDQo+ICsgICAgICAg Q0xLX0NDQ19PVVQoQ0xLX0NDQ19QTEwwX09VVDEsIE1QRlNfQ0NDX1BPU1RESVYxX1NISUZULCBN UEZTX0NDQ19QT1NURElWX1dJRFRILA0KPiArICAgICAgICAgICAgICAgICAgIENMS19ESVZJREVS X09ORV9CQVNFRCwgTVBGU19DQ0NfUE9TVERJVjAxX0NSKSwNCj4gKyAgICAgICBDTEtfQ0NDX09V VChDTEtfQ0NDX1BMTDBfT1VUMiwgTVBGU19DQ0NfUE9TVERJVjJfU0hJRlQsIE1QRlNfQ0NDX1BP U1RESVZfV0lEVEgsDQo+ICsgICAgICAgICAgICAgICAgICAgQ0xLX0RJVklERVJfT05FX0JBU0VE LCBNUEZTX0NDQ19QT1NURElWMjNfQ1IpLA0KPiArICAgICAgIENMS19DQ0NfT1VUKENMS19DQ0Nf UExMMF9PVVQzLCBNUEZTX0NDQ19QT1NURElWM19TSElGVCwgTVBGU19DQ0NfUE9TVERJVl9XSURU SCwNCj4gKyAgICAgICAgICAgICAgICAgICBDTEtfRElWSURFUl9PTkVfQkFTRUQsIE1QRlNfQ0ND X1BPU1RESVYyM19DUiksDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgc3RydWN0IG1wZnNfY2NjX291 dF9od19jbG9jayBtcGZzX2NjY19wbGwxb3V0X2Nsa3NbXSA9IHsNCj4gKyAgICAgICBDTEtfQ0ND X09VVChDTEtfQ0NDX1BMTDFfT1VUMCwgTVBGU19DQ0NfUE9TVERJVjBfU0hJRlQsIE1QRlNfQ0ND X1BPU1RESVZfV0lEVEgsIDAsDQo+ICsgICAgICAgICAgICAgICAgICAgTVBGU19DQ0NfUE9TVERJ VjAxX0NSKSwNCj4gKyAgICAgICBDTEtfQ0NDX09VVChDTEtfQ0NDX1BMTDFfT1VUMSwgTVBGU19D Q0NfUE9TVERJVjFfU0hJRlQsIE1QRlNfQ0NDX1BPU1RESVZfV0lEVEgsIDAsDQo+ICsgICAgICAg ICAgICAgICAgICAgTVBGU19DQ0NfUE9TVERJVjAxX0NSKSwNCj4gKyAgICAgICBDTEtfQ0NDX09V VChDTEtfQ0NDX1BMTDFfT1VUMiwgTVBGU19DQ0NfUE9TVERJVjJfU0hJRlQsIE1QRlNfQ0NDX1BP U1RESVZfV0lEVEgsIDAsDQo+ICsgICAgICAgICAgICAgICAgICAgTVBGU19DQ0NfUE9TVERJVjIz X0NSKSwNCj4gKyAgICAgICBDTEtfQ0NDX09VVChDTEtfQ0NDX1BMTDFfT1VUMywgTVBGU19DQ0Nf UE9TVERJVjNfU0hJRlQsIE1QRlNfQ0NDX1BPU1RESVZfV0lEVEgsIDAsDQo+ICsgICAgICAgICAg ICAgICAgICAgTVBGU19DQ0NfUE9TVERJVjIzX0NSKSwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBz dHJ1Y3QgbXBmc19jY2Nfb3V0X2h3X2Nsb2NrICptcGZzX2NjY19wbGxvdXRfY2xrc1tdID0gew0K PiArICAgICAgIG1wZnNfY2NjX3BsbDBvdXRfY2xrcywgbXBmc19jY2NfcGxsMW91dF9jbGtzDQo+ ICt9Ow0KPiArDQo+ICtzdGF0aWMgaW50IG1wZnNfY2NjX3JlZ2lzdGVyX291dHB1dHMoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgbXBmc19jY2Nfb3V0X2h3X2Nsb2NrICpvdXRfaHdzLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG51bV9jbGtz LCBzdHJ1Y3QgbXBmc19jY2NfZGF0YSAqZGF0YSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBtcGZzX2NjY19wbGxfaHdfY2xvY2sgKnBhcmVudCkNCj4gK3sN Cj4gKyAgICAgICBpbnQgcmV0Ow0KPiArDQo+ICsgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9 IDA7IGkgPCBudW1fY2xrczsgaSsrKSB7DQo+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgbXBmc19j Y2Nfb3V0X2h3X2Nsb2NrICpvdXRfaHcgPSAmb3V0X2h3c1tpXTsNCj4gKyAgICAgICAgICAgICAg IGNoYXIgKm5hbWUgPSBkZXZtX2t6YWxsb2MoZGV2LCAyMywgR0ZQX0tFUk5FTCk7DQo+ICsNCj4g KyAgICAgICAgICAgICAgIHNucHJpbnRmKG5hbWUsIDIzLCAiJXNfb3V0JXUiLCBwYXJlbnQtPm5h bWUsIGkpOw0KPiArICAgICAgICAgICAgICAgb3V0X2h3LT5kaXZpZGVyLmh3LmluaXQgPSBDTEtf SFdfSU5JVF9IVyhuYW1lLCAmcGFyZW50LT5odywgJmNsa19kaXZpZGVyX29wcywgMCk7DQo+ICsg ICAgICAgICAgICAgICBvdXRfaHctPmRpdmlkZXIucmVnID0gZGF0YS0+cGxsX2Jhc2VbaSAvIE1Q RlNfQ0NDX09VVFBVVFNfUEVSX1BMTF0gKw0KPiArICAgICAgICAgICAgICAgICAgICAgICBvdXRf aHctPnJlZ19vZmZzZXQ7DQo+ICsNCj4gKyAgICAgICAgICAgICAgIHJldCA9IGRldm1fY2xrX2h3 X3JlZ2lzdGVyKGRldiwgJm91dF9ody0+ZGl2aWRlci5odyk7DQo+ICsgICAgICAgICAgICAgICBp ZiAocmV0KQ0KPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGV2X2Vycl9wcm9iZShk ZXYsIHJldCwgImZhaWxlZCB0byByZWdpc3RlciBjbG9jayBpZDogJWRcbiIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9ody0+aWQpOw0KPiArDQo+ ICsgICAgICAgICAgICAgICBkYXRhLT5od19kYXRhLmh3c1tvdXRfaHctPmlkXSA9ICZvdXRfaHct PmRpdmlkZXIuaHc7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAgcmV0dXJuIDA7DQo+ICt9 DQo+ICsNCj4gKyNkZWZpbmUgQ0xLX0hXX0lOSVRfUEFSRU5UU19EQVRBX0ZJWEVEX1NJWkUoX25h bWUsIF9wYXJlbnRzLCBfb3BzLCBfZmxhZ3MpICAgICBcDQo+ICsgICAgICAgKCYoc3RydWN0IGNs a19pbml0X2RhdGEpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KPiArICAgICAgICAgICAgICAgLmZsYWdzICAgICAgICAgID0gX2ZsYWdzLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICAgICAgICAgICAgIC5uYW1l ICAgICAgICAgICA9IF9uYW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQo+ICsgICAgICAgICAgICAgICAucGFyZW50X2RhdGEgICAgPSBfcGFyZW50cywgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgICAgICAgICAgICAgLm51bV9w YXJlbnRzICAgID0gTVBGU19DQ0NfUkVGU19QRVJfUExMLCAgICAgICAgICAgICAgICAgICAgICAg IFwNCj4gKyAgICAgICAgICAgICAgIC5vcHMgICAgICAgICAgICA9IF9vcHMsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgfSkNCj4gKw0KPiArc3Rh dGljIGludCBtcGZzX2NjY19yZWdpc3Rlcl9wbGxzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0 IG1wZnNfY2NjX3BsbF9od19jbG9jayAqcGxsX2h3cywNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBudW1fY2xrcywgc3RydWN0IG1wZnNfY2NjX2RhdGEg KmRhdGEpDQo+ICt7DQo+ICsgICAgICAgaW50IHJldDsNCj4gKw0KPiArICAgICAgIGZvciAodW5z aWduZWQgaW50IGkgPSAwOyBpIDwgbnVtX2Nsa3M7IGkrKykgew0KPiArICAgICAgICAgICAgICAg c3RydWN0IG1wZnNfY2NjX3BsbF9od19jbG9jayAqcGxsX2h3ID0gJnBsbF9od3NbaV07DQo+ICsg ICAgICAgICAgICAgICBjaGFyICpuYW1lID0gZGV2bV9remFsbG9jKGRldiwgMTgsIEdGUF9LRVJO RUwpOw0KPiArDQo+ICsgICAgICAgICAgICAgICBwbGxfaHctPmJhc2UgPSBkYXRhLT5wbGxfYmFz ZVtpXTsNCj4gKyAgICAgICAgICAgICAgIHNucHJpbnRmKG5hbWUsIDE4LCAiY2NjJXNfcGxsJXUi LCBzdHJjaHJudWwoZGV2LT5vZl9ub2RlLT5mdWxsX25hbWUsICdAJyksIGkpOw0KPiArICAgICAg ICAgICAgICAgcGxsX2h3LT5uYW1lID0gKGNvbnN0IGNoYXIgKiluYW1lOw0KPiArICAgICAgICAg ICAgICAgcGxsX2h3LT5ody5pbml0ID0gQ0xLX0hXX0lOSVRfUEFSRU5UU19EQVRBX0ZJWEVEX1NJ WkUocGxsX2h3LT5uYW1lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxsX2h3LT5wYXJlbnRzLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJm1wZnNfY2NjX3BsbF9vcHMsIDApOw0KPiArDQo+ICsgICAgICAgICAgICAgICBy ZXQgPSBkZXZtX2Nsa19od19yZWdpc3RlcihkZXYsICZwbGxfaHctPmh3KTsNCj4gKyAgICAgICAg ICAgICAgIGlmIChyZXQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkZXZfZXJy X3Byb2JlKGRldiwgcmV0LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIGNjYyBpZDogJWRcbiIsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsbF9ody0+aWQpOw0K PiArDQo+ICsgICAgICAgICAgICAgICBkYXRhLT5od19kYXRhLmh3c1twbGxfaHctPmlkXSA9ICZw bGxfaHctPmh3Ow0KPiArDQo+ICsgICAgICAgICAgICAgICByZXQgPSBtcGZzX2NjY19yZWdpc3Rl cl9vdXRwdXRzKGRldiwgbXBmc19jY2NfcGxsb3V0X2Nsa3NbaV0sDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRlNfQ0NDX09VVFBVVFNfUEVSX1BM TCwgZGF0YSwgcGxsX2h3KTsNCj4gKyAgICAgICAgICAgICAgIGlmIChyZXQpDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAg cmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgbXBmc19jY2NfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gK3sNCj4gKyAgICAgICBzdHJ1Y3QgbXBmc19jY2Nf ZGF0YSAqY2xrX2RhdGE7DQo+ICsgICAgICAgdm9pZCBfX2lvbWVtICpwbGxfYmFzZVtBUlJBWV9T SVpFKG1wZnNfY2NjX3BsbF9jbGtzKV07DQo+ICsgICAgICAgdW5zaWduZWQgaW50IG51bV9jbGtz Ow0KPiArICAgICAgIGludCByZXQ7DQo+ICsNCj4gKyAgICAgICBudW1fY2xrcyA9IEFSUkFZX1NJ WkUobXBmc19jY2NfcGxsX2Nsa3MpICsgQVJSQVlfU0laRShtcGZzX2NjY19wbGwwb3V0X2Nsa3Mp DQo+ICsgICAgICAgICAgICAgICArIEFSUkFZX1NJWkUobXBmc19jY2NfcGxsMW91dF9jbGtzKTsN Cj4gKw0KPiArICAgICAgIGNsa19kYXRhID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHN0cnVj dF9zaXplKGNsa19kYXRhLCBod19kYXRhLmh3cywgbnVtX2Nsa3MpLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdGUF9LRVJORUwpOw0KPiArICAgICAgIGlmICghY2xrX2RhdGEp DQo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gKw0KPiArICAgICAgIHBsbF9i YXNlWzBdID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOw0KPiArICAg ICAgIGlmIChJU19FUlIocGxsX2Jhc2VbMF0pKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIFBU Ul9FUlIocGxsX2Jhc2VbMF0pOw0KPiArDQo+ICsgICAgICAgcGxsX2Jhc2VbMV0gPSBkZXZtX3Bs YXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMSk7DQo+ICsgICAgICAgaWYgKElTX0VSUihw bGxfYmFzZVsxXSkpDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihwbGxfYmFzZVsx XSk7DQo+ICsNCj4gKyAgICAgICBjbGtfZGF0YS0+cGxsX2Jhc2UgPSBwbGxfYmFzZTsNCj4gKyAg ICAgICBjbGtfZGF0YS0+ZGV2ID0gJnBkZXYtPmRldjsNCj4gKw0KPiArICAgICAgIHJldCA9IG1w ZnNfY2NjX3JlZ2lzdGVyX3BsbHMoY2xrX2RhdGEtPmRldiwgbXBmc19jY2NfcGxsX2Nsa3MsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlJBWV9TSVpFKG1wZnNfY2Nj X3BsbF9jbGtzKSwgY2xrX2RhdGEpOw0KPiArICAgICAgIGlmIChyZXQpDQo+ICsgICAgICAgICAg ICAgICByZXR1cm4gcmV0Ow0KPiArDQo+ICsgICAgICAgcmV0ID0gZGV2bV9vZl9jbGtfYWRkX2h3 X3Byb3ZpZGVyKGNsa19kYXRhLT5kZXYsIG9mX2Nsa19od19vbmVjZWxsX2dldCwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNsa19kYXRhLT5od19kYXRhKTsN Cj4gKyAgICAgICBpZiAocmV0KQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCg0KWW91 IGNhbiBza2lwIHRoaXMgb3IgZXZlbiBkaXJlY3RseToNCglyZXR1cm4gZGV2bV9vZl9jbGtfYWRk X2h3X3Byb3ZpZGVyKC4uLik7DQoNCj4gKw0KPiArICAgICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1wZnNfY2NjX29mX21hdGNo X3RhYmxlW10gPSB7DQo+ICsgICAgICAgeyAuY29tcGF0aWJsZSA9ICJtaWNyb2NoaXAsbXBmcy1j Y2MiLCB9LA0KPiArICAgICAgIHt9DQo+ICt9Ow0KPiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwg bXBmc19jY2Nfb2ZfbWF0Y2hfdGFibGUpOw0KPiArDQo+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3Jt X2RyaXZlciBtcGZzX2NjY19kcml2ZXIgPSB7DQo+ICsgICAgICAgLnByb2JlID0gbXBmc19jY2Nf cHJvYmUsDQo+ICsgICAgICAgLmRyaXZlciA9IHsNCj4gKyAgICAgICAgICAgICAgIC5uYW1lID0g Im1pY3JvY2hpcC1tcGZzLWNjYyIsDQo+ICsgICAgICAgICAgICAgICAub2ZfbWF0Y2hfdGFibGUg PSBtcGZzX2NjY19vZl9tYXRjaF90YWJsZSwNCj4gKyAgICAgICB9LA0KPiArfTsNCj4gKw0KPiAr c3RhdGljIGludCBfX2luaXQgY2xrX2NjY19pbml0KHZvaWQpDQo+ICt7DQo+ICsgICAgICAgcmV0 dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmbXBmc19jY2NfZHJpdmVyKTsNCj4gK30NCj4g K2NvcmVfaW5pdGNhbGwoY2xrX2NjY19pbml0KTsNCj4gKw0KPiArc3RhdGljIHZvaWQgX19leGl0 IGNsa19jY2NfZXhpdCh2b2lkKQ0KPiArew0KPiArICAgICAgIHBsYXRmb3JtX2RyaXZlcl91bnJl Z2lzdGVyKCZtcGZzX2NjY19kcml2ZXIpOw0KPiArfQ0KPiArbW9kdWxlX2V4aXQoY2xrX2NjY19l eGl0KTsNCj4gKw0KPiArTU9EVUxFX0RFU0NSSVBUSU9OKCJNaWNyb2NoaXAgUG9sYXJGaXJlIFNv QyBDbG9jayBDb25kaXRpb25pbmcgQ2lyY3VpdHJ5IERyaXZlciIpOw0KPiArTU9EVUxFX0FVVEhP UigiQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4iKTsNCj4gK01PRFVM RV9MSUNFTlNFKCJHUEwiKTsNCj4gLS0NCj4gMi4zNi4xDQo+IA0KDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 53B44ECAAD2 for ; Fri, 26 Aug 2022 06:42:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=LE806YILtmSeXVPaTFrXQPQ9BsaxGqC/eLeBUbULu/U=; b=yKAJitFFdJizDk JHptKqVHfLROTnh5JGwZ6vEyq8ebDa9L4kXvPZyJDsyRl5tff5DiaZbb0DvJY5ioAMRc+WrKAmWg5 NGgzYhTYiVMiAjxRx8mXtHxkLjif1ceDDYwdf+7jRxO0ooMsxNoQKent81Re4qAXDWsps103+6yR2 Sycp/AnIcn08ukk4ygA8QAAu28eEL3S3K+Xvf1+5sO81wXvPl/sEI2V0SJyiH7PH3af7hNzOrW9L6 NnACxFWTzrqEWAQiMus5QEiNmhKNQJ1Ut+vrkSfRqOYhQ3U7+5EQHCmV4PEGWZJD26al2G9fmQ43l C/YUBfl1RgJoxHp+8nrg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oRT30-00Epm6-Vm; Fri, 26 Aug 2022 06:42:31 +0000 Received: from esa.microchip.iphmx.com ([68.232.153.233]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oRT2x-00EplP-MX for linux-riscv@lists.infradead.org; Fri, 26 Aug 2022 06:42:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1661496147; x=1693032147; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=SBpJfT0w5Z9yL43bFmVkTivm+qFTxAkhqB3b4uBc6Zg=; b=cDwho3lhY6CpveyNlvfDXJn/idNturVo4oioMXekx1UUN1Ker9DCrGDd bsXLHRF//F1ocwmp5Ir9oI71w86skgZ6pshijdpKa1OwIe9SbwqDB9boD 5qbru8iO4sEKpncttHEEFhhmRgDvxkNVT7Mf011gwh0INEuOtcpABXdxX 76xUeTNWvcb93vwJACD682738b7DpkXt6iqUQ9dUokwfU+c3zADNNTig8 100YThtRsqX8kcMYXPDOtf66XxdMHzPyJcjL/uvsnIQcqrwsbsg5CBFVD 5O8uMsdg5W8Ia5GhtgJXQ+ZLk2uCLs4wQFU16Gk0EIpPiiySrLKwci/1+ w==; X-IronPort-AV: E=Sophos;i="5.93,264,1654585200"; d="scan'208";a="177966160" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa3.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 25 Aug 2022 23:42:24 -0700 Received: from chn-vm-ex01.mchp-main.com (10.10.85.143) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.12; Thu, 25 Aug 2022 23:42:24 -0700 Received: from NAM12-MW2-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.2507.12 via Frontend Transport; Thu, 25 Aug 2022 23:42:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eZpd2/qIe52sYWQ/ZDA+XHZTQQHtnBzZm3loOcLJrsi1pDF+P2e6G4XF7sxsGiqqzKLmdZp5M8OTJCxztr+TrHl7BWHyczPdDnvy3vLmN/dgyUSbkdX/fcHmrDJGe3lRsy/S8D3BiWoPMFi/26SEAZzssjSnNg7bhBSxCsBspHOFyzBcSYzWCPOSevXuQI1+Fz7JPUjZDhiLGykbRn8GkgRSWKK/q72hhfuw9e3LxbvsR36ip5yhtCQCTfwt2IIXMfjzF8GGTkQ/iZHRwyGRoo/23Etyq7VUQGt81F2VcurrqkS5XUDVuka4O3uRtUnDgb2XGhsAKE9Mqi5GGlvt9w== 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=SBpJfT0w5Z9yL43bFmVkTivm+qFTxAkhqB3b4uBc6Zg=; b=JmrQnMh3vW6a6PrsqFHWgdSu7P/ybtSC4kyCmThldFTrhxQax8YI5qZvdncSwSr+aaKNSMpNn9H4OBAM9KT8QpxgPNuTVBqJ4Atvsgtq8cvX1yqDFrizRWCoOr0fuTX0rr5z1+hWrQwVR2lIDKLZxT2q78hC5Dcrk18dxkQ0nJwJcC7G1loBhSBqic3t+MSBIhuKOZ918oTVsR4TRND93t/rpo9ccyZ1H1StA22hqdaik1AhLMHlrZr2PGw3omUPoZKEA/zqClA5PdwYcG6CbhCY4PnIOW7R8wHm2OB/tM6grtYr1PNHlaBWHyv7giS1aNklYjW+fWVUKAnNBFWq5A== 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=SBpJfT0w5Z9yL43bFmVkTivm+qFTxAkhqB3b4uBc6Zg=; b=ldXNoeHe/I7jX62w1lq/j1q/3/8T+UBi1DhEkE1GphzckC32TINuGEocYrdUQHdgwqn8fiCJr7gRbOoEP+pItbE+R5eUhHMdX1nGqxE7ZS/0P4g1/CH675nVhbva6vypk/YlvI1eINik1sXZququ/ao2ugTQ9oTE7bQNiMyLlgk= Received: from BN6PR11MB1953.namprd11.prod.outlook.com (2603:10b6:404:105::14) by BN6PR11MB1233.namprd11.prod.outlook.com (2603:10b6:404:44::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.21; Fri, 26 Aug 2022 06:42:19 +0000 Received: from BN6PR11MB1953.namprd11.prod.outlook.com ([fe80::a159:97ec:24bc:6610]) by BN6PR11MB1953.namprd11.prod.outlook.com ([fe80::a159:97ec:24bc:6610%10]) with mapi id 15.20.5566.015; Fri, 26 Aug 2022 06:42:12 +0000 From: To: , , , , , , , CC: , , , , , Subject: Re: [PATCH v3 4/5] clk: microchip: add PolarFire SoC fabric clock support Thread-Topic: [PATCH v3 4/5] clk: microchip: add PolarFire SoC fabric clock support Thread-Index: AQHYuRb4LBQCdLCrEE6SIWRxlmEl6Q== Date: Fri, 26 Aug 2022 06:42:12 +0000 Message-ID: <6764b456-2e06-54da-2bbb-1efda2dbf52e@microchip.com> References: <20220824093342.187844-1-conor.dooley@microchip.com> <20220824093342.187844-5-conor.dooley@microchip.com> In-Reply-To: <20220824093342.187844-5-conor.dooley@microchip.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.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: 663bcbaa-7c41-4269-db9e-08da872e1b6f x-ms-traffictypediagnostic: BN6PR11MB1233:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0KrenBvD/Mmk0EeEwOdqx7OaQu065R+rVy2vRICoCRekMDCVZd1OLgBvkoAXU1DgwRwmiS8VbpEe9rX9s8V1L/bkFkD0U49LVwY/470+aBGFUeQxJ3INt8K1ujRaGikDtrHuHNIOIPAPRnymkbPAulXge5oTSbKazH8OCGyPoRs9Yi9XLXB8s01Asq8G1fh+ISvBKtvxacUig+SM2ULHfC6T1OGANl0FBlOxk5pt0aQCagnSSCPIFqDDRok5wah9YVur/+4fIhG/dSwHw0fQCj5EMGfFNB8DFKkzf5q5orV6N1Va1x08V56wgL5ypYTMbXwNC4mO9P0iBDWh2m+APe7ddsdgXwxqUJpegnxKGROri2fK/kRZ/6EPADzvcqXcMGWp4DgCk9BwhwN5mSIQFJyHYB6ZoAQE/Xg+0KN7fC71ayJbZhsTzflcl8R6KJklNULlBZTnG4/BGlWdFdpW4S1Z3MoUwGK2v8OhTD9v1CrxrsM2R96wPAUu+ATCTCvcPYINfuO5rNCM6/MktZx/KVO0gdy+N+uWN4+QA7CzStGGskUgRq706e81ZzhgKV0Sp8RQENdwv0kGSYKb1lNgwgrMvyAgwdZlAnZxBtxnxJUKiuqD2dgz+E7fSbIQQItFVlWb4Jf+83ye43gc4qF7TBaAURvIdRu7DCA542GSK5t1XyS11iUwjQ0P3d2wmY8NVBXzdrlaIZaKz+9Bmdy1UIanFPHsvFLOwr2m3bRZ9zQ+7DVpBYD/GQhOAcnpYzDU/z2wwXcX9dmnHVbQb3iP0AvukWNNIOSwbL+qMGCpr8SlB1Tft3IGtQvB5An5ruUY2e9O4w0L+6OcP050EUHrvwteOjIlysdfAU2fGE5sY/U= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR11MB1953.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(396003)(366004)(346002)(376002)(136003)(39860400002)(91956017)(8676002)(4326008)(66446008)(64756008)(66476007)(66556008)(66946007)(76116006)(54906003)(110136005)(316002)(6636002)(86362001)(31696002)(36756003)(7416002)(8936002)(5660300002)(30864003)(2906002)(122000001)(31686004)(38070700005)(38100700002)(6506007)(53546011)(966005)(6486002)(478600001)(6512007)(26005)(41300700001)(71200400001)(2616005)(186003)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RmEwVXF5TkxtTmZ6cTRRcUpXQXpVZDFsSkQzR0xFZXhWYlA4eU9GTktCaThD?= =?utf-8?B?YmFPSnZyMjRjNXpDSkdOZE9XZzJGZlRJVXFRTFdNY2czQTBOWmk3bCtZbTFs?= =?utf-8?B?SFdieEZYbHRuVUdQRU5yUUs5TCtHNFZ2cVBDZ2R6L0xWeFNHUmk0WlBsTkJI?= =?utf-8?B?OTVadHRhVUN0M3BzcHZhcUpnSUY1bko4bTNxVzVhY0VhM3FTTkJDR0ltNHEv?= =?utf-8?B?amdzc083TUpoU2dIQWE2TEM3UmU1aU5BODBxMjFpZWVEajhFSEFsSURpUVBK?= =?utf-8?B?OEhuV3cvK2t2V29ENXZCWGlic1I5bFA2aGszVkdCQk5uU2k2WmpqczRBeE5N?= =?utf-8?B?aUYvbWNMRTViQXFBUEpQZkh0MHlpODVHSXV1OHpLUkVNUzUwN00vYXBlSGs0?= =?utf-8?B?cm50SXlvQk1lZnpkTFVRZm9McGJzUmx2R2duU2dlVXhqZmlFWWY2enFkUjc4?= =?utf-8?B?dmEwanVsbk9ObGt3ZkovRExNbjNEZkpTV3dLM0JvZ2pPenNCZEJlS0c4WEh5?= =?utf-8?B?ZFd3Y1Y4YzVnN2hocDBRVElLRXQrcmJWcTRSVnJHeGN6T3JPLzBLVjZBZUZz?= =?utf-8?B?MU9Idk5Mbml6YVpwUjRCOVpYejZPdzZkVW5UMUI3QnZyMjlUMVhwd3FQZ1Fz?= =?utf-8?B?ZEJiUnB1UStrUTVGeHpoYVdnUzBZQ2g1cmM0Q3R6blhXMjVveVo2SUI3SnIz?= =?utf-8?B?bkwrNHJYS0RtekxJK0VRc2hGenlwYWt6bmswR0g2dGFocy9vY1pVamJRbkxl?= =?utf-8?B?OFA5WjlyL0xOOG1nc2hjN3dJQnpxc1Nob1BONzlhbkZOcnR5N3JYTy9yMXZZ?= =?utf-8?B?RDlndHdlckZvZi9uQ0NvLzBTTHl5Ym84VWtOR28rQ0N6Vy9XZW12NW0rL3Rn?= =?utf-8?B?U0NSTEdLUXowQ0hkdXFGeWZYOGRsTVFDWkMzM3Y4emxKNmJWUzRsUVpWdEp4?= =?utf-8?B?RUtRbTVpTDNXUXB3cldJZ0N1VWU2UEZkOTRRZmpDa0poUjRMMy9YbzV4VVVy?= =?utf-8?B?bzJpK3ZhV0hmRkk4R2grZXNwcWxybDk3elZCTFVrdEtLYnc4cGJzOW9oRFhQ?= =?utf-8?B?TGRuZ29kS1VsMlJzdy9jSm1aQWNNWmVmck9OaUowVDl1Tkg1aXRieVJjRVNZ?= =?utf-8?B?cVdNWEk0am1CUTNJN0lTcXJuMVVXZytpSVhzYlM0cmJkNy9ZSWV1M0QwYzJD?= =?utf-8?B?bGlFRWZVaFJ0NFRYVXlYcUQzV3E5MExxaWlZOGFiYmVwSGh2QkR3clI2R3JX?= =?utf-8?B?OHA0VVdqK0lUamNFRE1OMHRZdjE0K0xHTitxOGtxYm11WmdieDdCMTZ2allW?= =?utf-8?B?UklTTFlEaXh2ZHoremZrUmN0cmwrcGVSUW9RamRuVVYxallZVHYvN1NSK0xQ?= =?utf-8?B?TTZYZWw1UlcxTjZvaFdzSzRWYlhzUktXM1ZjQk1ycVoxeGEyN3h6YTg1alha?= =?utf-8?B?OVlacmVhOFkvYTF6d20xL3RucEZOUHE2b3EwV1JnQ2lxbS9SZ3lGSWQySFli?= =?utf-8?B?QjMxM3VZUWkrZkdGUGl1MjFFeFhxcVpjRTFVRWtSREw5RTFpdytMc2V6bGt1?= =?utf-8?B?NVNxNGtFdjR0TkJKYUNBM3Q3TTBTNkpmVE9XbVdGaC8zTWNJcHh2Z0xkbUZ1?= =?utf-8?B?d0E3cC9Td1RMZ2oxQVc5djBJeEI4QXI1bG80eW5FZVBseHNSSGUyTlZ4ZkFN?= =?utf-8?B?cGI5K2FBNUttSzJDaFFmZ3FYTTJNa0NLQnVCaUZTK2c3dlJUYjJEcmZ6dDlt?= =?utf-8?B?Y0VBVGNoZlp5RDNKTEZKU1FCTGZmUFZXeEx6a2NPNUx0UFdDSXZXemcxa2lI?= =?utf-8?B?U3A0d0FwYWUvU2huQ2pVVFZ4QUgwbzZ0THN3dkhIUmtiVXU5YjBTaEJYKy9G?= =?utf-8?B?RllZSnlHQkN3K2ZUZVN4ekdhdkhyZU9ITkRQZURwS1czZ1pWd21TQkJBcjJB?= =?utf-8?B?aEp6QTVUaE9Dc2diYTRSZWxNNmErL2QrTElFVS9aeWpYa3lSdEozYXYrUWY2?= =?utf-8?B?RExRM01wZG9wdGVyaDdaS3JVRHM4bkY2ak1iOWczVkREb2JoQW1qT0hKb3FB?= =?utf-8?B?cldUd2FFTnhONnVBcFFVWVp2c1dXbkw0VUt2dGJDemtkcW01cElNRUZvQ1lK?= =?utf-8?B?aHJ0aXRCQVpDY1dLL3hDMVpjT0s3ZW9pT0E4UjROMzdYY1lyYlo1UGNhL1VK?= =?utf-8?B?OXc9PQ==?= Content-ID: <61FE971785A7954BBF7B59D6B387404E@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR11MB1953.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 663bcbaa-7c41-4269-db9e-08da872e1b6f X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2022 06:42:12.4438 (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: 2+6WPvEz7AI6JIcq+Uj47g2I7GmJ+9lsLTl3NtWwtESxiz4gNKuzWzV8HImI9M2Hx68Nx/gbbWU2FIPv2M3X+BL9kKOZSbgQ33EMp1S+QAo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1233 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220825_234227_947364_6612FEA7 X-CRM114-Status: GOOD ( 22.29 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org On 24.08.2022 12:33, Conor Dooley wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > Add a driver to support the PLLs in PolarFire SoC's Clock Conditioning > Circuitry, an instance of which is located in each ordinal corner of > the FPGA. Only get_rate() is supported as these clocks are intended to > be statically configured by the FPGA design. Currently, the DLLs are > not supported by this driver. For more information on the hardware, see > "PolarFire SoC FPGA Clocking Resources" in the link below. > > Link: https://onlinedocs.microchip.com/pr/GUID-8F0CC4C0-0317-4262-89CA-CE7773ED1931-en-US-1/index.html > Signed-off-by: Conor Dooley > --- > drivers/clk/microchip/Makefile | 1 + > drivers/clk/microchip/clk-mpfs-ccc.c | 293 +++++++++++++++++++++++++++ > 2 files changed, 294 insertions(+) > create mode 100644 drivers/clk/microchip/clk-mpfs-ccc.c > > diff --git a/drivers/clk/microchip/Makefile b/drivers/clk/microchip/Makefile > index 5fa6dcf30a9a..13250e04e46c 100644 > --- a/drivers/clk/microchip/Makefile > +++ b/drivers/clk/microchip/Makefile > @@ -2,3 +2,4 @@ > obj-$(CONFIG_COMMON_CLK_PIC32) += clk-core.o > obj-$(CONFIG_PIC32MZDA) += clk-pic32mzda.o > obj-$(CONFIG_MCHP_CLK_MPFS) += clk-mpfs.o > +obj-$(CONFIG_MCHP_CLK_MPFS) += clk-mpfs-ccc.o > diff --git a/drivers/clk/microchip/clk-mpfs-ccc.c b/drivers/clk/microchip/clk-mpfs-ccc.c > new file mode 100644 > index 000000000000..2a34034c2c6e > --- /dev/null > +++ b/drivers/clk/microchip/clk-mpfs-ccc.c > @@ -0,0 +1,293 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Author: Conor Dooley > + * > + * Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries > + */ > +#include "asm-generic/errno-base.h" > +#include > +#include > +#include > +#include > +#include > + > +/* address offset of control registers */ > +#define MPFS_CCC_PLL_CR 0x04u > +#define MPFS_CCC_REF_CR 0x08u > +#define MPFS_CCC_SSCG_2_CR 0x2Cu > +#define MPFS_CCC_POSTDIV01_CR 0x10u > +#define MPFS_CCC_POSTDIV23_CR 0x14u > + > +#define MPFS_CCC_FBDIV_SHIFT 0x00u > +#define MPFS_CCC_FBDIV_WIDTH 0x0Cu > +#define MPFS_CCC_POSTDIV0_SHIFT 0x08u > +#define MPFS_CCC_POSTDIV1_SHIFT 0x18u > +#define MPFS_CCC_POSTDIV2_SHIFT MPFS_CCC_POSTDIV0_SHIFT > +#define MPFS_CCC_POSTDIV3_SHIFT MPFS_CCC_POSTDIV1_SHIFT > +#define MPFS_CCC_POSTDIV_WIDTH 0x06u > +#define MPFS_CCC_REFCLK_SEL BIT(6) > +#define MPFS_CCC_REFDIV_SHIFT 0x08u > +#define MPFS_CCC_REFDIV_WIDTH 0x06u > + > +#define MPFS_CCC_FIXED_DIV 4 > +#define MPFS_CCC_OUTPUTS_PER_PLL 4 > +#define MPFS_CCC_REFS_PER_PLL 2 > + > +struct mpfs_ccc_data { > + void __iomem **pll_base; > + struct device *dev; > + struct clk_hw_onecell_data hw_data; > +}; > + > +struct mpfs_ccc_pll_hw_clock { > + void __iomem *base; > + const char *name; > + const struct clk_parent_data *parents; > + unsigned int id; > + u32 reg_offset; > + u32 shift; > + u32 width; > + u32 flags; > + struct clk_hw hw; > + struct clk_init_data init; > +}; > + > +#define to_mpfs_ccc_clk(_hw) container_of(_hw, struct mpfs_ccc_pll_hw_clock, hw) > + > +/* > + * mpfs_ccc_lock prevents anything else from writing to a fabric ccc > + * while a software locked register is being written. > + */ > +static DEFINE_SPINLOCK(mpfs_ccc_lock); > + > +static const struct clk_parent_data mpfs_ccc_pll0_refs[] = { > + { .fw_name = "pll0_ref0" }, > + { .fw_name = "pll0_ref1" }, > +}; > + > +static const struct clk_parent_data mpfs_ccc_pll1_refs[] = { > + { .fw_name = "pll1_ref0" }, > + { .fw_name = "pll1_ref1" }, > +}; > + > +static unsigned long mpfs_ccc_pll_recalc_rate(struct clk_hw *hw, unsigned long prate) > +{ > + struct mpfs_ccc_pll_hw_clock *ccc_hw = to_mpfs_ccc_clk(hw); > + void __iomem *mult_addr = ccc_hw->base + ccc_hw->reg_offset; > + void __iomem *ref_div_addr = ccc_hw->base + MPFS_CCC_REF_CR; > + u32 mult, ref_div; > + > + mult = readl_relaxed(mult_addr) >> MPFS_CCC_FBDIV_SHIFT; > + mult &= clk_div_mask(MPFS_CCC_FBDIV_WIDTH); > + ref_div = readl_relaxed(ref_div_addr) >> MPFS_CCC_REFDIV_SHIFT; > + ref_div &= clk_div_mask(MPFS_CCC_REFDIV_WIDTH); > + > + return prate * mult / (ref_div * MPFS_CCC_FIXED_DIV); > +} > + > +static u8 mpfs_ccc_pll_get_parent(struct clk_hw *hw) > +{ > + struct mpfs_ccc_pll_hw_clock *ccc_hw = to_mpfs_ccc_clk(hw); > + void __iomem *pll_cr_addr = ccc_hw->base + MPFS_CCC_PLL_CR; > + > + return !!(readl_relaxed(pll_cr_addr) & MPFS_CCC_REFCLK_SEL); > +} > + > +static const struct clk_ops mpfs_ccc_pll_ops = { > + .recalc_rate = mpfs_ccc_pll_recalc_rate, > + .get_parent = mpfs_ccc_pll_get_parent, > +}; > + > +#define CLK_CCC_PLL(_id, _parents, _shift, _width, _flags, _offset) { \ > + .id = _id, \ > + .shift = _shift, \ > + .width = _width, \ > + .reg_offset = _offset, \ > + .flags = _flags, \ > + .parents = _parents,\ > +} > + > +static struct mpfs_ccc_pll_hw_clock mpfs_ccc_pll_clks[] = { > + CLK_CCC_PLL(CLK_CCC_PLL0, mpfs_ccc_pll0_refs, MPFS_CCC_FBDIV_SHIFT, > + MPFS_CCC_FBDIV_WIDTH, 0, MPFS_CCC_SSCG_2_CR), > + CLK_CCC_PLL(CLK_CCC_PLL1, mpfs_ccc_pll1_refs, MPFS_CCC_FBDIV_SHIFT, > + MPFS_CCC_FBDIV_WIDTH, 0, MPFS_CCC_SSCG_2_CR), > +}; > + > +struct mpfs_ccc_out_hw_clock { > + struct clk_divider divider; > + struct clk_init_data init; > + unsigned int id; > + u32 reg_offset; > +}; > + > +#define CLK_CCC_OUT(_id, _shift, _width, _flags, _offset) { \ > + .id = _id, \ > + .divider.shift = _shift, \ > + .divider.width = _width, \ > + .reg_offset = _offset, \ > + .divider.flags = _flags, \ > + .divider.lock = &mpfs_ccc_lock, \ > +} > + > +static struct mpfs_ccc_out_hw_clock mpfs_ccc_pll0out_clks[] = { > + CLK_CCC_OUT(CLK_CCC_PLL0_OUT0, MPFS_CCC_POSTDIV0_SHIFT, MPFS_CCC_POSTDIV_WIDTH, > + CLK_DIVIDER_ONE_BASED, MPFS_CCC_POSTDIV01_CR), > + CLK_CCC_OUT(CLK_CCC_PLL0_OUT1, MPFS_CCC_POSTDIV1_SHIFT, MPFS_CCC_POSTDIV_WIDTH, > + CLK_DIVIDER_ONE_BASED, MPFS_CCC_POSTDIV01_CR), > + CLK_CCC_OUT(CLK_CCC_PLL0_OUT2, MPFS_CCC_POSTDIV2_SHIFT, MPFS_CCC_POSTDIV_WIDTH, > + CLK_DIVIDER_ONE_BASED, MPFS_CCC_POSTDIV23_CR), > + CLK_CCC_OUT(CLK_CCC_PLL0_OUT3, MPFS_CCC_POSTDIV3_SHIFT, MPFS_CCC_POSTDIV_WIDTH, > + CLK_DIVIDER_ONE_BASED, MPFS_CCC_POSTDIV23_CR), > +}; > + > +static struct mpfs_ccc_out_hw_clock mpfs_ccc_pll1out_clks[] = { > + CLK_CCC_OUT(CLK_CCC_PLL1_OUT0, MPFS_CCC_POSTDIV0_SHIFT, MPFS_CCC_POSTDIV_WIDTH, 0, > + MPFS_CCC_POSTDIV01_CR), > + CLK_CCC_OUT(CLK_CCC_PLL1_OUT1, MPFS_CCC_POSTDIV1_SHIFT, MPFS_CCC_POSTDIV_WIDTH, 0, > + MPFS_CCC_POSTDIV01_CR), > + CLK_CCC_OUT(CLK_CCC_PLL1_OUT2, MPFS_CCC_POSTDIV2_SHIFT, MPFS_CCC_POSTDIV_WIDTH, 0, > + MPFS_CCC_POSTDIV23_CR), > + CLK_CCC_OUT(CLK_CCC_PLL1_OUT3, MPFS_CCC_POSTDIV3_SHIFT, MPFS_CCC_POSTDIV_WIDTH, 0, > + MPFS_CCC_POSTDIV23_CR), > +}; > + > +static struct mpfs_ccc_out_hw_clock *mpfs_ccc_pllout_clks[] = { > + mpfs_ccc_pll0out_clks, mpfs_ccc_pll1out_clks > +}; > + > +static int mpfs_ccc_register_outputs(struct device *dev, struct mpfs_ccc_out_hw_clock *out_hws, > + unsigned int num_clks, struct mpfs_ccc_data *data, > + struct mpfs_ccc_pll_hw_clock *parent) > +{ > + int ret; > + > + for (unsigned int i = 0; i < num_clks; i++) { > + struct mpfs_ccc_out_hw_clock *out_hw = &out_hws[i]; > + char *name = devm_kzalloc(dev, 23, GFP_KERNEL); > + > + snprintf(name, 23, "%s_out%u", parent->name, i); > + out_hw->divider.hw.init = CLK_HW_INIT_HW(name, &parent->hw, &clk_divider_ops, 0); > + out_hw->divider.reg = data->pll_base[i / MPFS_CCC_OUTPUTS_PER_PLL] + > + out_hw->reg_offset; > + > + ret = devm_clk_hw_register(dev, &out_hw->divider.hw); > + if (ret) > + return dev_err_probe(dev, ret, "failed to register clock id: %d\n", > + out_hw->id); > + > + data->hw_data.hws[out_hw->id] = &out_hw->divider.hw; > + } > + > + return 0; > +} > + > +#define CLK_HW_INIT_PARENTS_DATA_FIXED_SIZE(_name, _parents, _ops, _flags) \ > + (&(struct clk_init_data) { \ > + .flags = _flags, \ > + .name = _name, \ > + .parent_data = _parents, \ > + .num_parents = MPFS_CCC_REFS_PER_PLL, \ > + .ops = _ops, \ > + }) > + > +static int mpfs_ccc_register_plls(struct device *dev, struct mpfs_ccc_pll_hw_clock *pll_hws, > + unsigned int num_clks, struct mpfs_ccc_data *data) > +{ > + int ret; > + > + for (unsigned int i = 0; i < num_clks; i++) { > + struct mpfs_ccc_pll_hw_clock *pll_hw = &pll_hws[i]; > + char *name = devm_kzalloc(dev, 18, GFP_KERNEL); > + > + pll_hw->base = data->pll_base[i]; > + snprintf(name, 18, "ccc%s_pll%u", strchrnul(dev->of_node->full_name, '@'), i); > + pll_hw->name = (const char *)name; > + pll_hw->hw.init = CLK_HW_INIT_PARENTS_DATA_FIXED_SIZE(pll_hw->name, > + pll_hw->parents, > + &mpfs_ccc_pll_ops, 0); > + > + ret = devm_clk_hw_register(dev, &pll_hw->hw); > + if (ret) > + return dev_err_probe(dev, ret, "failed to register ccc id: %d\n", > + pll_hw->id); > + > + data->hw_data.hws[pll_hw->id] = &pll_hw->hw; > + > + ret = mpfs_ccc_register_outputs(dev, mpfs_ccc_pllout_clks[i], > + MPFS_CCC_OUTPUTS_PER_PLL, data, pll_hw); > + if (ret) > + return ret; > + } > + > + return 0; > +} > + > +static int mpfs_ccc_probe(struct platform_device *pdev) > +{ > + struct mpfs_ccc_data *clk_data; > + void __iomem *pll_base[ARRAY_SIZE(mpfs_ccc_pll_clks)]; > + unsigned int num_clks; > + int ret; > + > + num_clks = ARRAY_SIZE(mpfs_ccc_pll_clks) + ARRAY_SIZE(mpfs_ccc_pll0out_clks) > + + ARRAY_SIZE(mpfs_ccc_pll1out_clks); > + > + clk_data = devm_kzalloc(&pdev->dev, struct_size(clk_data, hw_data.hws, num_clks), > + GFP_KERNEL); > + if (!clk_data) > + return -ENOMEM; > + > + pll_base[0] = devm_platform_ioremap_resource(pdev, 0); > + if (IS_ERR(pll_base[0])) > + return PTR_ERR(pll_base[0]); > + > + pll_base[1] = devm_platform_ioremap_resource(pdev, 1); > + if (IS_ERR(pll_base[1])) > + return PTR_ERR(pll_base[1]); > + > + clk_data->pll_base = pll_base; > + clk_data->dev = &pdev->dev; > + > + ret = mpfs_ccc_register_plls(clk_data->dev, mpfs_ccc_pll_clks, > + ARRAY_SIZE(mpfs_ccc_pll_clks), clk_data); > + if (ret) > + return ret; > + > + ret = devm_of_clk_add_hw_provider(clk_data->dev, of_clk_hw_onecell_get, > + &clk_data->hw_data); > + if (ret) > + return ret; You can skip this or even directly: return devm_of_clk_add_hw_provider(...); > + > + return ret; > +} > + > +static const struct of_device_id mpfs_ccc_of_match_table[] = { > + { .compatible = "microchip,mpfs-ccc", }, > + {} > +}; > +MODULE_DEVICE_TABLE(of, mpfs_ccc_of_match_table); > + > +static struct platform_driver mpfs_ccc_driver = { > + .probe = mpfs_ccc_probe, > + .driver = { > + .name = "microchip-mpfs-ccc", > + .of_match_table = mpfs_ccc_of_match_table, > + }, > +}; > + > +static int __init clk_ccc_init(void) > +{ > + return platform_driver_register(&mpfs_ccc_driver); > +} > +core_initcall(clk_ccc_init); > + > +static void __exit clk_ccc_exit(void) > +{ > + platform_driver_unregister(&mpfs_ccc_driver); > +} > +module_exit(clk_ccc_exit); > + > +MODULE_DESCRIPTION("Microchip PolarFire SoC Clock Conditioning Circuitry Driver"); > +MODULE_AUTHOR("Conor Dooley "); > +MODULE_LICENSE("GPL"); > -- > 2.36.1 > _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv