Message ID | 20241202115437.33552-1-wahrenst@gmx.net (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | irqchip/bcm2836: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND | expand |
On 12/2/24 03:54, Stefan Wahren wrote: > The BCM2836 interrupt controller doesn't provide any facility to > configure the wakeup sources. That's the reason why the driver lacks > the irq_set_wake() callback for the interrupt chip. > > Enable the flags IRQCHIP_SKIP_SET_WAKE and IRQCHIP_MASK_ON_SUSPEND so > the interrupt suspend logic can handle the chip correctly. > > This was inspired by the patch series "irqchip/irq-bcm283x update > for BCM7211" by Florian Fainelli. > > Link: https://lore.kernel.org/lkml/20191001224842.9382-1-f.fainelli@gmail.com/ > Signed-off-by: Stefan Wahren <wahrenst@gmx.net> Acked-by: Florian Fainelli <florian.fainelli@broadcom.com>
diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c index e5f1059b989f..e366257684b5 100644 --- a/drivers/irqchip/irq-bcm2836.c +++ b/drivers/irqchip/irq-bcm2836.c @@ -58,6 +58,7 @@ static struct irq_chip bcm2836_arm_irqchip_timer = { .name = "bcm2836-timer", .irq_mask = bcm2836_arm_irqchip_mask_timer_irq, .irq_unmask = bcm2836_arm_irqchip_unmask_timer_irq, + .flags = IRQCHIP_MASK_ON_SUSPEND | IRQCHIP_SKIP_SET_WAKE, }; static void bcm2836_arm_irqchip_mask_pmu_irq(struct irq_data *d) @@ -74,6 +75,7 @@ static struct irq_chip bcm2836_arm_irqchip_pmu = { .name = "bcm2836-pmu", .irq_mask = bcm2836_arm_irqchip_mask_pmu_irq, .irq_unmask = bcm2836_arm_irqchip_unmask_pmu_irq, + .flags = IRQCHIP_MASK_ON_SUSPEND | IRQCHIP_SKIP_SET_WAKE, }; static void bcm2836_arm_irqchip_mask_gpu_irq(struct irq_data *d) @@ -88,6 +90,7 @@ static struct irq_chip bcm2836_arm_irqchip_gpu = { .name = "bcm2836-gpu", .irq_mask = bcm2836_arm_irqchip_mask_gpu_irq, .irq_unmask = bcm2836_arm_irqchip_unmask_gpu_irq, + .flags = IRQCHIP_MASK_ON_SUSPEND | IRQCHIP_SKIP_SET_WAKE, }; static void bcm2836_arm_irqchip_dummy_op(struct irq_data *d)
The BCM2836 interrupt controller doesn't provide any facility to configure the wakeup sources. That's the reason why the driver lacks the irq_set_wake() callback for the interrupt chip. Enable the flags IRQCHIP_SKIP_SET_WAKE and IRQCHIP_MASK_ON_SUSPEND so the interrupt suspend logic can handle the chip correctly. This was inspired by the patch series "irqchip/irq-bcm283x update for BCM7211" by Florian Fainelli. Link: https://lore.kernel.org/lkml/20191001224842.9382-1-f.fainelli@gmail.com/ Signed-off-by: Stefan Wahren <wahrenst@gmx.net> --- drivers/irqchip/irq-bcm2836.c | 3 +++ 1 file changed, 3 insertions(+) -- 2.34.1