Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90af7c25 authored by Ludovic Barre's avatar Ludovic Barre Committed by Marc Zyngier
Browse files

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: default avatarLudovic Barre <ludovic.barre@st.com>
Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent 2ca6b9bc
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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);