提交 90af7c25 编写于 作者: L Ludovic Barre 提交者: Marc Zyngier

irqchip/stm32: Move the wakeup on interrupt mask

Move irq_set_wake on interrupt mask, needed to wake up from
low power mode as the event mask is not able to do so.
Signed-off-by: NLudovic Barre <ludovic.barre@st.com>
Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
上级 2ca6b9bc
......@@ -156,16 +156,16 @@ static int stm32_irq_set_wake(struct irq_data *data, unsigned int on)
struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data);
const struct stm32_exti_bank *stm32_bank = gc->private;
int pin = data->hwirq % IRQS_PER_BANK;
u32 emr;
u32 imr;
irq_gc_lock(gc);
emr = irq_reg_readl(gc, stm32_bank->emr_ofst);
imr = irq_reg_readl(gc, stm32_bank->imr_ofst);
if (on)
emr |= BIT(pin);
imr |= BIT(pin);
else
emr &= ~BIT(pin);
irq_reg_writel(gc, emr, stm32_bank->emr_ofst);
imr &= ~BIT(pin);
irq_reg_writel(gc, imr, stm32_bank->imr_ofst);
irq_gc_unlock(gc);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册