CLOCKSOURCE: mips-gic: Split clocksource and clockevent initialization
authorEzequiel Garcia <ezequiel.garcia@imgtec.com>
Mon, 27 Jul 2015 14:00:14 +0000 (15:00 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Thu, 3 Sep 2015 10:08:06 +0000 (12:08 +0200)
This is preparation work for the introduction of clockevent frequency
update with a clock notifier. This is only possible when the device
is passed a clk struct, so let's split the legacy and devicetree
initialization.

Reviewed-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@imgtec.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: linux-kernel@vger.kernel.org
Cc: linux-mips@linux-mips.org
Cc: devicetree@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: James Hartley <James.Hartley@imgtec.com>
Cc: Govindraj Raja <Govindraj.Raja@imgtec.com>
Cc: Damien Horsley <Damien.Horsley@imgtec.com>
Cc: James Hogan <James.Hogan@imgtec.com>
Cc: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Patchwork: https://patchwork.linux-mips.org/patch/10781/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
drivers/clocksource/mips-gic-timer.c

index c4352f078492384d83f6fb66f3379152bc581721..22a4daf5f0c8bd0344c86149d138c07e313556d3 100644 (file)
@@ -142,11 +142,6 @@ static void __init __gic_clocksource_init(void)
        ret = clocksource_register_hz(&gic_clocksource, gic_frequency);
        if (ret < 0)
                pr_warn("GIC: Unable to register clocksource\n");
-
-       gic_clockevent_init();
-
-       /* And finally start the counter */
-       gic_start_count();
 }
 
 void __init gic_clocksource_init(unsigned int frequency)
@@ -156,6 +151,10 @@ void __init gic_clocksource_init(unsigned int frequency)
                GIC_LOCAL_TO_HWIRQ(GIC_LOCAL_INT_COMPARE);
 
        __gic_clocksource_init();
+       gic_clockevent_init();
+
+       /* And finally start the counter */
+       gic_start_count();
 }
 
 static void __init gic_clocksource_of_init(struct device_node *node)
@@ -187,6 +186,10 @@ static void __init gic_clocksource_of_init(struct device_node *node)
        }
 
        __gic_clocksource_init();
+       gic_clockevent_init();
+
+       /* And finally start the counter */
+       gic_start_count();
 }
 CLOCKSOURCE_OF_DECLARE(mips_gic_timer, "mti,gic-timer",
                       gic_clocksource_of_init);