Loading arch/xtensa/Kconfig +3 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,9 @@ source "kernel/Kconfig.freezer" config MMU def_bool n config VARIANT_IRQ_SWITCH def_bool n menu "Processor type and features" choice Loading arch/xtensa/include/asm/irq.h +7 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,13 @@ #include <platform/hardware.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 PLATFORM_NR_IRQS # define PLATFORM_NR_IRQS 0 #endif Loading arch/xtensa/kernel/irq.c +14 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,18 @@ static void xtensa_irq_unmask(unsigned int irq) set_sr (cached_irq_mask, INTENABLE); } static void xtensa_irq_enable(unsigned int irq) { variant_irq_enable(irq); xtensa_irq_unmask(irq); } static void xtensa_irq_disable(unsigned int irq) { xtensa_irq_mask(irq); variant_irq_disable(irq); } static void xtensa_irq_ack(unsigned int irq) { set_sr(1 << irq, INTCLEAR); Loading @@ -146,6 +158,8 @@ static int xtensa_irq_retrigger(unsigned int irq) static struct irq_chip xtensa_irq_chip = { .name = "xtensa", .enable = xtensa_irq_enable, .disable = xtensa_irq_disable, .mask = xtensa_irq_mask, .unmask = xtensa_irq_unmask, .ack = xtensa_irq_ack, Loading Loading
arch/xtensa/Kconfig +3 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,9 @@ source "kernel/Kconfig.freezer" config MMU def_bool n config VARIANT_IRQ_SWITCH def_bool n menu "Processor type and features" choice Loading
arch/xtensa/include/asm/irq.h +7 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,13 @@ #include <platform/hardware.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 PLATFORM_NR_IRQS # define PLATFORM_NR_IRQS 0 #endif Loading
arch/xtensa/kernel/irq.c +14 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,18 @@ static void xtensa_irq_unmask(unsigned int irq) set_sr (cached_irq_mask, INTENABLE); } static void xtensa_irq_enable(unsigned int irq) { variant_irq_enable(irq); xtensa_irq_unmask(irq); } static void xtensa_irq_disable(unsigned int irq) { xtensa_irq_mask(irq); variant_irq_disable(irq); } static void xtensa_irq_ack(unsigned int irq) { set_sr(1 << irq, INTCLEAR); Loading @@ -146,6 +158,8 @@ static int xtensa_irq_retrigger(unsigned int irq) static struct irq_chip xtensa_irq_chip = { .name = "xtensa", .enable = xtensa_irq_enable, .disable = xtensa_irq_disable, .mask = xtensa_irq_mask, .unmask = xtensa_irq_unmask, .ack = xtensa_irq_ack, Loading