diff options
Diffstat (limited to 'arch/xtensa/kernel/irq.c')
-rw-r--r-- | arch/xtensa/kernel/irq.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/xtensa/kernel/irq.c b/arch/xtensa/kernel/irq.c index f3b66fba5b8f..a36c85edd045 100644 --- a/arch/xtensa/kernel/irq.c +++ b/arch/xtensa/kernel/irq.c | |||
@@ -132,6 +132,18 @@ static void xtensa_irq_unmask(unsigned int irq) | |||
132 | set_sr (cached_irq_mask, INTENABLE); | 132 | set_sr (cached_irq_mask, INTENABLE); |
133 | } | 133 | } |
134 | 134 | ||
135 | static void xtensa_irq_enable(unsigned int irq) | ||
136 | { | ||
137 | variant_irq_enable(irq); | ||
138 | xtensa_irq_unmask(irq); | ||
139 | } | ||
140 | |||
141 | static void xtensa_irq_disable(unsigned int irq) | ||
142 | { | ||
143 | xtensa_irq_mask(irq); | ||
144 | variant_irq_disable(irq); | ||
145 | } | ||
146 | |||
135 | static void xtensa_irq_ack(unsigned int irq) | 147 | static void xtensa_irq_ack(unsigned int irq) |
136 | { | 148 | { |
137 | set_sr(1 << irq, INTCLEAR); | 149 | set_sr(1 << irq, INTCLEAR); |
@@ -146,6 +158,8 @@ static int xtensa_irq_retrigger(unsigned int irq) | |||
146 | 158 | ||
147 | static struct irq_chip xtensa_irq_chip = { | 159 | static struct irq_chip xtensa_irq_chip = { |
148 | .name = "xtensa", | 160 | .name = "xtensa", |
161 | .enable = xtensa_irq_enable, | ||
162 | .disable = xtensa_irq_disable, | ||
149 | .mask = xtensa_irq_mask, | 163 | .mask = xtensa_irq_mask, |
150 | .unmask = xtensa_irq_unmask, | 164 | .unmask = xtensa_irq_unmask, |
151 | .ack = xtensa_irq_ack, | 165 | .ack = xtensa_irq_ack, |