]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mfd: rn5t618: Fix IRQ trigger by changing it to level mode
authorAndreas Kemnade <andreas@kemnade.info>
Sat, 15 May 2021 20:55:18 +0000 (22:55 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Jul 2021 15:00:17 +0000 (17:00 +0200)
[ Upstream commit a1649a5260631979c68e5b2012f60f90300e646f ]

During more massive generation of interrupts, the IRQ got stuck,
and the subdevices did not see any new interrupts. That happens
especially at wonky USB supply in combination with ADC reads.
To fix that trigger the IRQ at level low instead of falling edge.

Fixes: 0c81604516af ("mfd: rn5t618: Add IRQ support")
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mfd/rn5t618.c

index dc452df1f1bfe635f390c419a86534ee7f4ba0c0..652a5e60067f8dbf00da5d71e6df4e74224a833a 100644 (file)
@@ -104,7 +104,7 @@ static int rn5t618_irq_init(struct rn5t618 *rn5t618)
 
        ret = devm_regmap_add_irq_chip(rn5t618->dev, rn5t618->regmap,
                                       rn5t618->irq,
-                                      IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
+                                      IRQF_TRIGGER_LOW | IRQF_ONESHOT,
                                       0, irq_chip, &rn5t618->irq_data);
        if (ret)
                dev_err(rn5t618->dev, "Failed to register IRQ chip\n");