From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A437C2F3611 for ; Sat, 6 Dec 2025 14:28:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765031316; cv=none; b=Mm27geMbX7GrlG9vLBBQyWRPgs/ayWYa+Fj42t8LoiwYFsLK5jnoxUaz30uv6I8oItXjz3uKKn19EpC+vKPxR9/ny6i568qz05gHQYZbKIbS8XQLX/Ot6vzfe5zrJuOssPR5gDIJhSqY/XK1sR+965/nJ2Vqohm9y8BT6K0uGCQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765031316; c=relaxed/simple; bh=OfFiUjKtKaNQmaRHLv2heY7Dz1J/qffq7Yyx+C4QFZg=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=sOF95lcnqhf/twvkENGDfvgbx2NqcEycrh+NfZ7bn4HMPRKX1VZJS/Y9ZPXq4/R436JG2gJe+TO/z1uVtLgLArupYVMRj7be8pYTl5yMyiVJgGO/d48eoRn1gzZTAGuAUN4/U6iZ37Li3mW1WeZU76UIp/6CcefhO73T02+uYBk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev; spf=pass smtp.mailfrom=tuxon.dev; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b=EJeIy8ra; arc=none smtp.client-ip=209.85.218.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b="EJeIy8ra" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-b79f98adea4so337893266b.0 for ; Sat, 06 Dec 2025 06:28:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1765031313; x=1765636113; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=5IBB6UY1Oufj5k9gZto8geVC180y1blDRVWD8Hcw5Lg=; b=EJeIy8raS1USR84aw+/gyVPxu3LLK0S+G1qNI7Rny2/mtcmawOQpOC2T6DWggYKodB iD3cYxU2zaOWq3MB7dmLRt56wqKl01d68XQBIHAqdSk0iwhyTyzt6I03owBK7HIA10gB cg20BgIIVM6mt0DGgDQOaAla3CYMZurVC3z6lt+CtELnDZhBhDMS4jHInPlUevWAW+ah wTFG0Kr/ydTeXOBxp0yHRlXIe1AP7GQ7Sm/uCd9AVzEOZ1O3dzboMofwUTv3fcGXS6vC hJO0faKVq7p8HmZxIYx/EfGYyCHOKT7VJfincbhau3bouZ2/yJkk/DqLw62CD/ybU5pP 1J7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765031313; x=1765636113; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5IBB6UY1Oufj5k9gZto8geVC180y1blDRVWD8Hcw5Lg=; b=er2aqrwBYvQ3sDy3sKXpqDagNNYLXJPSrhaTjGX2TM6ZdPuPVKoqZECquQGU04t5Dv xNfLV2FbG850D1C/CZOBkI2Vdb+9/mUVsRcpwoAks0krk/daiCxZ/2ZrI5UCEKQyfEzL amRSHSV0fHoNby2pV/BoBPqO9WDooF2+fnGiefc6kWehRZukHsa3lFO3r7kiwO5t0LQy fiyrmlcoRLPSI0AihJ2m7eJAM03U2Cwd8ceLdzv1qv15WxAt1+BDYvhMmC7z9gY0z1ku XQaO4PtZaBcSZ5QPqpWL5yYJo5XN51WoyxZAy+npqvIujRLMzM06DRfpzL3H8iBWKnQN yHnQ== X-Forwarded-Encrypted: i=1; AJvYcCUf75gyOjgr7FwPal332zmHokQZdj0F2TRyXfF7fEtwV2+xAJegGmypWH/w0X0JoEE0R7qE/vHMOAvq4ow=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1WO0rVWPy62WqJ7VMq+d4hkXIR1nWHPe642hmGFekLm6X3g6m dPQqHlWTK4wsDJ0hFMd8hKT+faG6Raou+gqoVXzAlKqii9WUWxo5aJGYaMAVvn1IcSg= X-Gm-Gg: ASbGnctU06BsPFpK/j0VCWMwCwzG/WLK619aqLKfL72GOwfn83rCTQeh5cMMMifK47e ZoSUOnBL3aJo+mXAtMZtaI1mXieUEUTtlO0hmyRzrT1xaUDBX+NMQX5RmQ7yEh+A5Qz7w7s/S5T mY4EqtJWItOPkqbCkS9Ooer3ZPLpf3+byKjriuowCEoqfPNEQ37L1/qN8Saxaq2RBCGT/EC/2Yd 42y7PGwY16ruOgxpGoHDfMI2xl0Gr0Q2bIBu1lpaXu9IhUC0fleJrSBZzPJLJ1jNS7HGui8ATG0 Ogsj5X+nzhlI47pACT+yHl0tSSGGM+j0pajfas2yxAkotKY4HvHxt6NR2WmSReH7tvXRZF1oRrp pA1dppBGnBhdsvkZ7gdIEO5FbH/cRbKtbZHMf1n4N+6eH2Dl1qheZzWhaZI0B/o6JmHiv71suYr u/swkVR0qCt2nWvDc+MRhrVlJvC5kebw== X-Google-Smtp-Source: AGHT+IF/jLLEs1IGqvlgQyQ2QONsiOXgBbQIA3ULe9FnhRwCWhVd/MizN4otMgWpmCB1z5eDdGwQTw== X-Received: by 2002:a17:907:749:b0:b76:e6bd:7bcd with SMTP id a640c23a62f3a-b7a243074b1mr255027566b.20.1765031312727; Sat, 06 Dec 2025 06:28:32 -0800 (PST) Received: from [192.168.50.4] ([82.78.167.134]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b79f49d1c4bsm638675366b.55.2025.12.06.06.28.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 06 Dec 2025 06:28:32 -0800 (PST) Message-ID: Date: Sat, 6 Dec 2025 16:28:31 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 4/4] clk: microchip: core: allow driver to be compiled with COMPILE_TEST To: Brian Masney , Michael Turquette , Stephen Boyd , Maxime Ripard , Conor Dooley , Dan Carpenter Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org References: <20251205-clk-microchip-fixes-v3-0-a02190705e47@redhat.com> <20251205-clk-microchip-fixes-v3-4-a02190705e47@redhat.com> From: Claudiu Beznea Content-Language: en-US In-Reply-To: <20251205-clk-microchip-fixes-v3-4-a02190705e47@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hi, Brian, On 12/5/25 21:46, Brian Masney wrote: > This driver currently only supports builds against a PIC32 target. To > avoid future breakage in the future, let's update the Kconfig and the > driver so that it can be built with CONFIG_COMPILE_TEST enabled. > > Note that with the existing asm calls is not how I'd want to do this > today if this was a new driver, however I don't have access to this > hardware. To avoid any breakage, let's keep the existing behavior. > > Signed-off-by: Brian Masney > --- > drivers/clk/microchip/Kconfig | 2 +- > drivers/clk/microchip/clk-core.c | 32 +++++++++++++++++++++++--------- > 2 files changed, 24 insertions(+), 10 deletions(-) > > diff --git a/drivers/clk/microchip/Kconfig b/drivers/clk/microchip/Kconfig > index 1b9e43eb54976b219a0277cc971f353fd6af226a..1e56a057319d97e20440fe4e107d26fa85c95ab1 100644 > --- a/drivers/clk/microchip/Kconfig > +++ b/drivers/clk/microchip/Kconfig > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0 > > config COMMON_CLK_PIC32 > - def_bool COMMON_CLK && MACH_PIC32 > + def_bool (COMMON_CLK && MACH_PIC32) || COMPILE_TEST > > config MCHP_CLK_MPFS > bool "Clk driver for PolarFire SoC" > diff --git a/drivers/clk/microchip/clk-core.c b/drivers/clk/microchip/clk-core.c > index f467d7bc28c87a50fb18dc527574f973c4b7e615..fad4b45d908310ffb59e4ed57c55ae4266253444 100644 > --- a/drivers/clk/microchip/clk-core.c > +++ b/drivers/clk/microchip/clk-core.c > @@ -9,7 +9,15 @@ > #include > #include > #include > + > +#if !defined(CONFIG_MACH_PIC32) && defined(CONFIG_COMPILE_TEST) Can't we have something like: #if defined(CONFIG_MATCH_PIC32) #include #else #define PIC32_CLR(_reg) ((_reg) + 0x04) #define PIC32_SET(_reg) ((_reg) + 0x08) #define PIC32_INV(_reg) ((_reg) + 0x0C) #define pic32_syskey_unlock() #endif > +#define PIC32_CLR(_reg) ((_reg) + 0x04) > +#define PIC32_SET(_reg) ((_reg) + 0x08) > +#define PIC32_INV(_reg) ((_reg) + 0x0C) > +#define pic32_syskey_unlock() On the other side, there are other drivers using these defines, maybe a unified approach would fit better? Maybe moving these to include/linux/platform_data ? > +#else > #include > +#endif > > #include "clk-core.h" > > @@ -74,15 +82,21 @@ > /* SoC specific clock needed during SPLL clock rate switch */ > static struct clk_hw *pic32_sclk_hw; > > -/* add instruction pipeline delay while CPU clock is in-transition. */ > -#define cpu_nop5() \ > -do { \ > - __asm__ __volatile__("nop"); \ > - __asm__ __volatile__("nop"); \ > - __asm__ __volatile__("nop"); \ > - __asm__ __volatile__("nop"); \ > - __asm__ __volatile__("nop"); \ > -} while (0) > +#if !defined(CONFIG_MACH_PIC32) && defined(CONFIG_COMPILE_TEST) Same here, can't we have: #ifdef CONFIG_MATCH_PIC32 #define cpu_nop5() \ do { \ __asm__ __volatile__("nop"); \ __asm__ __volatile__("nop"); \ __asm__ __volatile__("nop"); \ __asm__ __volatile__("nop"); \ __asm__ __volatile__("nop"); \ } while (0) #else #define cpu_nop5() #endif ? > +#define cpu_nop5() > +#else > +{ This leads to the following error when compiling: ../drivers/clk/microchip/clk-core.c:88:1: error: expected identifier or ‘(’ before ‘{’ token 88 | { | ^ Thank you, Claudiu > + /* add instruction pipeline delay while CPU clock is in-transition. */ > + #define cpu_nop5() \ > + do { \ > + __asm__ __volatile__("nop"); \ > + __asm__ __volatile__("nop"); \ > + __asm__ __volatile__("nop"); \ > + __asm__ __volatile__("nop"); \ > + __asm__ __volatile__("nop"); \ > + } while (0) > +} > +#endif > > /* Perpheral bus clocks */ > struct pic32_periph_clk { >