irqchip: Port the ARM IRQ drivers to GENERIC_IRQ_MULTI_HANDLER
authorPalmer Dabbelt <palmer@sifive.com>
Fri, 22 Jun 2018 17:01:22 +0000 (10:01 -0700)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 3 Aug 2018 10:14:08 +0000 (12:14 +0200)
GENERIC_IRQ_MULTI_HANDLER is incompatible with MULTI_IRQ_HANDLER because
they define the same symbols.  Multiple generic irqchip drivers select
MULTI_IRQ_HANDLER, which is now defined on all architectures that
provide set_handle_irq().

To solve this select GENERIC_IRQ_MULTI_HANDLER for all drivers that used to
select MULTI_IRQ_HANDLER, but only when MULTI_IRQ_HANDLER doesn't exist.

After that every architecture can be converted over from MULTI_IRQ_HANDLER
to GENERIC_IRQ_MULTI_HANDLER before removing the extra MULTI_IRQ_HANDLER
scaffolding.

Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: linux@armlinux.org.uk
Cc: catalin.marinas@arm.com
Cc: Will Deacon <will.deacon@arm.com>
Cc: jonas@southpole.se
Cc: stefan.kristiansson@saunalahti.fi
Cc: shorne@gmail.com
Cc: jason@lakedaemon.net
Cc: marc.zyngier@arm.com
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: nicolas.pitre@linaro.org
Cc: vladimir.murzin@arm.com
Cc: keescook@chromium.org
Cc: jinb.park7@gmail.com
Cc: yamada.masahiro@socionext.com
Cc: alexandre.belloni@bootlin.com
Cc: pombredanne@nexb.com
Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: kstewart@linuxfoundation.org
Cc: jhogan@kernel.org
Cc: mark.rutland@arm.com
Cc: ard.biesheuvel@linaro.org
Cc: james.morse@arm.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: openrisc@lists.librecores.org
Cc: Shea Levy <shea@shealevy.com>
Link: https://lkml.kernel.org/r/20180622170126.6308-2-palmer@sifive.com
drivers/irqchip/Kconfig

index e9233db16e039f08c43083eb99cc4bf3a2d744ae..7527f6a9adae05e4b79951c0b5988f50649a3c86 100644 (file)
@@ -9,6 +9,7 @@ config ARM_GIC
        select IRQ_DOMAIN
        select IRQ_DOMAIN_HIERARCHY
        select MULTI_IRQ_HANDLER
+       select GENERIC_IRQ_MULTI_HANDLER if !MULTI_IRQ_HANDLER
        select GENERIC_IRQ_EFFECTIVE_AFF_MASK
 
 config ARM_GIC_PM
@@ -35,6 +36,7 @@ config ARM_GIC_V3
        bool
        select IRQ_DOMAIN
        select MULTI_IRQ_HANDLER
+       select GENERIC_IRQ_MULTI_HANDLER if !MULTI_IRQ_HANDLER
        select IRQ_DOMAIN_HIERARCHY
        select PARTITION_PERCPU
        select GENERIC_IRQ_EFFECTIVE_AFF_MASK
@@ -67,6 +69,7 @@ config ARM_VIC
        bool
        select IRQ_DOMAIN
        select MULTI_IRQ_HANDLER
+       select GENERIC_IRQ_MULTI_HANDLER if !MULTI_IRQ_HANDLER
 
 config ARM_VIC_NR
        int
@@ -94,6 +97,7 @@ config ATMEL_AIC_IRQ
        select GENERIC_IRQ_CHIP
        select IRQ_DOMAIN
        select MULTI_IRQ_HANDLER
+       select GENERIC_IRQ_MULTI_HANDLER if !MULTI_IRQ_HANDLER
        select SPARSE_IRQ
 
 config ATMEL_AIC5_IRQ
@@ -101,6 +105,7 @@ config ATMEL_AIC5_IRQ
        select GENERIC_IRQ_CHIP
        select IRQ_DOMAIN
        select MULTI_IRQ_HANDLER
+       select GENERIC_IRQ_MULTI_HANDLER if !MULTI_IRQ_HANDLER
        select SPARSE_IRQ
 
 config I8259
@@ -138,6 +143,7 @@ config FARADAY_FTINTC010
        bool
        select IRQ_DOMAIN
        select MULTI_IRQ_HANDLER
+       select GENERIC_IRQ_MULTI_HANDLER if !MULTI_IRQ_HANDLER
        select SPARSE_IRQ
 
 config HISILICON_IRQ_MBIGEN
@@ -163,6 +169,7 @@ config CLPS711X_IRQCHIP
        depends on ARCH_CLPS711X
        select IRQ_DOMAIN
        select MULTI_IRQ_HANDLER
+       select GENERIC_IRQ_MULTI_HANDLER if !MULTI_IRQ_HANDLER
        select SPARSE_IRQ
        default y
 
@@ -182,6 +189,7 @@ config ORION_IRQCHIP
        bool
        select IRQ_DOMAIN
        select MULTI_IRQ_HANDLER
+       select GENERIC_IRQ_MULTI_HANDLER if !MULTI_IRQ_HANDLER
 
 config PIC32_EVIC
        bool