Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

irqchip/sifive-plic: Support wake IRQs

The PLIC does not define any special method for marking interrupts as
wakeup-capable, so it should have the IRQCHIP_SKIP_SET_WAKE flag set.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221126194805.19431-1-samuel@sholland.org

authored by

Samuel Holland and committed by
Marc Zyngier
f5259b04 4a60a3cd

+4 -2
+4 -2
drivers/irqchip/irq-sifive-plic.c
··· 187 187 .irq_set_affinity = plic_set_affinity, 188 188 #endif 189 189 .irq_set_type = plic_irq_set_type, 190 - .flags = IRQCHIP_AFFINITY_PRE_STARTUP, 190 + .flags = IRQCHIP_SKIP_SET_WAKE | 191 + IRQCHIP_AFFINITY_PRE_STARTUP, 191 192 }; 192 193 193 194 static struct irq_chip plic_chip = { ··· 202 201 .irq_set_affinity = plic_set_affinity, 203 202 #endif 204 203 .irq_set_type = plic_irq_set_type, 205 - .flags = IRQCHIP_AFFINITY_PRE_STARTUP, 204 + .flags = IRQCHIP_SKIP_SET_WAKE | 205 + IRQCHIP_AFFINITY_PRE_STARTUP, 206 206 }; 207 207 208 208 static int plic_irq_set_type(struct irq_data *d, unsigned int type)