Merge tag 'hyperv-fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / drivers / clocksource / timer-imx-gpt.c
index 165fbbb..706c0d0 100644 (file)
@@ -141,21 +141,25 @@ static u64 notrace mxc_read_sched_clock(void)
        return sched_clock_reg ? readl_relaxed(sched_clock_reg) : 0;
 }
 
+#if defined(CONFIG_ARM)
 static struct delay_timer imx_delay_timer;
 
 static unsigned long imx_read_current_timer(void)
 {
        return readl_relaxed(sched_clock_reg);
 }
+#endif
 
 static int __init mxc_clocksource_init(struct imx_timer *imxtm)
 {
        unsigned int c = clk_get_rate(imxtm->clk_per);
        void __iomem *reg = imxtm->base + imxtm->gpt->reg_tcn;
 
+#if defined(CONFIG_ARM)
        imx_delay_timer.read_current_timer = &imx_read_current_timer;
        imx_delay_timer.freq = c;
        register_current_timer_delay(&imx_delay_timer);
+#endif
 
        sched_clock_reg = reg;
 
@@ -198,15 +202,8 @@ static int v2_set_next_event(unsigned long evt,
 static int mxc_shutdown(struct clock_event_device *ced)
 {
        struct imx_timer *imxtm = to_imx_timer(ced);
-       unsigned long flags;
        u32 tcn;
 
-       /*
-        * The timer interrupt generation is disabled at least
-        * for enough time to call mxc_set_next_event()
-        */
-       local_irq_save(flags);
-
        /* Disable interrupt in GPT module */
        imxtm->gpt->gpt_irq_disable(imxtm);
 
@@ -221,21 +218,12 @@ static int mxc_shutdown(struct clock_event_device *ced)
        printk(KERN_INFO "%s: changing mode\n", __func__);
 #endif /* DEBUG */
 
-       local_irq_restore(flags);
-
        return 0;
 }
 
 static int mxc_set_oneshot(struct clock_event_device *ced)
 {
        struct imx_timer *imxtm = to_imx_timer(ced);
-       unsigned long flags;
-
-       /*
-        * The timer interrupt generation is disabled at least
-        * for enough time to call mxc_set_next_event()
-        */
-       local_irq_save(flags);
 
        /* Disable interrupt in GPT module */
        imxtm->gpt->gpt_irq_disable(imxtm);
@@ -260,7 +248,6 @@ static int mxc_set_oneshot(struct clock_event_device *ced)
         * mode switching
         */
        imxtm->gpt->gpt_irq_enable(imxtm);
-       local_irq_restore(flags);
 
        return 0;
 }