Skip to contentSkip to conversation

mfd: Clean up deprecated regmap-irq functionality

PATCH Applied Aidan MacDonald 7 participants 50 messages Nov 12, 2022 – Nov 16, 2022

Subsystems (9)
lore
Share & tools
lore
#0 lore raw

cover mfd: Clean up deprecated regmap-irq functionality

Hi Lee,

Here are some trivial updates to replace old, deprecated regmap-irq APIs with the new equivalents. There should be no functional changes, but none of the patches have been tested (besides compile testing).

One issue with WCD934x - after applying the patch, a bug in regmap-irq will cause a null pointer deref when setting the IRQ type, but a fix is already in the regmap tree.

Aidan MacDonald (18):
mfd: 88pm800: Replace irqchip mask_invert with unmask_base
mfd: atc260x: Replace irqchip mask_invert with unmask_base
mfd: axp20x: Replace irqchip mask_invert with unmask_base
mfd: gateworks-gsc: Replace irqchip mask_invert with unmask_base
mfd: max14577: Replace irqchip mask_invert with unmask_base
mfd: max77650: Remove useless type_invert flag
mfd: max77693: Replace irqchip mask_invert with unmask_base
mfd: max77843: Drop useless mask_invert flag on irqchip
mfd: rn5t618: Replace irqchip mask_invert with unmask_base
mfd: rohm-bd71828: Replace irqchip mask_invert with unmask_base
mfd: rohm-bd718x7: Drop useless mask_invert flag on irqchip
mfd: rt5033: Replace irqchip mask_invert with unmask_base
mfd: rt5120: Replace irqchip mask_invert with unmask_base
mfd: sprd-sc27xx-spi: Replace irqchip mask_invert with unmask_base
mfd: stpmic1: Fix swapped mask/unmask in irq chip
mfd: sun4i-gpadc: Replace irqchip mask_invert with unmask_base
mfd: tps65090: Replace irqchip mask_invert with unmask_base
mfd: wcd934x: Convert irq chip to config regs

 drivers/mfd/88pm800.c         |  3 +--
 drivers/mfd/atc260x-core.c    |  6 ++----
 drivers/mfd/axp20x.c          | 21 +++++++--------------
 drivers/mfd/gateworks-gsc.c   |  3 +--
 drivers/mfd/max14577.c        |  7 ++-----
 drivers/mfd/max77650.c        |  1 -
 drivers/mfd/max77693.c        |  6 +-----
 drivers/mfd/max77843.c        |  1 -
 drivers/mfd/rn5t618.c         |  3 +--
 drivers/mfd/rohm-bd71828.c    |  6 ++----
 drivers/mfd/rohm-bd718x7.c    |  1 -
 drivers/mfd/rt5033.c          |  3 +--
 drivers/mfd/rt5120.c          |  3 +--
 drivers/mfd/sprd-sc27xx-spi.c |  3 +--
 drivers/mfd/stpmic1.c         |  5 +++--
 drivers/mfd/sun4i-gpadc.c     |  3 +--
 drivers/mfd/tps65090.c        |  3 +--
 drivers/mfd/wcd934x.c         | 11 ++++++++---
 18 files changed, 33 insertions(+), 56 deletions(-)
Signature · 1 line
2.38.1
#1 lore raw

PATCH 1/18 mfd: 88pm800: Replace irqchip mask_invert with unmask_base

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/88pm800.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/mfd/88pm800.c +1 -2
index a30e47b74327..20742793b22d 100644
@@ -398,9 +398,8 @@ static struct regmap_irq_chip pm800_irq_chip = {
 
 	.num_regs = 4,
 	.status_base = PM800_INT_STATUS1,
-	.mask_base = PM800_INT_ENA_1,
+	.unmask_base = PM800_INT_ENA_1,
 	.ack_base = PM800_INT_STATUS1,
-	.mask_invert = 1,
 };
 
 static int pm800_pages_init(struct pm80x_chip *chip)
Signature · 1 line
2.38.1
maintainer Applied
#2 lore raw

Re: [PATCH 01/18] mfd: 88pm800: Replace irqchip mask_invert with unmask_base

Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/88pm800.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#3 lore raw

