From nobody Sat Feb 7 07:24:40 2026 Received: from mxout70.expurgate.net (mxout70.expurgate.net [194.37.255.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A73553D525C; Thu, 5 Feb 2026 13:12:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.37.255.70 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770297124; cv=none; b=DT0BJ10RBUSBFDGG/I3tbEWazCa3Co0m2qhNTyLafESs4rrHjmvGZgOcj+yGuRVM+DSUEFShT6oPhzucGCyisPZ8hDlw6o2ILW3WvIAYvGyyuXOL95YioHqQHwv6zfYSNY+GtrPuGVQwscwvMhi8r9EW7Oreb8tHtmmZU+i5Nro= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770297124; c=relaxed/simple; bh=YwWsG62QiDkxGzXYUgv/9TSRbSgOGHLpT3dF/MpqWXw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:Cc; b=Af0GnCtsHJvSt2059XViZ2LZB2AZKTdFwsxDsHi3hkHw+OvL06lg0+6yVG4FUmQsYc6MrYvTVihh0K+R7T9pijQQNLEMKWJ7rc18Lie6AvxL3KXsw12ZDTAqxA6qEYD00qFw0lSAp/x4RmhtRIazpAezr5QQZiyTTxpwi7FTlS0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dev.tdt.de; spf=pass smtp.mailfrom=dev.tdt.de; dkim=temperror (0-bit key) header.d=dev.tdt.de header.i=@dev.tdt.de header.b=rGKVNnVe; arc=none smtp.client-ip=194.37.255.70 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dev.tdt.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=dev.tdt.de Authentication-Results: smtp.subspace.kernel.org; dkim=temperror (0-bit key) header.d=dev.tdt.de header.i=@dev.tdt.de header.b="rGKVNnVe" Received: from [194.37.255.9] (helo=mxout.expurgate.net) by relay.expurgate.net with smtp (Exim 4.92) (envelope-from ) id 1vnytn-007WtK-IL; Thu, 05 Feb 2026 13:55:55 +0100 Received: from [195.243.126.94] (helo=securemail.tdt.de) by relay.expurgate.net with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1vnytm-007Wrw-VV; Thu, 05 Feb 2026 13:55:55 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dev.tdt.de; s=z1-selector1; t=1770296154; bh=oCm9KCJf3EanVvDALv3TOF9MseGp/uyFM3Yjfecwhw0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=rGKVNnVeBcOdIoECKEVLe3aHpFRqZo/yLSTw4ymvaqvNzgpzCR4yiFtG09zde/wAo EZZwagVl1nhCKaqIVrj95cPfh9RdWKihNR1In07i3QmHtPJ7VdC2WEz7dfpNopcM5s mkxhDbhOYJ9D+MtMG0Lb90M7tAGN/XEqiSKc5wWlDESIFRPMhyjZgXmfKzbhsJHeLW ynB7Iq/7wSeSGnZ4/eEq6UHtdahTyN+bc3y4OHbpsKl1BA1FeyA3tfQQPEccBXCorW yt8FHV+Epm1PaHT8h1Du7MZY0s9VbKN8h4/N6xwVJtHT+yedx3Cnj56jzNq04tWDXt D/uCDab+FSrmA== Received: from securemail.tdt.de (localhost [127.0.0.1]) by securemail.tdt.de (Postfix) with ESMTP id 8918F240036; Thu, 5 Feb 2026 13:55:54 +0100 (CET) Received: from mail.dev.tdt.de (unknown [10.2.4.42]) by securemail.tdt.de (Postfix) with ESMTP id 8423A240041; Thu, 5 Feb 2026 13:55:54 +0100 (CET) Received: from [10.2.3.40] (unknown [10.2.3.40]) by mail.dev.tdt.de (Postfix) with ESMTPSA id 6504F22828; Thu, 5 Feb 2026 13:55:54 +0100 (CET) From: Florian Eckert Date: Thu, 05 Feb 2026 13:55:45 +0100 Subject: [PATCH 1/2] pinctrl: equilibrium: rename irq_chip function callbacks Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260205-pinctrl-equilibrium-v1-1-66909a3b0acb@dev.tdt.de> References: <20260205-pinctrl-equilibrium-v1-0-66909a3b0acb@dev.tdt.de> In-Reply-To: <20260205-pinctrl-equilibrium-v1-0-66909a3b0acb@dev.tdt.de> To: Linus Walleij , Bartosz Golaszewski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Florian Eckert , Florian Eckert X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1770296154; l=2865; i=fe@dev.tdt.de; s=20260205; h=from:subject:message-id; bh=YwWsG62QiDkxGzXYUgv/9TSRbSgOGHLpT3dF/MpqWXw=; b=Hyr8dtboQmtynpzm0cJBm0WQZWGoodVsRWmX4L2VUS1qhBq/AlNcwbwhU8GsD+w/7jvXrdha2 67YYrvPn2ZwD+5RBQLCTwlZzID6Z2IBvOnJbKAgNTapx8qnmiBUwXIT X-Developer-Key: i=fe@dev.tdt.de; a=ed25519; pk=q7Pvv3Au2sAVRhBz5UF7ZqUPNxUwXQ78Jdqu8E6Negk= X-purgate: clean X-purgate-ID: 151534::1770296155-955FC330-41E7C008/0/0 X-purgate-type: clean Renaming of the irq_chip callback functions to improve clarity. Signed-off-by: Florian Eckert --- drivers/pinctrl/pinctrl-equilibrium.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/pinctrl/pinctrl-equilibrium.c b/drivers/pinctrl/pinctr= l-equilibrium.c index 2d04829b29c9976fdebbaa56e6c1407eafa121a9..99596236f4d2b1c0ea280a2bd2c= f4be247bc5042 100644 --- a/drivers/pinctrl/pinctrl-equilibrium.c +++ b/drivers/pinctrl/pinctrl-equilibrium.c @@ -23,7 +23,7 @@ #define PIN_NAME_LEN 10 #define PAD_REG_OFF 0x100 =20 -static void eqbr_gpio_disable_irq(struct irq_data *d) +static void eqbr_irq_mask(struct irq_data *d) { struct gpio_chip *gc =3D irq_data_get_irq_chip_data(d); struct eqbr_gpio_ctrl *gctrl =3D gpiochip_get_data(gc); @@ -36,7 +36,7 @@ static void eqbr_gpio_disable_irq(struct irq_data *d) gpiochip_disable_irq(gc, offset); } =20 -static void eqbr_gpio_enable_irq(struct irq_data *d) +static void eqbr_irq_unmask(struct irq_data *d) { struct gpio_chip *gc =3D irq_data_get_irq_chip_data(d); struct eqbr_gpio_ctrl *gctrl =3D gpiochip_get_data(gc); @@ -50,7 +50,7 @@ static void eqbr_gpio_enable_irq(struct irq_data *d) raw_spin_unlock_irqrestore(&gctrl->lock, flags); } =20 -static void eqbr_gpio_ack_irq(struct irq_data *d) +static void eqbr_irq_ack(struct irq_data *d) { struct gpio_chip *gc =3D irq_data_get_irq_chip_data(d); struct eqbr_gpio_ctrl *gctrl =3D gpiochip_get_data(gc); @@ -62,10 +62,10 @@ static void eqbr_gpio_ack_irq(struct irq_data *d) raw_spin_unlock_irqrestore(&gctrl->lock, flags); } =20 -static void eqbr_gpio_mask_ack_irq(struct irq_data *d) +static void eqbr_irq_mask_ack(struct irq_data *d) { - eqbr_gpio_disable_irq(d); - eqbr_gpio_ack_irq(d); + eqbr_irq_mask(d); + eqbr_irq_ack(d); } =20 static inline void eqbr_cfg_bit(void __iomem *addr, @@ -92,7 +92,7 @@ static int eqbr_irq_type_cfg(struct gpio_irq_type *type, return 0; } =20 -static int eqbr_gpio_set_irq_type(struct irq_data *d, unsigned int type) +static int eqbr_irq_set_type(struct irq_data *d, unsigned int type) { struct gpio_chip *gc =3D irq_data_get_irq_chip_data(d); struct eqbr_gpio_ctrl *gctrl =3D gpiochip_get_data(gc); @@ -166,11 +166,11 @@ static void eqbr_irq_handler(struct irq_desc *desc) =20 static const struct irq_chip eqbr_irq_chip =3D { .name =3D "gpio_irq", - .irq_mask =3D eqbr_gpio_disable_irq, - .irq_unmask =3D eqbr_gpio_enable_irq, - .irq_ack =3D eqbr_gpio_ack_irq, - .irq_mask_ack =3D eqbr_gpio_mask_ack_irq, - .irq_set_type =3D eqbr_gpio_set_irq_type, + .irq_ack =3D eqbr_irq_ack, + .irq_mask =3D eqbr_irq_mask, + .irq_mask_ack =3D eqbr_irq_mask_ack, + .irq_unmask =3D eqbr_irq_unmask, + .irq_set_type =3D eqbr_irq_set_type, .flags =3D IRQCHIP_IMMUTABLE, GPIOCHIP_IRQ_RESOURCE_HELPERS, }; --=20 2.47.3 From nobody Sat Feb 7 07:24:40 2026 Received: from mxout70.expurgate.net (mxout70.expurgate.net [194.37.255.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF7BF4C97; Thu, 5 Feb 2026 13:12:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.37.255.70 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770297123; cv=none; b=amSUqgJGPveXyFz2idFa0uN8t8bjNiuQ1iOT/yYx5h3SSclorsN6J10lC/Z0AKAcvZSCVpNYxKr6tzs1cuRDyaqk8TdDgEPInqiKkYyIOl3FSx7eagMZRuZgF2P284D2/4T+rP70mLOB0+YeJRtx8mpoPxHTiLLTlCDsR1BR5iw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770297123; c=relaxed/simple; bh=qCXf7nKbLScwQy4osBXfLc9iP6E1Wr1KRNIyHXzudxE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:Cc; b=YjqLlxaVb2vPv92OWcH0n/J+cOhjmf/D7fJmrC8TAPpNFBfxnpSlnESL+h4ADFFvQXwSN4hh8gKMkGwtMuXNOpCXUWcq3emHqNmmCGfvhykj1hrZBi1bGqUQZe8npgEN9r4MSIreDkuNbRToAgEbgfTM9Y4bpYtxJfgdK3bPjMU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dev.tdt.de; spf=pass smtp.mailfrom=dev.tdt.de; dkim=temperror (0-bit key) header.d=dev.tdt.de header.i=@dev.tdt.de header.b=npgLFoAW; arc=none smtp.client-ip=194.37.255.70 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dev.tdt.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=dev.tdt.de Authentication-Results: smtp.subspace.kernel.org; dkim=temperror (0-bit key) header.d=dev.tdt.de header.i=@dev.tdt.de header.b="npgLFoAW" Received: from [194.37.255.9] (helo=mxout.expurgate.net) by relay.expurgate.net with smtp (Exim 4.92) (envelope-from ) id 1vnytn-007WtQ-KX; Thu, 05 Feb 2026 13:55:55 +0100 Received: from [195.243.126.94] (helo=securemail.tdt.de) by relay.expurgate.net with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1vnytn-000WoS-2x; Thu, 05 Feb 2026 13:55:55 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dev.tdt.de; s=z1-selector1; t=1770296154; bh=alup1cXmxDxE54p3dkBAW3FxBmWlZ8yuytC6oXz/m/I=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=npgLFoAWpTAVB+mYRvgpOmMhpm6rCrrbZD9tJyGR6FNjy9In5leEuJgX+JSGo5aaH a4v4kRib4g/d1DwjJrIUvMbmXAr9SaD4EMJvY5rhapY6+sHjw2ysfsJOY2nfjBgfX+ ZLtVXbkjKzEMJQNPOoTsd4ggcwrCbwfWtTRT8aEetLspaj8OaE2dIa/iUA+Vj7SIio irte/YTTUgsxIn2XDJrCLU6n8qAfdn0CuCmjEo600TmO1KqjUADSpkB1YuF1D5dXKm pyfjtVj4Gi5emQIfZAyvKHNdeV37MwME0Ej7ZPnRmvp2Vjr7hDADnPie7GzMrU1cOp /wK3zlVeZMzaQ== Received: from securemail.tdt.de (localhost [127.0.0.1]) by securemail.tdt.de (Postfix) with ESMTP id A89BB240042; Thu, 5 Feb 2026 13:55:54 +0100 (CET) Received: from mail.dev.tdt.de (unknown [10.2.4.42]) by securemail.tdt.de (Postfix) with ESMTP id A2B77240041; Thu, 5 Feb 2026 13:55:54 +0100 (CET) Received: from [10.2.3.40] (unknown [10.2.3.40]) by mail.dev.tdt.de (Postfix) with ESMTPSA id 8373022826; Thu, 5 Feb 2026 13:55:54 +0100 (CET) From: Florian Eckert Date: Thu, 05 Feb 2026 13:55:46 +0100 Subject: [PATCH 2/2] pinctrl: equilibrium: fix warning trace on load Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260205-pinctrl-equilibrium-v1-2-66909a3b0acb@dev.tdt.de> References: <20260205-pinctrl-equilibrium-v1-0-66909a3b0acb@dev.tdt.de> In-Reply-To: <20260205-pinctrl-equilibrium-v1-0-66909a3b0acb@dev.tdt.de> To: Linus Walleij , Bartosz Golaszewski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Florian Eckert , Florian Eckert X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1770296154; l=3266; i=fe@dev.tdt.de; s=20260205; h=from:subject:message-id; bh=qCXf7nKbLScwQy4osBXfLc9iP6E1Wr1KRNIyHXzudxE=; b=FeqJ5Gtx96tgmNSu5H0o+AjDDtXXGdtlN/NkBG+F1ms0riN8cdqT1bFXVhsmc11rfOkaMlaSu w/+h/umafMfC6bmTCzZ1eVY1ShBLVaf73+4DhfLtpPyzA40QeoYxZOr X-Developer-Key: i=fe@dev.tdt.de; a=ed25519; pk=q7Pvv3Au2sAVRhBz5UF7ZqUPNxUwXQ78Jdqu8E6Negk= X-purgate: clean X-purgate-ID: 151534::1770296155-53DF9330-5582222A/0/0 X-purgate-type: clean The callback functions 'eqbr_irq_mask()' and 'eqbr_irq_ack()' are also called in the callback function 'eqbr_irq_mask_ack()'. This is done to avoid source code duplication. The problem, is that in the function 'eqbr_irq_mask()' also calles the gpiolib function 'gpiochip_disable_irq()' This generates the following warning trace in the log for every gpio on load. [ 6.088111] ------------[ cut here ]------------ [ 6.092440] WARNING: CPU: 3 PID: 1 at drivers/gpio/gpiolib.c:3810 gpioch= ip_disable_irq+0x39/0x50 [ 6.097847] Modules linked in: [ 6.097847] CPU: 3 UID: 0 PID: 1 Comm: swapper/0 Tainted: G W = 6.12.59+ #0 [ 6.097847] Tainted: [W]=3DWARN [ 6.097847] RIP: 0010:gpiochip_disable_irq+0x39/0x50 [ 6.097847] Code: 39 c6 48 19 c0 21 c6 48 c1 e6 05 48 03 b2 38 03 00 00 = 48 81 fe 00 f0 ff ff 77 11 48 8b 46 08 f6 c4 02 74 06 f0 80 66 09 fb c3 <0f= > 0b 90 0f 1f 40 00 c3 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 [ 6.097847] RSP: 0000:ffffc9000000b830 EFLAGS: 00010046 [ 6.097847] RAX: 0000000000000045 RBX: ffff888001be02a0 RCX: 00000000000= 00008 [ 6.097847] RDX: ffff888001be9000 RSI: ffff888001b2dd00 RDI: ffff888001b= e02a0 [ 6.097847] RBP: ffffc9000000b860 R08: 0000000000000000 R09: 00000000000= 00000 [ 6.097847] R10: 0000000000000001 R11: ffff888001b2a154 R12: ffff888001b= e0514 [ 6.097847] R13: ffff888001be02a0 R14: 0000000000000008 R15: 00000000000= 00000 [ 6.097847] FS: 0000000000000000(0000) GS:ffff888041d80000(0000) knlGS:= 0000000000000000 [ 6.097847] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 6.097847] CR2: 0000000000000000 CR3: 0000000003030000 CR4: 00000000001= 026b0 [ 6.097847] Call Trace: [ 6.097847] [ 6.097847] ? eqbr_irq_mask+0x63/0x70 [ 6.097847] ? no_action+0x10/0x10 [ 6.097847] eqbr_irq_mask_ack+0x11/0x60 In an other driver (drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c) the interrupt is not disabled here. To fix this, do not call the 'eqbr_irq_mask()' and 'eqbr_irq_ack()' function. Implement instead this directly without disabling the interrupts. Fixes: 52066a53bd11 ("pinctrl: equilibrium: Convert to immutable irq_chip") Signed-off-by: Florian Eckert --- drivers/pinctrl/pinctrl-equilibrium.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/pinctrl-equilibrium.c b/drivers/pinctrl/pinctr= l-equilibrium.c index 99596236f4d2b1c0ea280a2bd2cf4be247bc5042..64a55913acf08ed5ce5b27a4d5b= b17bf848a8122 100644 --- a/drivers/pinctrl/pinctrl-equilibrium.c +++ b/drivers/pinctrl/pinctrl-equilibrium.c @@ -64,8 +64,15 @@ static void eqbr_irq_ack(struct irq_data *d) =20 static void eqbr_irq_mask_ack(struct irq_data *d) { - eqbr_irq_mask(d); - eqbr_irq_ack(d); + struct gpio_chip *gc =3D irq_data_get_irq_chip_data(d); + struct eqbr_gpio_ctrl *gctrl =3D gpiochip_get_data(gc); + unsigned int offset =3D irqd_to_hwirq(d); + unsigned long flags; + + raw_spin_lock_irqsave(&gctrl->lock, flags); + writel(BIT(offset), gctrl->membase + GPIO_IRNENCLR); + writel(BIT(offset), gctrl->membase + GPIO_IRNCR); + raw_spin_unlock_irqrestore(&gctrl->lock, flags); } =20 static inline void eqbr_cfg_bit(void __iomem *addr, --=20 2.47.3