Merge tag 'drm-intel-fixes-2014-08-08' of git://anongit.freedesktop.org/drm-intel
[firefly-linux-kernel-4.4.55.git] / drivers / clocksource / timer-marco.c
index 7f5374dbefd933d41ae5b64333d1cc8d9b52a6ce..330e93064692b881c1245dd2b4a64ab5a29cabd4 100644 (file)
@@ -252,16 +252,17 @@ static void __init sirfsoc_clockevent_init(void)
 }
 
 /* initialize the kernel jiffy timer source */
-static void __init sirfsoc_marco_timer_init(void)
+static void __init sirfsoc_marco_timer_init(struct device_node *np)
 {
        unsigned long rate;
        u32 timer_div;
        struct clk *clk;
 
-       /* timer's input clock is io clock */
-       clk = clk_get_sys("io", NULL);
-
+       clk = of_clk_get(np, 0);
        BUG_ON(IS_ERR(clk));
+
+       BUG_ON(clk_prepare_enable(clk));
+
        rate = clk_get_rate(clk);
 
        BUG_ON(rate < MARCO_CLOCK_FREQ);
@@ -303,6 +304,6 @@ static void __init sirfsoc_of_timer_init(struct device_node *np)
        if (!sirfsoc_timer1_irq.irq)
                panic("No irq passed for timer1 via DT\n");
 
-       sirfsoc_marco_timer_init();
+       sirfsoc_marco_timer_init(np);
 }
 CLOCKSOURCE_OF_DECLARE(sirfsoc_marco_timer, "sirf,marco-tick", sirfsoc_of_timer_init );