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: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx> Cc: Lee Jones <lee.jones@xxxxxxxxxx> Cc: Marcel Partap <mpartap@xxxxxxx> Cc: Michael Scott <michael.scott@xxxxxxxxxx> Tested-by: Sebastian Reichel <sre@xxxxxxxxxx> Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> --- 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 @@ -71,6 +71,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", @@ -79,6 +80,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", @@ -88,6 +90,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 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html