On CPCAP we need to keep reading interrupts until there are no
more interrupts. Otherwise the PMIC interrupt to the SoC will at
some point stop toggling. This seems to happen because new CPCAP
device interrupts show up while we're handling.

Cc: Lee Jones <[email protected]>
Cc: Marcel Partap <[email protected]>
Cc: Michael Scott <[email protected]>
Cc: Sebastian Reichel <[email protected]>
Signed-off-by: Tony Lindgren <[email protected]>
---
 drivers/mfd/motorola-cpcap.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mfd/motorola-cpcap.c b/drivers/mfd/motorola-cpcap.c
--- a/drivers/mfd/motorola-cpcap.c
+++ b/drivers/mfd/motorola-cpcap.c
@@ -96,6 +96,7 @@ static struct regmap_irq_chip 
cpcap_irq_chip[CPCAP_NR_IRQ_CHIPS] = {
                .ack_base = CPCAP_REG_MI1,
                .mask_base = CPCAP_REG_MIM1,
                .use_ack = true,
+               .handle_reread = true,
        },
        {
                .name = "cpcap-m2",
@@ -104,6 +105,7 @@ static struct regmap_irq_chip 
cpcap_irq_chip[CPCAP_NR_IRQ_CHIPS] = {
                .ack_base = CPCAP_REG_MI2,
                .mask_base = CPCAP_REG_MIM2,
                .use_ack = true,
+               .handle_reread = true,
        },
        {
                .name = "cpcap1-4",
@@ -113,6 +115,7 @@ static struct regmap_irq_chip 
cpcap_irq_chip[CPCAP_NR_IRQ_CHIPS] = {
                .mask_base = CPCAP_REG_INTM1,
                .type_base = CPCAP_REG_INTS1,
                .use_ack = true,
+               .handle_reread = true,
        },
 };
 
-- 
2.11.1

Reply via email to