aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bresticker <[email protected]>2014-10-20 12:04:03 -0700
committerRalf Baechle <[email protected]>2014-11-24 07:45:15 +0100
commitf7ea3060b60a8f32794aa094f9216b198083d232 (patch)
treec7f0edef222b826183891c1bbc3f0cc6399766e5
parent001f5fe72cf6434f00fccf2b628f6843de1c3d4f (diff)
clocksource: mips-gic: Use percpu_dev_id
Since the GIC timer IRQ is a percpu IRQ, we can use percpu_dev_id to pass the IRQ handler the correct clock_event_device. Signed-off-by: Andrew Bresticker <[email protected]> Cc: Daniel Lezcano <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Jason Cooper <[email protected]> Cc: Paul Burton <[email protected]> Cc: Qais Yousef <[email protected]> Cc: John Crispin <[email protected]> Cc: [email protected] Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/8138/ Signed-off-by: Ralf Baechle <[email protected]>
-rw-r--r--drivers/clocksource/mips-gic-timer.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/clocksource/mips-gic-timer.c b/drivers/clocksource/mips-gic-timer.c
index 763aa1c9130f..05bdfe1e3e03 100644
--- a/drivers/clocksource/mips-gic-timer.c
+++ b/drivers/clocksource/mips-gic-timer.c
@@ -39,17 +39,16 @@ static void gic_set_clock_mode(enum clock_event_mode mode,
static irqreturn_t gic_compare_interrupt(int irq, void *dev_id)
{
- struct clock_event_device *cd;
- int cpu = smp_processor_id();
+ struct clock_event_device *cd = dev_id;
gic_write_compare(gic_read_compare());
- cd = &per_cpu(gic_clockevent_device, cpu);
cd->event_handler(cd);
return IRQ_HANDLED;
}
struct irqaction gic_compare_irqaction = {
.handler = gic_compare_interrupt,
+ .percpu_dev_id = &gic_clockevent_device,
.flags = IRQF_PERCPU | IRQF_TIMER,
.name = "timer",
};