bcm63xx: periph_intc: report effective affinity
authorDaniel Gonzalez Cabanelas <dgcbueu@gmail.com>
Mon, 18 May 2020 07:20:03 +0000 (09:20 +0200)
committerÁlvaro Fernández Rojas <noltari@gmail.com>
Mon, 18 May 2020 07:51:18 +0000 (09:51 +0200)
The bcm6345-periph-intc driver only targets a single CPU at a time, even
if the notional affinity is wider. Let's inform the core code about this.

This patch gets rid of the kernel message:
"genirq: irq_chip bcm6345-periph-intc did not update eff. affinity mask
of irq 52"

Signed-off-by: Daniel Gonzalez Cabanelas <dgcbueu@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit e04ff3c7cc52c23f5b40730ee426710e22940d68)

target/linux/brcm63xx/patches-4.14/326-irqchip-bcm6345-report-eff-affinity.patch [new file with mode: 0644]

diff --git a/target/linux/brcm63xx/patches-4.14/326-irqchip-bcm6345-report-eff-affinity.patch b/target/linux/brcm63xx/patches-4.14/326-irqchip-bcm6345-report-eff-affinity.patch
new file mode 100644 (file)
index 0000000..f254885
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/drivers/irqchip/irq-bcm6345-periph.c
++++ b/drivers/irqchip/irq-bcm6345-periph.c
+@@ -186,6 +186,8 @@ static int bcm6345_periph_set_affinity(s
+       }
+       raw_spin_unlock_irqrestore(&priv->lock, flags);
++      irq_data_update_effective_affinity(data, cpumask_of(cpu));
++
+       return 0;
+ }
+ #endif
+@@ -197,6 +199,8 @@ static int bcm6345_periph_map(struct irq
+       irq_set_chip_and_handler(irq, &priv->chip, handle_level_irq);
++      irqd_set_single_target(irq_desc_get_irq_data(irq_to_desc(irq)));
++
+       return 0;
+ }