From: Aidan MacDonald <aidanmacdonald.0x0@gmail.com>
To: lee@kernel.org
Cc: mani@kernel.org, cristian.ciocaltea@gmail.com, wens@csie.org,
tharvey@gateworks.com, cw00.choi@samsung.com,
krzysztof.kozlowski@linaro.org, brgl@bgdev.pl,
mazziesaccount@gmail.com, orsonzhai@gmail.com,
baolin.wang@linux.alibaba.com, zhang.lyra@gmail.com,
jernej.skrabec@gmail.com, samuel@sholland.org,
linux-kernel@vger.kernel.org, linux-actions@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev
Subject: [PATCH 15/18] mfd: stpmic1: Fix swapped mask/unmask in irq chip
Date: Sat, 12 Nov 2022 15:18:32 +0000 [thread overview]
Message-ID: <20221112151835.39059-16-aidanmacdonald.0x0@gmail.com> (raw)
In-Reply-To: <20221112151835.39059-1-aidanmacdonald.0x0@gmail.com>
The usual behavior of mask registers is writing a '1' bit to
disable (mask) an interrupt; similarly, writing a '1' bit to
an unmask register enables (unmasks) an interrupt.
Due to a longstanding issue in regmap-irq, mask and unmask
registers were inverted when both kinds of registers were
present on the same chip, ie. regmap-irq actually wrote '1's
to the mask register to enable an IRQ and '1's to the unmask
register to disable an IRQ.
This was fixed by commit e8ffb12e7f06 ("regmap-irq: Fix
inverted handling of unmask registers") but the fix is opt-in
via mask_unmask_non_inverted = true because it requires manual
changes for each affected driver. The new behavior will become
the default once all drivers have been updated.
The STPMIC1 has a normal mask register with separate set and
clear registers. The driver intends to use the set & clear
registers with regmap-irq and has compensated for regmap-irq's
inverted behavior, and should currently be working properly.
Thus, swap mask_base and unmask_base, and opt in to the new
non-inverted behavior.
Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@gmail.com>
---
drivers/mfd/stpmic1.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/mfd/stpmic1.c b/drivers/mfd/stpmic1.c
index eb3da558c3fb..ee0469d5d435 100644
--- a/drivers/mfd/stpmic1.c
+++ b/drivers/mfd/stpmic1.c
@@ -108,8 +108,9 @@ static const struct regmap_irq stpmic1_irqs[] = {
static const struct regmap_irq_chip stpmic1_regmap_irq_chip = {
.name = "pmic_irq",
.status_base = INT_PENDING_R1,
- .mask_base = INT_CLEAR_MASK_R1,
- .unmask_base = INT_SET_MASK_R1,
+ .mask_base = INT_SET_MASK_R1,
+ .unmask_base = INT_CLEAR_MASK_R1,
+ .mask_unmask_non_inverted = true,
.ack_base = INT_CLEAR_R1,
.num_regs = STPMIC1_PMIC_NUM_IRQ_REGS,
.irqs = stpmic1_irqs,
--
2.38.1
next prev parent reply other threads:[~2022-11-12 15:20 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-12 15:18 [PATCH 00/18] mfd: Clean up deprecated regmap-irq functionality Aidan MacDonald
2022-11-12 15:18 ` [PATCH 01/18] mfd: 88pm800: Replace irqchip mask_invert with unmask_base Aidan MacDonald
2022-11-16 17:32 ` Lee Jones
2022-11-12 15:18 ` [PATCH 02/18] mfd: atc260x: " Aidan MacDonald
2022-11-16 17:33 ` Lee Jones
2022-11-12 15:18 ` [PATCH 03/18] mfd: axp20x: " Aidan MacDonald
2022-11-13 18:42 ` Samuel Holland
2022-11-16 17:33 ` Lee Jones
2022-11-12 15:18 ` [PATCH 04/18] mfd: gateworks-gsc: " Aidan MacDonald
2022-11-16 17:34 ` Lee Jones
2022-11-12 15:18 ` [PATCH 05/18] mfd: max14577: " Aidan MacDonald
2022-11-14 10:21 ` Krzysztof Kozlowski
2022-11-14 13:34 ` Aidan MacDonald
2022-11-14 14:02 ` Lee Jones
2022-11-16 17:34 ` Lee Jones
2022-11-12 15:18 ` [PATCH 06/18] mfd: max77650: Remove useless type_invert flag Aidan MacDonald
2022-11-14 12:24 ` Bartosz Golaszewski
2022-11-16 17:54 ` Lee Jones
2022-11-12 15:18 ` [PATCH 07/18] mfd: max77693: Replace irqchip mask_invert with unmask_base Aidan MacDonald
2022-11-14 10:21 ` Krzysztof Kozlowski
2022-11-16 17:54 ` Lee Jones
2022-11-12 15:18 ` [PATCH 08/18] mfd: max77843: Drop useless mask_invert flag on irqchip Aidan MacDonald
2022-11-14 10:21 ` Krzysztof Kozlowski
2022-11-16 17:55 ` Lee Jones
2022-11-12 15:18 ` [PATCH 09/18] mfd: rn5t618: Replace irqchip mask_invert with unmask_base Aidan MacDonald
2022-11-16 17:56 ` Lee Jones
2022-11-12 15:18 ` [PATCH 10/18] mfd: rohm-bd71828: " Aidan MacDonald
2022-11-14 6:26 ` Matti Vaittinen
2022-11-16 17:56 ` Lee Jones
2022-11-12 15:18 ` [PATCH 11/18] mfd: rohm-bd718x7: Drop useless mask_invert flag on irqchip Aidan MacDonald
2022-11-14 6:27 ` Matti Vaittinen
2022-11-16 17:56 ` Lee Jones
2022-11-12 15:18 ` [PATCH 12/18] mfd: rt5033: Replace irqchip mask_invert with unmask_base Aidan MacDonald
2022-11-16 17:57 ` Lee Jones
2022-11-12 15:18 ` [PATCH 13/18] mfd: rt5120: " Aidan MacDonald
2022-11-16 17:57 ` Lee Jones
2022-11-12 15:18 ` [PATCH 14/18] mfd: sprd-sc27xx-spi: " Aidan MacDonald
2022-11-14 6:34 ` Baolin Wang
2022-11-16 17:58 ` Lee Jones
2022-11-12 15:18 ` Aidan MacDonald [this message]
2022-11-16 17:58 ` [PATCH 15/18] mfd: stpmic1: Fix swapped mask/unmask in irq chip Lee Jones
2022-11-12 15:18 ` [PATCH 16/18] mfd: sun4i-gpadc: Replace irqchip mask_invert with unmask_base Aidan MacDonald
2022-11-13 18:47 ` Samuel Holland
2022-11-16 17:59 ` Lee Jones
2022-11-12 15:18 ` [PATCH 17/18] mfd: tps65090: " Aidan MacDonald
2022-11-16 17:59 ` Lee Jones
2022-11-12 15:18 ` [PATCH 18/18] mfd: wcd934x: Convert irq chip to config regs Aidan MacDonald
2022-11-12 15:31 ` Aidan MacDonald
2022-11-16 18:00 ` Lee Jones
2022-11-15 10:17 ` [PATCH 00/18] mfd: Clean up deprecated regmap-irq functionality Matti Vaittinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221112151835.39059-16-aidanmacdonald.0x0@gmail.com \
--to=aidanmacdonald.0x0@gmail.com \
--cc=baolin.wang@linux.alibaba.com \
--cc=brgl@bgdev.pl \
--cc=cristian.ciocaltea@gmail.com \
--cc=cw00.choi@samsung.com \
--cc=jernej.skrabec@gmail.com \
--cc=krzysztof.kozlowski@linaro.org \
--cc=lee@kernel.org \
--cc=linux-actions@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=mani@kernel.org \
--cc=mazziesaccount@gmail.com \
--cc=orsonzhai@gmail.com \
--cc=samuel@sholland.org \
--cc=tharvey@gateworks.com \
--cc=wens@csie.org \
--cc=zhang.lyra@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).