diff options
Diffstat (limited to 'arch/mips/kernel/irq-gic.c')
-rw-r--r-- | arch/mips/kernel/irq-gic.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/mips/kernel/irq-gic.c b/arch/mips/kernel/irq-gic.c index 9932aef91abb..9e9d8b9a5b97 100644 --- a/arch/mips/kernel/irq-gic.c +++ b/arch/mips/kernel/irq-gic.c | |||
@@ -189,7 +189,7 @@ unsigned int gic_compare_int(void) | |||
189 | return 0; | 189 | return 0; |
190 | } | 190 | } |
191 | 191 | ||
192 | unsigned int gic_get_int(void) | 192 | void gic_get_int_mask(unsigned long *dst, const unsigned long *src) |
193 | { | 193 | { |
194 | unsigned int i; | 194 | unsigned int i; |
195 | unsigned long *pending, *intrmask, *pcpu_mask; | 195 | unsigned long *pending, *intrmask, *pcpu_mask; |
@@ -214,8 +214,17 @@ unsigned int gic_get_int(void) | |||
214 | 214 | ||
215 | bitmap_and(pending, pending, intrmask, GIC_NUM_INTRS); | 215 | bitmap_and(pending, pending, intrmask, GIC_NUM_INTRS); |
216 | bitmap_and(pending, pending, pcpu_mask, GIC_NUM_INTRS); | 216 | bitmap_and(pending, pending, pcpu_mask, GIC_NUM_INTRS); |
217 | bitmap_and(dst, src, pending, GIC_NUM_INTRS); | ||
218 | } | ||
219 | |||
220 | unsigned int gic_get_int(void) | ||
221 | { | ||
222 | DECLARE_BITMAP(interrupts, GIC_NUM_INTRS); | ||
223 | |||
224 | bitmap_fill(interrupts, GIC_NUM_INTRS); | ||
225 | gic_get_int_mask(interrupts, interrupts); | ||
217 | 226 | ||
218 | return find_first_bit(pending, GIC_NUM_INTRS); | 227 | return find_first_bit(interrupts, GIC_NUM_INTRS); |
219 | } | 228 | } |
220 | 229 | ||
221 | static void gic_mask_irq(struct irq_data *d) | 230 | static void gic_mask_irq(struct irq_data *d) |