aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/irq-gic.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/irq-gic.c')
-rw-r--r--arch/mips/kernel/irq-gic.c13
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
192unsigned int gic_get_int(void) 192void 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
220unsigned 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
221static void gic_mask_irq(struct irq_data *d) 230static void gic_mask_irq(struct irq_data *d)