diff options
Diffstat (limited to 'arch/mips/kernel/irq-gic.c')
-rw-r--r-- | arch/mips/kernel/irq-gic.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/mips/kernel/irq-gic.c b/arch/mips/kernel/irq-gic.c index 8520dad6d4e3..88e4c323382c 100644 --- a/arch/mips/kernel/irq-gic.c +++ b/arch/mips/kernel/irq-gic.c | |||
@@ -54,6 +54,21 @@ void gic_write_compare(cycle_t cnt) | |||
54 | (int)(cnt & 0xffffffff)); | 54 | (int)(cnt & 0xffffffff)); |
55 | } | 55 | } |
56 | 56 | ||
57 | void gic_write_cpu_compare(cycle_t cnt, int cpu) | ||
58 | { | ||
59 | unsigned long flags; | ||
60 | |||
61 | local_irq_save(flags); | ||
62 | |||
63 | GICWRITE(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR), cpu); | ||
64 | GICWRITE(GIC_REG(VPE_OTHER, GIC_VPE_COMPARE_HI), | ||
65 | (int)(cnt >> 32)); | ||
66 | GICWRITE(GIC_REG(VPE_OTHER, GIC_VPE_COMPARE_LO), | ||
67 | (int)(cnt & 0xffffffff)); | ||
68 | |||
69 | local_irq_restore(flags); | ||
70 | } | ||
71 | |||
57 | cycle_t gic_read_compare(void) | 72 | cycle_t gic_read_compare(void) |
58 | { | 73 | { |
59 | unsigned int hi, lo; | 74 | unsigned int hi, lo; |