omap3-pandora-kernel: add a few more USB TV card modules
[openpandora.oe.git] / recipes / linux / omap3-pandora-kernel / timer-suppression.patch
1 diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
2 index b854a89..26f5569 100644
3 --- a/kernel/time/tick-sched.c
4 +++ b/kernel/time/tick-sched.c
5 @@ -253,6 +253,16 @@ void tick_nohz_stop_sched_tick(void)
6  
7         /* Schedule the tick, if we are at least one jiffie off */
8         if ((long)delta_jiffies >= 1) {
9 +               /*
10 +                * calculate the expiry time for the next timer wheel
11 +                * timer
12 +                */
13 +               expires = ktime_add_ns(last_update, tick_period.tv64 *
14 +                                       delta_jiffies);
15 +
16 +               /* Skip reprogram of event if its not changed */
17 +               if(ts->tick_stopped && ktime_equal(expires, dev->next_event))
18 +               goto out2;
19  
20                 if (delta_jiffies > 1)
21                         cpu_set(cpu, nohz_cpu_mask);
22 @@ -304,12 +314,7 @@ void tick_nohz_stop_sched_tick(void)
23                         goto out;
24                 }
25  
26 -               /*
27 -                * calculate the expiry time for the next timer wheel
28 -                * timer
29 -                */
30 -               expires = ktime_add_ns(last_update, tick_period.tv64 *
31 -                                      delta_jiffies);
32 +               /* Mark expiries */
33                 ts->idle_expires = expires;
34  
35                 if (ts->nohz_mode == NOHZ_MODE_HIGHRES) {
36 @@ -328,6 +333,7 @@ void tick_nohz_stop_sched_tick(void)
37                 tick_do_update_jiffies64(ktime_get());
38                 cpu_clear(cpu, nohz_cpu_mask);
39         }
40 +out2:  
41         raise_softirq_irqoff(TIMER_SOFTIRQ);
42  out:
43         ts->next_jiffies = next_jiffies;