irqchip/sifive-plic: Support wake IRQs
authorSamuel Holland <samuel@sholland.org>
Sat, 26 Nov 2022 19:48:05 +0000 (13:48 -0600)
committerMarc Zyngier <maz@kernel.org>
Mon, 28 Nov 2022 09:44:24 +0000 (09:44 +0000)
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
drivers/irqchip/irq-sifive-plic.c

index 2f47848..ff47bd0 100644 (file)
@@ -187,7 +187,8 @@ static struct irq_chip plic_edge_chip = {
        .irq_set_affinity = plic_set_affinity,
 #endif
        .irq_set_type   = plic_irq_set_type,
-       .flags          = IRQCHIP_AFFINITY_PRE_STARTUP,
+       .flags          = IRQCHIP_SKIP_SET_WAKE |
+                         IRQCHIP_AFFINITY_PRE_STARTUP,
 };
 
 static struct irq_chip plic_chip = {
@@ -201,7 +202,8 @@ static struct irq_chip plic_chip = {
        .irq_set_affinity = plic_set_affinity,
 #endif
        .irq_set_type   = plic_irq_set_type,
-       .flags          = IRQCHIP_AFFINITY_PRE_STARTUP,
+       .flags          = IRQCHIP_SKIP_SET_WAKE |
+                         IRQCHIP_AFFINITY_PRE_STARTUP,
 };
 
 static int plic_irq_set_type(struct irq_data *d, unsigned int type)