summaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irq-bcm2835.c
diff options
context:
space:
mode:
authorStefan Wahren <wahrenst@gmx.net>2024-06-30 17:36:46 +0200
committerThomas Gleixner <tglx@linutronix.de>2024-07-15 15:13:55 +0200
commit9a58480e5e532903f08b2a34f05076d3ec3a5c00 (patch)
treeb6507e07142433f35a747d48431eea30d7b14b64 /drivers/irqchip/irq-bcm2835.c
parentirqchip/gic-v4: Make sure a VPE is locked when VMAPP is issued (diff)
downloadlinux-9a58480e5e532903f08b2a34f05076d3ec3a5c00.tar.xz
linux-9a58480e5e532903f08b2a34f05076d3ec3a5c00.zip
irqchip/bcm2835: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND
The BCM2835 ARMCTRL 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. But this prevent to properly enter power management states like "suspend to idle". Enable the flags IRQCHIP_SKIP_SET_WAKE and IRQCHIP_MASK_ON_SUSPEND so the interrupt suspend logic can handle the chip correctly. Signed-off-by: Stefan Wahren <wahrenst@gmx.net> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Diffstat (limited to 'drivers/irqchip/irq-bcm2835.c')
-rw-r--r--drivers/irqchip/irq-bcm2835.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index e94e2882286c..6c20604c2242 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -102,7 +102,9 @@ static void armctrl_unmask_irq(struct irq_data *d)
static struct irq_chip armctrl_chip = {
.name = "ARMCTRL-level",
.irq_mask = armctrl_mask_irq,
- .irq_unmask = armctrl_unmask_irq
+ .irq_unmask = armctrl_unmask_irq,
+ .flags = IRQCHIP_MASK_ON_SUSPEND |
+ IRQCHIP_SKIP_SET_WAKE,
};
static int armctrl_xlate(struct irq_domain *d, struct device_node *ctrlr,