MIPS: lantiq: Add SMP support for lantiq interrupt controller
authorPetr Cvek <petrcvekcz@gmail.com>
Thu, 20 Jun 2019 21:39:39 +0000 (23:39 +0200)
committerPaul Burton <paul.burton@mips.com>
Mon, 24 Jun 2019 21:15:04 +0000 (14:15 -0700)
commit85cf2c37cb407ed05b55b2474b6c0667b190cc83
tree2fe35570fa6e6d153c0db7e08712ad6e0be3e9aa
parentf0dd300101f316fefb19710ae83bcc97a72cdf68
MIPS: lantiq: Add SMP support for lantiq interrupt controller

Some lantiq devices have two ICU controllers. The IRQ signal is routed
to both of them and user can chose which ICU will resend the IRQ to their
respective VPE. The patch adds the support for the second ICU.

The patch changes a register definition of the driver. Instead of an
individual IM, the whole ICU is defined. This will only affects openwrt
patched kernel (vanilla doesn't have additional .dts files).

Also spinlocks has been added, both cores can RMW different bitfields
in the same register. Added affinity set function. The new VPE cpumask
will take into the action at the irq enable.

The functionality was tested on 4.14 openwrt kernel and TP-W9980B modem.

Signed-off-by: Petr Cvek <petrcvekcz@gmail.com>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: hauke@hauke-m.de
Cc: john@phrozen.org
Cc: linux-mips@vger.kernel.org
Cc: openwrt-devel@lists.openwrt.org
Cc: pakahmar@hotmail.com
arch/mips/lantiq/irq.c