pinctrl: sunxi: Mask non-wakeup IRQs on suspend
The pin controller hardware does not distinguish IRQs intended for wakeup from other IRQs, so we must mask non-wakeup IRQs in software to prevent inadvertent wakeups. This is accomplished at the irqchip level via the IRQCHIP_MASK_ON_SUSPEND flag. Signed-off-by: Samuel Holland <samuel@sholland.org> Link: https://lore.kernel.org/r/20200117213340.47714-2-samuel@sholland.org Acked-by: Maxime Ripard <mripard@kernel.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
a59c99d9ea
commit
8587b21c59
|
@ -1076,6 +1076,7 @@ static struct irq_chip sunxi_pinctrl_edge_irq_chip = {
|
|||
.irq_release_resources = sunxi_pinctrl_irq_release_resources,
|
||||
.irq_set_type = sunxi_pinctrl_irq_set_type,
|
||||
.irq_set_wake = sunxi_pinctrl_irq_set_wake,
|
||||
.flags = IRQCHIP_MASK_ON_SUSPEND,
|
||||
};
|
||||
|
||||
static struct irq_chip sunxi_pinctrl_level_irq_chip = {
|
||||
|
@ -1092,6 +1093,7 @@ static struct irq_chip sunxi_pinctrl_level_irq_chip = {
|
|||
.irq_set_type = sunxi_pinctrl_irq_set_type,
|
||||
.irq_set_wake = sunxi_pinctrl_irq_set_wake,
|
||||
.flags = IRQCHIP_EOI_THREADED |
|
||||
IRQCHIP_MASK_ON_SUSPEND |
|
||||
IRQCHIP_EOI_IF_HANDLED,
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user