clocksource/cadence_ttc: Call clockevents_update_freq() with IRQs enabled
authorSoren Brinkmann <soren.brinkmann@xilinx.com>
Wed, 19 Feb 2014 23:14:41 +0000 (15:14 -0800)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Tue, 11 Mar 2014 22:05:18 +0000 (23:05 +0100)
The timer core takes care of serialization and IRQs. Hence the driver is
no longer required to disable interrupts when calling
clockevents_update_freq().

Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Michal Simek <michal.simek@xilinx.com>
drivers/clocksource/cadence_ttc_timer.c

index 63f176de0d0228c63ba58f606d21afd98cdc5e9e..f05b9fdc7425354432fb270e227dd76eb03e6723 100644 (file)
@@ -321,25 +321,12 @@ static int ttc_rate_change_clockevent_cb(struct notifier_block *nb,
 
        switch (event) {
        case POST_RATE_CHANGE:
-       {
-               unsigned long flags;
-
-               /*
-                * clockevents_update_freq should be called with IRQ disabled on
-                * the CPU the timer provides events for. The timer we use is
-                * common to both CPUs, not sure if we need to run on both
-                * cores.
-                */
-               local_irq_save(flags);
-               clockevents_update_freq(&ttcce->ce,
-                               ndata->new_rate / PRESCALE);
-               local_irq_restore(flags);
-
                /* update cached frequency */
                ttc->freq = ndata->new_rate;
 
+               clockevents_update_freq(&ttcce->ce, ndata->new_rate / PRESCALE);
+
                /* fall through */
-       }
        case PRE_RATE_CHANGE:
        case ABORT_RATE_CHANGE:
        default: