Commit 7fb1fe37 authored by Linus Walleij's avatar Linus Walleij

Merge tag 'renesas-pinctrl-fixes-for-v6.9-tag2' of...

Merge tag 'renesas-pinctrl-fixes-for-v6.9-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into fixes

pinctrl: renesas: Fixes for v6.9 (take two)

  - Fix interrupt configuration on RZ/G2L after s2ram.
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parents 398c9955 02cd2d3b
...@@ -2045,7 +2045,9 @@ static void rzg2l_gpio_irq_restore(struct rzg2l_pinctrl *pctrl) ...@@ -2045,7 +2045,9 @@ static void rzg2l_gpio_irq_restore(struct rzg2l_pinctrl *pctrl)
for (unsigned int i = 0; i < RZG2L_TINT_MAX_INTERRUPT; i++) { for (unsigned int i = 0; i < RZG2L_TINT_MAX_INTERRUPT; i++) {
struct irq_data *data; struct irq_data *data;
unsigned long flags;
unsigned int virq; unsigned int virq;
int ret;
if (!pctrl->hwirq[i]) if (!pctrl->hwirq[i])
continue; continue;
...@@ -2063,17 +2065,18 @@ static void rzg2l_gpio_irq_restore(struct rzg2l_pinctrl *pctrl) ...@@ -2063,17 +2065,18 @@ static void rzg2l_gpio_irq_restore(struct rzg2l_pinctrl *pctrl)
continue; continue;
} }
if (!irqd_irq_disabled(data)) {
unsigned long flags;
/* /*
* This has to be atomically executed to protect against a concurrent * This has to be atomically executed to protect against a concurrent
* interrupt. * interrupt.
*/ */
raw_spin_lock_irqsave(&pctrl->lock.rlock, flags); raw_spin_lock_irqsave(&pctrl->lock.rlock, flags);
ret = rzg2l_gpio_irq_set_type(data, irqd_get_trigger_type(data));
if (!ret && !irqd_irq_disabled(data))
rzg2l_gpio_irq_enable(data); rzg2l_gpio_irq_enable(data);
raw_spin_unlock_irqrestore(&pctrl->lock.rlock, flags); raw_spin_unlock_irqrestore(&pctrl->lock.rlock, flags);
}
if (ret)
dev_crit(pctrl->dev, "Failed to set IRQ type for virq=%u\n", virq);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment