xtensa: drop variant IRQ support
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>
This commit is contained in:
parent
fc862ee997
commit
8b5163eb98
|
@ -75,9 +75,6 @@ config TRACE_IRQFLAGS_SUPPORT
|
||||||
config MMU
|
config MMU
|
||||||
def_bool n
|
def_bool n
|
||||||
|
|
||||||
config VARIANT_IRQ_SWITCH
|
|
||||||
def_bool n
|
|
||||||
|
|
||||||
config HAVE_XTENSA_GPIO32
|
config HAVE_XTENSA_GPIO32
|
||||||
def_bool n
|
def_bool n
|
||||||
|
|
||||||
|
|
|
@ -14,31 +14,15 @@
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <variant/core.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
|
#ifdef CONFIG_PLATFORM_NR_IRQS
|
||||||
# define PLATFORM_NR_IRQS CONFIG_PLATFORM_NR_IRQS
|
# define PLATFORM_NR_IRQS CONFIG_PLATFORM_NR_IRQS
|
||||||
#else
|
#else
|
||||||
# define PLATFORM_NR_IRQS 0
|
# define PLATFORM_NR_IRQS 0
|
||||||
#endif
|
#endif
|
||||||
#define XTENSA_NR_IRQS XCHAL_NUM_INTERRUPTS
|
#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)
|
#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)
|
static __inline__ int irq_canonicalize(int irq)
|
||||||
{
|
{
|
||||||
return (irq);
|
return (irq);
|
||||||
|
|
|
@ -158,7 +158,6 @@ void __init init_IRQ(void)
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
ipi_init();
|
ipi_init();
|
||||||
#endif
|
#endif
|
||||||
variant_init_irq();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_HOTPLUG_CPU
|
#ifdef CONFIG_HOTPLUG_CPU
|
||||||
|
|
|
@ -98,14 +98,12 @@ static void xtensa_mx_irq_unmask(struct irq_data *d)
|
||||||
|
|
||||||
static void xtensa_mx_irq_enable(struct irq_data *d)
|
static void xtensa_mx_irq_enable(struct irq_data *d)
|
||||||
{
|
{
|
||||||
variant_irq_enable(d->hwirq);
|
|
||||||
xtensa_mx_irq_unmask(d);
|
xtensa_mx_irq_unmask(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xtensa_mx_irq_disable(struct irq_data *d)
|
static void xtensa_mx_irq_disable(struct irq_data *d)
|
||||||
{
|
{
|
||||||
xtensa_mx_irq_mask(d);
|
xtensa_mx_irq_mask(d);
|
||||||
variant_irq_disable(d->hwirq);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xtensa_mx_irq_ack(struct irq_data *d)
|
static void xtensa_mx_irq_ack(struct irq_data *d)
|
||||||
|
|
|
@ -55,14 +55,12 @@ static void xtensa_irq_unmask(struct irq_data *d)
|
||||||
|
|
||||||
static void xtensa_irq_enable(struct irq_data *d)
|
static void xtensa_irq_enable(struct irq_data *d)
|
||||||
{
|
{
|
||||||
variant_irq_enable(d->hwirq);
|
|
||||||
xtensa_irq_unmask(d);
|
xtensa_irq_unmask(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xtensa_irq_disable(struct irq_data *d)
|
static void xtensa_irq_disable(struct irq_data *d)
|
||||||
{
|
{
|
||||||
xtensa_irq_mask(d);
|
xtensa_irq_mask(d);
|
||||||
variant_irq_disable(d->hwirq);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xtensa_irq_ack(struct irq_data *d)
|
static void xtensa_irq_ack(struct irq_data *d)
|
||||||
|
|
Loading…
Reference in New Issue