PATCH 2/18 mfd: atc260x: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/atc260x-core.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/mfd/atc260x-core.c +2 -4
index 7148ff5b05b1..7c5de3ae776e 100644
@@ -100,8 +100,7 @@ static const struct regmap_irq_chip atc2603c_regmap_irq_chip = {
 	.num_irqs = ARRAY_SIZE(atc2603c_regmap_irqs),
 	.num_regs = 1,
 	.status_base = ATC2603C_INTS_PD,
-	.mask_base = ATC2603C_INTS_MSK,
-	.mask_invert = true,
+	.unmask_base = ATC2603C_INTS_MSK,
 };
 
 static const struct regmap_irq_chip atc2609a_regmap_irq_chip = {
@@ -110,8 +109,7 @@ static const struct regmap_irq_chip atc2609a_regmap_irq_chip = {
 	.num_irqs = ARRAY_SIZE(atc2609a_regmap_irqs),
 	.num_regs = 1,
 	.status_base = ATC2609A_INTS_PD,
-	.mask_base = ATC2609A_INTS_MSK,
-	.mask_invert = true,
+	.unmask_base = ATC2609A_INTS_MSK,
 };
 
 static const struct resource atc2603c_onkey_resources[] = {
Signature · 1 line
2.38.1
maintainer Applied
#4 lore raw

Re: [PATCH 02/18] mfd: atc260x: Replace irqchip mask_invert with unmask_base

Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/atc260x-core.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#5 lore raw

PATCH 3/18 mfd: axp20x: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/axp20x.c | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)
drivers/mfd/axp20x.c +7 -14
index 88a212a8168c..6e6b5dbab098 100644
@@ -506,8 +506,7 @@ static const struct regmap_irq_chip axp152_regmap_irq_chip = {
 	.name			= "axp152_irq_chip",
 	.status_base		= AXP152_IRQ1_STATE,
 	.ack_base		= AXP152_IRQ1_STATE,
-	.mask_base		= AXP152_IRQ1_EN,
-	.mask_invert		= true,
+	.unmask_base		= AXP152_IRQ1_EN,
 	.init_ack_masked	= true,
 	.irqs			= axp152_regmap_irqs,
 	.num_irqs		= ARRAY_SIZE(axp152_regmap_irqs),
@@ -518,8 +517,7 @@ static const struct regmap_irq_chip axp20x_regmap_irq_chip = {
 	.name			= "axp20x_irq_chip",
 	.status_base		= AXP20X_IRQ1_STATE,
 	.ack_base		= AXP20X_IRQ1_STATE,
-	.mask_base		= AXP20X_IRQ1_EN,
-	.mask_invert		= true,
+	.unmask_base		= AXP20X_IRQ1_EN,
 	.init_ack_masked	= true,
 	.irqs			= axp20x_regmap_irqs,
 	.num_irqs		= ARRAY_SIZE(axp20x_regmap_irqs),
@@ -531,8 +529,7 @@ static const struct regmap_irq_chip axp22x_regmap_irq_chip = {
 	.name			= "axp22x_irq_chip",
 	.status_base		= AXP20X_IRQ1_STATE,
 	.ack_base		= AXP20X_IRQ1_STATE,
-	.mask_base		= AXP20X_IRQ1_EN,
-	.mask_invert		= true,
+	.unmask_base		= AXP20X_IRQ1_EN,
 	.init_ack_masked	= true,
 	.irqs			= axp22x_regmap_irqs,
 	.num_irqs		= ARRAY_SIZE(axp22x_regmap_irqs),
@@ -543,8 +540,7 @@ static const struct regmap_irq_chip axp288_regmap_irq_chip = {
 	.name			= "axp288_irq_chip",
 	.status_base		= AXP20X_IRQ1_STATE,
 	.ack_base		= AXP20X_IRQ1_STATE,
-	.mask_base		= AXP20X_IRQ1_EN,
-	.mask_invert		= true,
+	.unmask_base		= AXP20X_IRQ1_EN,
 	.init_ack_masked	= true,
 	.irqs			= axp288_regmap_irqs,
 	.num_irqs		= ARRAY_SIZE(axp288_regmap_irqs),
@@ -556,8 +552,7 @@ static const struct regmap_irq_chip axp803_regmap_irq_chip = {
 	.name			= "axp803",
 	.status_base		= AXP20X_IRQ1_STATE,
 	.ack_base		= AXP20X_IRQ1_STATE,
-	.mask_base		= AXP20X_IRQ1_EN,
-	.mask_invert		= true,
+	.unmask_base		= AXP20X_IRQ1_EN,
 	.init_ack_masked	= true,
 	.irqs			= axp803_regmap_irqs,
 	.num_irqs		= ARRAY_SIZE(axp803_regmap_irqs),
@@ -568,8 +563,7 @@ static const struct regmap_irq_chip axp806_regmap_irq_chip = {
 	.name			= "axp806",
 	.status_base		= AXP20X_IRQ1_STATE,
 	.ack_base		= AXP20X_IRQ1_STATE,
-	.mask_base		= AXP20X_IRQ1_EN,
-	.mask_invert		= true,
+	.unmask_base		= AXP20X_IRQ1_EN,
 	.init_ack_masked	= true,
 	.irqs			= axp806_regmap_irqs,
 	.num_irqs		= ARRAY_SIZE(axp806_regmap_irqs),
@@ -580,8 +574,7 @@ static const struct regmap_irq_chip axp809_regmap_irq_chip = {
 	.name			= "axp809",
 	.status_base		= AXP20X_IRQ1_STATE,
 	.ack_base		= AXP20X_IRQ1_STATE,
-	.mask_base		= AXP20X_IRQ1_EN,
-	.mask_invert		= true,
+	.unmask_base		= AXP20X_IRQ1_EN,
 	.init_ack_masked	= true,
 	.irqs			= axp809_regmap_irqs,
 	.num_irqs		= ARRAY_SIZE(axp809_regmap_irqs),
Signature · 1 line
2.38.1
maintainer Reviewed-by Tested-by on v1 3/18
#6 lore raw

Re: [PATCH 03/18] mfd: axp20x: Replace irqchip mask_invert with unmask_base

Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/axp20x.c | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)
maintainer Applied
#7 lore raw

Re: [PATCH 03/18] mfd: axp20x: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald
Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/axp20x.c | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#8 lore raw

PATCH 4/18 mfd: gateworks-gsc: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/gateworks-gsc.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/mfd/gateworks-gsc.c +1 -2
index 9d7d870c44a8..c954ed265de8 100644
@@ -189,8 +189,7 @@ static const struct regmap_irq_chip gsc_irq_chip = {
 	.num_irqs = ARRAY_SIZE(gsc_irqs),
 	.num_regs = 1,
 	.status_base = GSC_IRQ_STATUS,
-	.mask_base = GSC_IRQ_ENABLE,
-	.mask_invert = true,
+	.unmask_base = GSC_IRQ_ENABLE,
 	.ack_base = GSC_IRQ_STATUS,
 	.ack_invert = true,
 };
Signature · 1 line
2.38.1
maintainer Applied
#9 lore raw

Re: [PATCH 04/18] mfd: gateworks-gsc: Replace irqchip mask_invert with unmask_base

Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/gateworks-gsc.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#10 lore raw

PATCH 5/18 mfd: max14577: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/max14577.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
drivers/mfd/max14577.c +2 -5
index d44ad6f33742..9c2d98d75a8e 100644
@@ -209,8 +209,7 @@ static const struct regmap_irq max14577_irqs[] = {
 static const struct regmap_irq_chip max14577_irq_chip = {
 	.name			= "max14577",
 	.status_base		= MAX14577_REG_INT1,
-	.mask_base		= MAX14577_REG_INTMASK1,
-	.mask_invert		= true,
+	.unmask_base		= MAX14577_REG_INTMASK1,
 	.num_regs		= 3,
 	.irqs			= max14577_irqs,
 	.num_irqs		= ARRAY_SIZE(max14577_irqs),
@@ -239,8 +238,7 @@ static const struct regmap_irq max77836_muic_irqs[] = {
 static const struct regmap_irq_chip max77836_muic_irq_chip = {
 	.name			= "max77836-muic",
 	.status_base		= MAX14577_REG_INT1,
-	.mask_base		= MAX14577_REG_INTMASK1,
-	.mask_invert		= true,
+	.unmask_base		= MAX14577_REG_INTMASK1,
 	.num_regs		= 3,
 	.irqs			= max77836_muic_irqs,
 	.num_irqs		= ARRAY_SIZE(max77836_muic_irqs),
@@ -255,7 +253,6 @@ static const struct regmap_irq_chip max77836_pmic_irq_chip = {
 	.name			= "max77836-pmic",
 	.status_base		= MAX77836_PMIC_REG_TOPSYS_INT,
 	.mask_base		= MAX77836_PMIC_REG_TOPSYS_INT_MASK,
-	.mask_invert		= false,
 	.num_regs		= 1,
 	.irqs			= max77836_pmic_irqs,
 	.num_irqs		= ARRAY_SIZE(max77836_pmic_irqs),
Signature · 1 line
2.38.1
Acked-by on v1 5/18
#11 lore raw

Re: [PATCH 05/18] mfd: max14577: Replace irqchip mask_invert with unmask_base

Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/max14577.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

Mention this is a resend or provide a changelog for v2.

Best regards,
Krzysztof

#12 lore raw

Re: [PATCH 05/18] mfd: max14577: Replace irqchip mask_invert with unmask_base

Quoted 11 lines · Krzysztof Kozlowski
Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/max14577.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

Mention this is a resend or provide a changelog for v2.

Most of these patches are resends, but they're so trivial it seems pointless to mention that fact. There are no changes from v1.

Regards,
Aidan

Quoted 5 lines

Best regards,
Krzysztof

maintainer
#13 lore raw

Re: [PATCH 05/18] mfd: max14577: Replace irqchip mask_invert with unmask_base

Quoted 13 lines · Aidan MacDonald
Quoted 10 lines · Krzysztof Kozlowski
Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/max14577.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
Quoted 4 lines
Quoted 1 line

Mention this is a resend or provide a changelog for v2.

Most of these patches are resends, but they're so trivial it seems pointless to mention that fact. There are no changes from v1.

How are people supposed to know the difference between "no change" and "there have been lots of changes, but I forgot to add a change-log"? :)

Nothing wrong with:

v1 -> v2:
No code changes

Quoted 4 lines
Quoted 4 lines

Best regards,
Krzysztof

Signature · 1 line
Lee Jones [李琼斯]
maintainer Applied
#14 lore raw

Re: [PATCH 05/18] mfd: max14577: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald
Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/max14577.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#15 lore raw

PATCH 6/18 mfd: max77650: Remove useless type_invert flag

In reply to Aidan MacDonald

The type_invert flag does nothing when type_in_mask is set, and it's part of deprecated functionality in regmap-irq. Remove it.

---
 drivers/mfd/max77650.c | 1 -
 1 file changed, 1 deletion(-)
drivers/mfd/max77650.c +0 -1
index 777485a33bc0..3c07fcdd9d07 100644
@@ -138,7 +138,6 @@ static const struct regmap_irq_chip max77650_irq_chip = {
 	.status_base		= MAX77650_REG_INT_GLBL,
 	.mask_base		= MAX77650_REG_INTM_GLBL,
 	.type_in_mask		= true,
-	.type_invert		= true,
 	.init_ack_masked	= true,
 	.clear_on_unmask	= true,
 };
Signature · 1 line
2.38.1
Acked-by on v1 6/18
#16 lore raw

Re: [PATCH 06/18] mfd: max77650: Remove useless type_invert flag

Quoted 22 lines · Aidan MacDonald

The type_invert flag does nothing when type_in_mask is set, and it's part of deprecated functionality in regmap-irq. Remove it.

---
 drivers/mfd/max77650.c | 1 -
 1 file changed, 1 deletion(-)
drivers/mfd/max77650.c +0 -2
index 777485a33bc0..3c07fcdd9d07 100644
@@ -138,7 +138,6 @@ static const struct regmap_irq_chip max77650_irq_chip = {
        .status_base            = MAX77650_REG_INT_GLBL,
        .mask_base              = MAX77650_REG_INTM_GLBL,
        .type_in_mask           = true,
-       .type_invert            = true,
        .init_ack_masked        = true,
        .clear_on_unmask        = true,
 };
--
Quoted 2 lines

2.38.1

maintainer Applied
#17 lore raw

Re: [PATCH 06/18] mfd: max77650: Remove useless type_invert flag

In reply to Aidan MacDonald
Quoted 7 lines · Aidan MacDonald

The type_invert flag does nothing when type_in_mask is set, and it's part of deprecated functionality in regmap-irq. Remove it.

---
 drivers/mfd/max77650.c | 1 -
 1 file changed, 1 deletion(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#18 lore raw

PATCH 7/18 mfd: max77693: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/max77693.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)
drivers/mfd/max77693.c +1 -5
index 7088cb6f9174..7486acc84499 100644
@@ -66,7 +66,6 @@ static const struct regmap_irq_chip max77693_led_irq_chip = {
 	.name			= "max77693-led",
 	.status_base		= MAX77693_LED_REG_FLASH_INT,
 	.mask_base		= MAX77693_LED_REG_FLASH_INT_MASK,
-	.mask_invert		= false,
 	.num_regs		= 1,
 	.irqs			= max77693_led_irqs,
 	.num_irqs		= ARRAY_SIZE(max77693_led_irqs),
@@ -82,7 +81,6 @@ static const struct regmap_irq_chip max77693_topsys_irq_chip = {
 	.name			= "max77693-topsys",
 	.status_base		= MAX77693_PMIC_REG_TOPSYS_INT,
 	.mask_base		= MAX77693_PMIC_REG_TOPSYS_INT_MASK,
-	.mask_invert		= false,
 	.num_regs		= 1,
 	.irqs			= max77693_topsys_irqs,
 	.num_irqs		= ARRAY_SIZE(max77693_topsys_irqs),
@@ -100,7 +98,6 @@ static const struct regmap_irq_chip max77693_charger_irq_chip = {
 	.name			= "max77693-charger",
 	.status_base		= MAX77693_CHG_REG_CHG_INT,
 	.mask_base		= MAX77693_CHG_REG_CHG_INT_MASK,
-	.mask_invert		= false,
 	.num_regs		= 1,
 	.irqs			= max77693_charger_irqs,
 	.num_irqs		= ARRAY_SIZE(max77693_charger_irqs),
@@ -136,8 +133,7 @@ static const struct regmap_irq max77693_muic_irqs[] = {
 static const struct regmap_irq_chip max77693_muic_irq_chip = {
 	.name			= "max77693-muic",
 	.status_base		= MAX77693_MUIC_REG_INT1,
-	.mask_base		= MAX77693_MUIC_REG_INTMASK1,
-	.mask_invert		= true,
+	.unmask_base		= MAX77693_MUIC_REG_INTMASK1,
 	.num_regs		= 3,
 	.irqs			= max77693_muic_irqs,
 	.num_irqs		= ARRAY_SIZE(max77693_muic_irqs),
Signature · 1 line
2.38.1
maintainer Applied
#20 lore raw

Re: [PATCH 07/18] mfd: max77693: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald
Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/max77693.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#21 lore raw

PATCH 8/18 mfd: max77843: Drop useless mask_invert flag on irqchip

In reply to Aidan MacDonald

Setting mask_invert to false is pointless because that's the default. The flag is also deprecated, so drop it.

---
 drivers/mfd/max77843.c | 1 -
 1 file changed, 1 deletion(-)
drivers/mfd/max77843.c +0 -1
index 209ee24d9ce1..4da58eab1603 100644
@@ -59,7 +59,6 @@ static const struct regmap_irq_chip max77843_irq_chip = {
 	.name		= "max77843",
 	.status_base	= MAX77843_SYS_REG_SYSINTSRC,
 	.mask_base	= MAX77843_SYS_REG_SYSINTMASK,
-	.mask_invert	= false,
 	.num_regs	= 1,
 	.irqs		= max77843_irqs,
 	.num_irqs	= ARRAY_SIZE(max77843_irqs),
Signature · 1 line
2.38.1
maintainer Applied
#23 lore raw

Re: [PATCH 08/18] mfd: max77843: Drop useless mask_invert flag on irqchip

In reply to Aidan MacDonald
Quoted 7 lines · Aidan MacDonald

Setting mask_invert to false is pointless because that's the default. The flag is also deprecated, so drop it.

---
 drivers/mfd/max77843.c | 1 -
 1 file changed, 1 deletion(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#24 lore raw

PATCH 9/18 mfd: rn5t618: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/rn5t618.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/mfd/rn5t618.c +1 -2
index eb8005b4e58d..2f59230749cd 100644
@@ -80,8 +80,7 @@ static const struct regmap_irq_chip rc5t619_irq_chip = {
 	.num_irqs = ARRAY_SIZE(rc5t619_irqs),
 	.num_regs = 1,
 	.status_base = RN5T618_INTMON,
-	.mask_base = RN5T618_INTEN,
-	.mask_invert = true,
+	.unmask_base = RN5T618_INTEN,
 };
 
 static struct i2c_client *rn5t618_pm_power_off;
Signature · 1 line
2.38.1
maintainer Applied
#25 lore raw

Re: [PATCH 09/18] mfd: rn5t618: Replace irqchip mask_invert with unmask_base

Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/rn5t618.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#26 lore raw

PATCH 10/18 mfd: rohm-bd71828: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/rohm-bd71828.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/mfd/rohm-bd71828.c +2 -4
index 714d9fcbf07b..3c5c6c393650 100644
@@ -413,9 +413,8 @@ static struct regmap_irq_chip bd71828_irq_chip = {
 	.irqs = &bd71828_irqs[0],
 	.num_irqs = ARRAY_SIZE(bd71828_irqs),
 	.status_base = BD71828_REG_INT_BUCK,
-	.mask_base = BD71828_REG_INT_MASK_BUCK,
+	.unmask_base = BD71828_REG_INT_MASK_BUCK,
 	.ack_base = BD71828_REG_INT_BUCK,
-	.mask_invert = true,
 	.init_ack_masked = true,
 	.num_regs = 12,
 	.num_main_regs = 1,
@@ -430,9 +429,8 @@ static struct regmap_irq_chip bd71815_irq_chip = {
 	.irqs = &bd71815_irqs[0],
 	.num_irqs = ARRAY_SIZE(bd71815_irqs),
 	.status_base = BD71815_REG_INT_STAT_01,
-	.mask_base = BD71815_REG_INT_EN_01,
+	.unmask_base = BD71815_REG_INT_EN_01,
 	.ack_base = BD71815_REG_INT_STAT_01,
-	.mask_invert = true,
 	.init_ack_masked = true,
 	.num_regs = 12,
 	.num_main_regs = 1,
Signature · 1 line
2.38.1
maintainer Reviewed-by on v1 10/18
#27 lore raw

Re: [PATCH 10/18] mfd: rohm-bd71828: Replace irqchip mask_invert with unmask_base

Quoted 5 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

Quoted 30 lines
---
  drivers/mfd/rohm-bd71828.c | 6 ++----
  1 file changed, 2 insertions(+), 4 deletions(-)
drivers/mfd/rohm-bd71828.c +2 -4
index 714d9fcbf07b..3c5c6c393650 100644
@@ -413,9 +413,8 @@ static struct regmap_irq_chip bd71828_irq_chip = {
  	.irqs = &bd71828_irqs[0],
  	.num_irqs = ARRAY_SIZE(bd71828_irqs),
  	.status_base = BD71828_REG_INT_BUCK,
-	.mask_base = BD71828_REG_INT_MASK_BUCK,
+	.unmask_base = BD71828_REG_INT_MASK_BUCK,
  	.ack_base = BD71828_REG_INT_BUCK,
-	.mask_invert = true,
  	.init_ack_masked = true,
  	.num_regs = 12,
  	.num_main_regs = 1,
@@ -430,9 +429,8 @@ static struct regmap_irq_chip bd71815_irq_chip = {
  	.irqs = &bd71815_irqs[0],
  	.num_irqs = ARRAY_SIZE(bd71815_irqs),
  	.status_base = BD71815_REG_INT_STAT_01,
-	.mask_base = BD71815_REG_INT_EN_01,
+	.unmask_base = BD71815_REG_INT_EN_01,
  	.ack_base = BD71815_REG_INT_STAT_01,
-	.mask_invert = true,
  	.init_ack_masked = true,
  	.num_regs = 12,
  	.num_main_regs = 1,
Signature · 5 lines
Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland

~~ When things go utterly wrong vim users can always type :help! ~~
maintainer Applied
#28 lore raw

Re: [PATCH 10/18] mfd: rohm-bd71828: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald
Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/rohm-bd71828.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#29 lore raw

PATCH 11/18 mfd: rohm-bd718x7: Drop useless mask_invert flag on irqchip

In reply to Aidan MacDonald

Setting mask_invert to false is pointless because that's the default. The flag is also deprecated, so drop it.

---
 drivers/mfd/rohm-bd718x7.c | 1 -
 1 file changed, 1 deletion(-)
drivers/mfd/rohm-bd718x7.c +0 -1
index bfd81f78beae..ad6c0971a997 100644
@@ -70,7 +70,6 @@ static struct regmap_irq_chip bd718xx_irq_chip = {
 	.mask_base = BD718XX_REG_MIRQ,
 	.ack_base = BD718XX_REG_IRQ,
 	.init_ack_masked = true,
-	.mask_invert = false,
 };
 
 static const struct regmap_range pmic_status_range = {
Signature · 1 line
2.38.1
maintainer Reviewed-by on v1 11/18
#30 lore raw

Re: [PATCH 11/18] mfd: rohm-bd718x7: Drop useless mask_invert flag on irqchip

Quoted 4 lines · Aidan MacDonald

Setting mask_invert to false is pointless because that's the default. The flag is also deprecated, so drop it.

Quoted 16 lines
---
  drivers/mfd/rohm-bd718x7.c | 1 -
  1 file changed, 1 deletion(-)
drivers/mfd/rohm-bd718x7.c +0 -1
index bfd81f78beae..ad6c0971a997 100644
@@ -70,7 +70,6 @@ static struct regmap_irq_chip bd718xx_irq_chip = {
  	.mask_base = BD718XX_REG_MIRQ,
  	.ack_base = BD718XX_REG_IRQ,
  	.init_ack_masked = true,
-	.mask_invert = false,
  };
 
  static const struct regmap_range pmic_status_range = {
Signature · 5 lines
Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland

~~ When things go utterly wrong vim users can always type :help! ~~
maintainer Applied
#31 lore raw

Re: [PATCH 11/18] mfd: rohm-bd718x7: Drop useless mask_invert flag on irqchip

In reply to Aidan MacDonald
Quoted 7 lines · Aidan MacDonald

Setting mask_invert to false is pointless because that's the default. The flag is also deprecated, so drop it.

---
 drivers/mfd/rohm-bd718x7.c | 1 -
 1 file changed, 1 deletion(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#32 lore raw

PATCH 12/18 mfd: rt5033: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/rt5033.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/mfd/rt5033.c +1 -2
index f1236a9acf30..dc9bf4057a09 100644
@@ -29,8 +29,7 @@ static const struct regmap_irq rt5033_irqs[] = {
 static const struct regmap_irq_chip rt5033_irq_chip = {
 	.name		= "rt5033",
 	.status_base	= RT5033_REG_PMIC_IRQ_STAT,
-	.mask_base	= RT5033_REG_PMIC_IRQ_CTRL,
-	.mask_invert	= true,
+	.unmask_base	= RT5033_REG_PMIC_IRQ_CTRL,
 	.num_regs	= 1,
 	.irqs		= rt5033_irqs,
 	.num_irqs	= ARRAY_SIZE(rt5033_irqs),
Signature · 1 line
2.38.1
maintainer Applied
#33 lore raw

Re: [PATCH 12/18] mfd: rt5033: Replace irqchip mask_invert with unmask_base

Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/rt5033.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#34 lore raw

PATCH 13/18 mfd: rt5120: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/rt5120.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/mfd/rt5120.c +1 -2
index 8046e383bc92..829b7a0a0781 100644
@@ -59,9 +59,8 @@ static const struct regmap_irq rt5120_irqs[] = {
 static const struct regmap_irq_chip rt5120_irq_chip = {
 	.name = "rt5120-pmic",
 	.status_base = RT5120_REG_INTSTAT,
-	.mask_base = RT5120_REG_INTENABLE,
+	.unmask_base = RT5120_REG_INTENABLE,
 	.ack_base = RT5120_REG_INTSTAT,
-	.mask_invert = true,
 	.use_ack = true,
 	.num_regs = 1,
 	.irqs = rt5120_irqs,
Signature · 1 line
2.38.1
maintainer Applied
#35 lore raw

Re: [PATCH 13/18] mfd: rt5120: Replace irqchip mask_invert with unmask_base

Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/rt5120.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#36 lore raw

PATCH 14/18 mfd: sprd-sc27xx-spi: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/sprd-sc27xx-spi.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/mfd/sprd-sc27xx-spi.c +1 -2
index d05a47c5187f..a4a9b81a952b 100644
@@ -181,11 +181,10 @@ static int sprd_pmic_probe(struct spi_device *spi)
 	ddata->irq_chip.name = dev_name(&spi->dev);
 	ddata->irq_chip.status_base =
 		pdata->irq_base + SPRD_PMIC_INT_MASK_STATUS;
-	ddata->irq_chip.mask_base = pdata->irq_base + SPRD_PMIC_INT_EN;
+	ddata->irq_chip.unmask_base = pdata->irq_base + SPRD_PMIC_INT_EN;
 	ddata->irq_chip.ack_base = 0;
 	ddata->irq_chip.num_regs = 1;
 	ddata->irq_chip.num_irqs = pdata->num_irqs;
-	ddata->irq_chip.mask_invert = true;
 
 	ddata->irqs = devm_kcalloc(&spi->dev,
 				   pdata->num_irqs, sizeof(struct regmap_irq),
Signature · 1 line
2.38.1
Reviewed-by on v1 14/18
#37 lore raw

Re: [PATCH 14/18] mfd: sprd-sc27xx-spi: Replace irqchip mask_invert with unmask_base

Quoted 5 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

LGTM. Thanks.

Quoted 21 lines
---
  drivers/mfd/sprd-sc27xx-spi.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
drivers/mfd/sprd-sc27xx-spi.c +1 -2
index d05a47c5187f..a4a9b81a952b 100644
@@ -181,11 +181,10 @@ static int sprd_pmic_probe(struct spi_device *spi)
  	ddata->irq_chip.name = dev_name(&spi->dev);
  	ddata->irq_chip.status_base =
  		pdata->irq_base + SPRD_PMIC_INT_MASK_STATUS;
-	ddata->irq_chip.mask_base = pdata->irq_base + SPRD_PMIC_INT_EN;
+	ddata->irq_chip.unmask_base = pdata->irq_base + SPRD_PMIC_INT_EN;
  	ddata->irq_chip.ack_base = 0;
  	ddata->irq_chip.num_regs = 1;
  	ddata->irq_chip.num_irqs = pdata->num_irqs;
-	ddata->irq_chip.mask_invert = true;
 
  	ddata->irqs = devm_kcalloc(&spi->dev,
  				   pdata->num_irqs, sizeof(struct regmap_irq),
maintainer Applied
#38 lore raw

Re: [PATCH 14/18] mfd: sprd-sc27xx-spi: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald
Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/sprd-sc27xx-spi.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#39 lore raw

PATCH 15/18 mfd: stpmic1: Fix swapped mask/unmask in irq chip

In reply to Aidan MacDonald

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.

---
 drivers/mfd/stpmic1.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/mfd/stpmic1.c +3 -2
index eb3da558c3fb..ee0469d5d435 100644
@@ -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,
Signature · 1 line
2.38.1
maintainer Applied
#40 lore raw

Re: [PATCH 15/18] mfd: stpmic1: Fix swapped mask/unmask in irq chip

Quoted 23 lines · Aidan MacDonald

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.

Quoted 4 lines
---
 drivers/mfd/stpmic1.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#41 lore raw

PATCH 16/18 mfd: sun4i-gpadc: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/sun4i-gpadc.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/mfd/sun4i-gpadc.c +1 -2
index cfe14d9bf6dc..edc180d83a4b 100644
@@ -34,9 +34,8 @@ static const struct regmap_irq_chip sun4i_gpadc_regmap_irq_chip = {
 	.name = "sun4i_gpadc_irq_chip",
 	.status_base = SUN4I_GPADC_INT_FIFOS,
 	.ack_base = SUN4I_GPADC_INT_FIFOS,
-	.mask_base = SUN4I_GPADC_INT_FIFOC,
+	.unmask_base = SUN4I_GPADC_INT_FIFOC,
 	.init_ack_masked = true,
-	.mask_invert = true,
 	.irqs = sun4i_gpadc_regmap_irq,
 	.num_irqs = ARRAY_SIZE(sun4i_gpadc_regmap_irq),
 	.num_regs = 1,
Signature · 1 line
2.38.1
maintainer Applied
#43 lore raw

Re: [PATCH 16/18] mfd: sun4i-gpadc: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald
Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/sun4i-gpadc.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#44 lore raw

PATCH 17/18 mfd: tps65090: Replace irqchip mask_invert with unmask_base

In reply to Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/tps65090.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/mfd/tps65090.c +1 -2
index bd6235308c6b..e474e1ca253a 100644
@@ -127,8 +127,7 @@ static struct regmap_irq_chip tps65090_irq_chip = {
 	.num_irqs = ARRAY_SIZE(tps65090_irqs),
 	.num_regs = NUM_INT_REG,
 	.status_base = TPS65090_REG_INTR_STS,
-	.mask_base = TPS65090_REG_INTR_MASK,
-	.mask_invert = true,
+	.unmask_base = TPS65090_REG_INTR_MASK,
 };
 
 static bool is_volatile_reg(struct device *dev, unsigned int reg)
Signature · 1 line
2.38.1
maintainer Applied
#45 lore raw

Re: [PATCH 17/18] mfd: tps65090: Replace irqchip mask_invert with unmask_base

Quoted 8 lines · Aidan MacDonald

Remove use of the deprecated mask_invert flag. Inverted mask registers (where a '1' bit enables an IRQ) can be described more directly as an unmask register.

---
 drivers/mfd/tps65090.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
#46 lore raw

PATCH 18/18 mfd: wcd934x: Convert irq chip to config regs

In reply to Aidan MacDonald

Type registers are deprecated and will eventually be removed from regmap-irq. The same functionality can be replicated with config registers.

---
 drivers/mfd/wcd934x.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
drivers/mfd/wcd934x.c +8 -3
index 68e2fa2fda99..07e884087f2c 100644
@@ -55,17 +55,22 @@ static const struct regmap_irq wcd934x_irqs[] = {
 	WCD934X_REGMAP_IRQ_REG(WCD934X_IRQ_SOUNDWIRE, 2, BIT(4)),
 };
 
+static const unsigned int wcd934x_config_regs[] = {
+	WCD934X_INTR_LEVEL0,
+};
+
 static const struct regmap_irq_chip wcd934x_regmap_irq_chip = {
 	.name = "wcd934x_irq",
 	.status_base = WCD934X_INTR_PIN1_STATUS0,
 	.mask_base = WCD934X_INTR_PIN1_MASK0,
 	.ack_base = WCD934X_INTR_PIN1_CLEAR0,
-	.type_base = WCD934X_INTR_LEVEL0,
-	.num_type_reg = 4,
-	.type_in_mask = false,
 	.num_regs = 4,
 	.irqs = wcd934x_irqs,
 	.num_irqs = ARRAY_SIZE(wcd934x_irqs),
+	.config_base = wcd934x_config_regs,
+	.num_config_bases = ARRAY_SIZE(wcd934x_config_regs),
+	.num_config_regs = 4,
+	.set_type_config = regmap_irq_set_type_config_simple,
 };
 
 static bool wcd934x_is_volatile_register(struct device *dev, unsigned int reg)
Signature · 1 line
2.38.1
#47 lore raw

Re: [PATCH 18/18] mfd: wcd934x: Convert irq chip to config regs

Quoted 9 lines

Type registers are deprecated and will eventually be removed from regmap-irq. The same functionality can be replicated with config registers.

---
 drivers/mfd/wcd934x.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

Forgot to include this here:--

One issue with WCD934x - after applying the patch, a bug in regmap-irq will cause a null pointer deref when setting the IRQ type, but a fix is already in the regmap tree.

Quoted 30 lines
drivers/mfd/wcd934x.c +8 -3
index 68e2fa2fda99..07e884087f2c 100644
@@ -55,17 +55,22 @@ static const struct regmap_irq wcd934x_irqs[] = {
 	WCD934X_REGMAP_IRQ_REG(WCD934X_IRQ_SOUNDWIRE, 2, BIT(4)),
 };
 
+static const unsigned int wcd934x_config_regs[] = {
+	WCD934X_INTR_LEVEL0,
+};
+
 static const struct regmap_irq_chip wcd934x_regmap_irq_chip = {
 	.name = "wcd934x_irq",
 	.status_base = WCD934X_INTR_PIN1_STATUS0,
 	.mask_base = WCD934X_INTR_PIN1_MASK0,
 	.ack_base = WCD934X_INTR_PIN1_CLEAR0,
-	.type_base = WCD934X_INTR_LEVEL0,
-	.num_type_reg = 4,
-	.type_in_mask = false,
 	.num_regs = 4,
 	.irqs = wcd934x_irqs,
 	.num_irqs = ARRAY_SIZE(wcd934x_irqs),
+	.config_base = wcd934x_config_regs,
+	.num_config_bases = ARRAY_SIZE(wcd934x_config_regs),
+	.num_config_regs = 4,
+	.set_type_config = regmap_irq_set_type_config_simple,
 };
 
 static bool wcd934x_is_volatile_register(struct device *dev, unsigned int reg)
maintainer Applied
#48 lore raw

Re: [PATCH 18/18] mfd: wcd934x: Convert irq chip to config regs

In reply to Aidan MacDonald
Quoted 8 lines · Aidan MacDonald

Type registers are deprecated and will eventually be removed from regmap-irq. The same functionality can be replicated with config registers.

---
 drivers/mfd/wcd934x.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

Applied, thanks.

Signature · 1 line
Lee Jones [李琼斯]
maintainer
#49 lore raw
In reply to Aidan MacDonald

Hi Aidan,

la 12. marrask. 2022 klo 17.19 Aidan MacDonald
([email protected]) kirjoitti:

Quoted 7 lines

Here are some trivial updates to replace old, deprecated regmap-irq APIs with the new equivalents. There should be no functional changes, but none of the patches have been tested (besides compile testing).

Aidan MacDonald (18):

Just a small suggestion. Would it work if the CC-list was generated separately for each of the patches for a large series targeted to various individual drivers like this one? I think that many of the recipients are not interested in more than one or two of the patches + cover-letter in this 19-mail series...

I know it can be a pain to hassle with the recipient lists and message-IDs - so I am glad if anyone can find some help from my personal playground - or even better, share their versions with us :) So, to open the window for any work-flow improvement suggestions... ...I've personally started generating patches using the following shell-script (which is inefficient and lazily written but seems to mostly work for me):
https://github.com/M-Vaittinen/linux/commit/9045670f8d3d4638b9032d96cff955704a6d438e

It can be freely used as a source of inspiration (or perspiration - no guarantees it works as intended or is feasible for anything) when generating the next series ;)

Yours
-- Matti

Signature · 8 lines
Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland

~~ When things go utterly wrong vim users can always type :help! ~~

Discuss - Estimate - Plan - Report and finally accomplish this:
void do_work(int time) __attribute__ ((const));