|
@@ -321,25 +321,12 @@ static int ttc_rate_change_clockevent_cb(struct notifier_block *nb,
|
|
|
|
|
|
switch (event) {
|
|
switch (event) {
|
|
case POST_RATE_CHANGE:
|
|
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 */
|
|
/* update cached frequency */
|
|
ttc->freq = ndata->new_rate;
|
|
ttc->freq = ndata->new_rate;
|
|
|
|
|
|
|
|
+ clockevents_update_freq(&ttcce->ce, ndata->new_rate / PRESCALE);
|
|
|
|
+
|
|
/* fall through */
|
|
/* fall through */
|
|
- }
|
|
|
|
case PRE_RATE_CHANGE:
|
|
case PRE_RATE_CHANGE:
|
|
case ABORT_RATE_CHANGE:
|
|
case ABORT_RATE_CHANGE:
|
|
default:
|
|
default:
|