diff options
-rw-r--r-- | arch/arc/include/asm/irqflags.h | 18 | ||||
-rw-r--r-- | arch/arc/kernel/irq.c | 20 |
2 files changed, 14 insertions, 24 deletions
diff --git a/arch/arc/include/asm/irqflags.h b/arch/arc/include/asm/irqflags.h index cb7efc29f16f..587df8236e8b 100644 --- a/arch/arc/include/asm/irqflags.h +++ b/arch/arc/include/asm/irqflags.h | |||
@@ -131,24 +131,6 @@ static inline int arch_irqs_disabled(void) | |||
131 | return arch_irqs_disabled_flags(arch_local_save_flags()); | 131 | return arch_irqs_disabled_flags(arch_local_save_flags()); |
132 | } | 132 | } |
133 | 133 | ||
134 | static inline void arch_mask_irq(unsigned int irq) | ||
135 | { | ||
136 | unsigned int ienb; | ||
137 | |||
138 | ienb = read_aux_reg(AUX_IENABLE); | ||
139 | ienb &= ~(1 << irq); | ||
140 | write_aux_reg(AUX_IENABLE, ienb); | ||
141 | } | ||
142 | |||
143 | static inline void arch_unmask_irq(unsigned int irq) | ||
144 | { | ||
145 | unsigned int ienb; | ||
146 | |||
147 | ienb = read_aux_reg(AUX_IENABLE); | ||
148 | ienb |= (1 << irq); | ||
149 | write_aux_reg(AUX_IENABLE, ienb); | ||
150 | } | ||
151 | |||
152 | #else | 134 | #else |
153 | 135 | ||
154 | #ifdef CONFIG_TRACE_IRQFLAGS | 136 | #ifdef CONFIG_TRACE_IRQFLAGS |
diff --git a/arch/arc/kernel/irq.c b/arch/arc/kernel/irq.c index 02ffc764c97a..620ec2fe32a9 100644 --- a/arch/arc/kernel/irq.c +++ b/arch/arc/kernel/irq.c | |||
@@ -55,20 +55,28 @@ void arc_init_IRQ(void) | |||
55 | * below, per IRQ. | 55 | * below, per IRQ. |
56 | */ | 56 | */ |
57 | 57 | ||
58 | static void arc_mask_irq(struct irq_data *data) | 58 | static void arc_irq_mask(struct irq_data *data) |
59 | { | 59 | { |
60 | arch_mask_irq(data->irq); | 60 | unsigned int ienb; |
61 | |||
62 | ienb = read_aux_reg(AUX_IENABLE); | ||
63 | ienb &= ~(1 << data->irq); | ||
64 | write_aux_reg(AUX_IENABLE, ienb); | ||
61 | } | 65 | } |
62 | 66 | ||
63 | static void arc_unmask_irq(struct irq_data *data) | 67 | static void arc_irq_unmask(struct irq_data *data) |
64 | { | 68 | { |
65 | arch_unmask_irq(data->irq); | 69 | unsigned int ienb; |
70 | |||
71 | ienb = read_aux_reg(AUX_IENABLE); | ||
72 | ienb |= (1 << data->irq); | ||
73 | write_aux_reg(AUX_IENABLE, ienb); | ||
66 | } | 74 | } |
67 | 75 | ||
68 | static struct irq_chip onchip_intc = { | 76 | static struct irq_chip onchip_intc = { |
69 | .name = "ARC In-core Intc", | 77 | .name = "ARC In-core Intc", |
70 | .irq_mask = arc_mask_irq, | 78 | .irq_mask = arc_irq_mask, |
71 | .irq_unmask = arc_unmask_irq, | 79 | .irq_unmask = arc_irq_unmask, |
72 | }; | 80 | }; |
73 | 81 | ||
74 | static int arc_intc_domain_map(struct irq_domain *d, unsigned int irq, | 82 | static int arc_intc_domain_map(struct irq_domain *d, unsigned int irq, |