diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2017-08-18 04:39:20 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2017-08-18 04:54:41 -0400 |
commit | d0ed5e8e14e95fb3b70885be5ae35d0736866f72 (patch) | |
tree | b47659803ba9e0535489d9273082ff01967607a4 | |
parent | e31793a3e51137a910b827b18e532d6c1fa54514 (diff) |
irqchip/bcm-6345-l1: Report that effective affinity is a single target
The BCM 6345-L1 driver only targets a single CPU at a time, even if
the notional affinity is wider. Let's inform the core code
about this.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: Chris Zankel <chris@zankel.net>
Cc: Kevin Cernekee <cernekee@gmail.com>
Cc: Wei Xu <xuwei5@hisilicon.com>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: Gregory Clement <gregory.clement@free-electrons.com>
Cc: Matt Redfearn <matt.redfearn@imgtec.com>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Link: http://lkml.kernel.org/r/20170818083925.10108-8-marc.zyngier@arm.com
-rw-r--r-- | drivers/irqchip/Kconfig | 1 | ||||
-rw-r--r-- | drivers/irqchip/irq-bcm6345-l1.c | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig index cd688777553c..b36a55d6833e 100644 --- a/drivers/irqchip/Kconfig +++ b/drivers/irqchip/Kconfig | |||
@@ -96,6 +96,7 @@ config BCM6345_L1_IRQ | |||
96 | bool | 96 | bool |
97 | select GENERIC_IRQ_CHIP | 97 | select GENERIC_IRQ_CHIP |
98 | select IRQ_DOMAIN | 98 | select IRQ_DOMAIN |
99 | select GENERIC_IRQ_EFFECTIVE_AFF_MASK | ||
99 | 100 | ||
100 | config BCM7038_L1_IRQ | 101 | config BCM7038_L1_IRQ |
101 | bool | 102 | bool |
diff --git a/drivers/irqchip/irq-bcm6345-l1.c b/drivers/irqchip/irq-bcm6345-l1.c index daa4ae89e466..43f8abe40878 100644 --- a/drivers/irqchip/irq-bcm6345-l1.c +++ b/drivers/irqchip/irq-bcm6345-l1.c | |||
@@ -231,6 +231,8 @@ static int bcm6345_l1_set_affinity(struct irq_data *d, | |||
231 | } | 231 | } |
232 | raw_spin_unlock_irqrestore(&intc->lock, flags); | 232 | raw_spin_unlock_irqrestore(&intc->lock, flags); |
233 | 233 | ||
234 | irq_data_update_effective_affinity(d, cpumask_of(new_cpu)); | ||
235 | |||
234 | return IRQ_SET_MASK_OK_NOCOPY; | 236 | return IRQ_SET_MASK_OK_NOCOPY; |
235 | } | 237 | } |
236 | 238 | ||
@@ -291,6 +293,7 @@ static int bcm6345_l1_map(struct irq_domain *d, unsigned int virq, | |||
291 | irq_set_chip_and_handler(virq, | 293 | irq_set_chip_and_handler(virq, |
292 | &bcm6345_l1_irq_chip, handle_percpu_irq); | 294 | &bcm6345_l1_irq_chip, handle_percpu_irq); |
293 | irq_set_chip_data(virq, d->host_data); | 295 | irq_set_chip_data(virq, d->host_data); |
296 | irqd_set_single_target(irq_desc_get_irq_data(irq_to_desc(virq))); | ||
294 | return 0; | 297 | return 0; |
295 | } | 298 | } |
296 | 299 | ||