OSDN Git Service

xtensa: drop variant IRQ support
authorMax Filippov <jcmvbkbc@gmail.com>
Tue, 14 Aug 2018 01:21:08 +0000 (18:21 -0700)
committerMax Filippov <jcmvbkbc@gmail.com>
Mon, 20 Aug 2018 19:28:05 +0000 (12:28 -0700)
If an xtensa core provides an additional IRQ controller it should be
treated as a separate piece of hardware and be driven by an irqchip
driver.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/Kconfig
arch/xtensa/include/asm/irq.h
arch/xtensa/kernel/irq.c
drivers/irqchip/irq-xtensa-mx.c
drivers/irqchip/irq-xtensa-pic.c

index 4e64c9c..44b20da 100644 (file)
@@ -75,9 +75,6 @@ config TRACE_IRQFLAGS_SUPPORT
 config MMU
        def_bool n
 
-config VARIANT_IRQ_SWITCH
-       def_bool n
-
 config HAVE_XTENSA_GPIO32
        def_bool n
 
index 2270d93..6c6ed23 100644 (file)
 #include <linux/init.h>
 #include <variant/core.h>
 
-#ifdef CONFIG_VARIANT_IRQ_SWITCH
-#include <variant/irq.h>
-#else
-static inline void variant_irq_enable(unsigned int irq) { }
-static inline void variant_irq_disable(unsigned int irq) { }
-#endif
-
-#ifndef VARIANT_NR_IRQS
-# define VARIANT_NR_IRQS 0
-#endif
 #ifdef CONFIG_PLATFORM_NR_IRQS
 # define PLATFORM_NR_IRQS CONFIG_PLATFORM_NR_IRQS
 #else
 # define PLATFORM_NR_IRQS 0
 #endif
 #define XTENSA_NR_IRQS XCHAL_NUM_INTERRUPTS
-#define NR_IRQS (XTENSA_NR_IRQS + VARIANT_NR_IRQS + PLATFORM_NR_IRQS + 1)
+#define NR_IRQS (XTENSA_NR_IRQS + PLATFORM_NR_IRQS + 1)
 #define XTENSA_PIC_LINUX_IRQ(hwirq) ((hwirq) + 1)
 
-#if VARIANT_NR_IRQS == 0
-static inline void variant_init_irq(void) { }
-#else
-void variant_init_irq(void) __init;
-#endif
-
 static __inline__ int irq_canonicalize(int irq)
 {
        return (irq);
index 18e4ef3..a48bf2d 100644 (file)
@@ -158,7 +158,6 @@ void __init init_IRQ(void)
 #ifdef CONFIG_SMP
        ipi_init();
 #endif
-       variant_init_irq();
 }
 
 #ifdef CONFIG_HOTPLUG_CPU
index a15a951..e539500 100644 (file)
@@ -98,14 +98,12 @@ static void xtensa_mx_irq_unmask(struct irq_data *d)
 
 static void xtensa_mx_irq_enable(struct irq_data *d)
 {
-       variant_irq_enable(d->hwirq);
        xtensa_mx_irq_unmask(d);
 }
 
 static void xtensa_mx_irq_disable(struct irq_data *d)
 {
        xtensa_mx_irq_mask(d);
-       variant_irq_disable(d->hwirq);
 }
 
 static void xtensa_mx_irq_ack(struct irq_data *d)
index f728755..000cb54 100644 (file)
@@ -55,14 +55,12 @@ static void xtensa_irq_unmask(struct irq_data *d)
 
 static void xtensa_irq_enable(struct irq_data *d)
 {
-       variant_irq_enable(d->hwirq);
        xtensa_irq_unmask(d);
 }
 
 static void xtensa_irq_disable(struct irq_data *d)
 {
        xtensa_irq_mask(d);
-       variant_irq_disable(d->hwirq);
 }
 
 static void xtensa_irq_ack(struct irq_data *d)