aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arc
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2014-06-25 07:55:46 -0400
committerVineet Gupta <vgupta@synopsys.com>2014-07-23 01:52:02 -0400
commit590892deb650fa152698f0a2f4eba44789e51c38 (patch)
treee7aa306095776f66d028b179995e84a8dec7147f /arch/arc
parent25c7c11fa5642ee426fc9fe54661ffeed809413f (diff)
ARC: [intc] mask/unmask can be hidden again
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc')
-rw-r--r--arch/arc/include/asm/irqflags.h18
-rw-r--r--arch/arc/kernel/irq.c20
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
134static 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
143static 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
58static void arc_mask_irq(struct irq_data *data) 58static 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
63static void arc_unmask_irq(struct irq_data *data) 67static 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
68static struct irq_chip onchip_intc = { 76static 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
74static int arc_intc_domain_map(struct irq_domain *d, unsigned int irq, 82static int arc_intc_domain_map(struct irq_domain *d, unsigned int irq,