linux/kernel/time
Magnus Damm a25cbd045a clocksource: setup mult_orig in clocksource_enable()
Setup clocksource mult_orig in clocksource_enable().

Clocksource drivers can save power by using keeping the
device clock disabled while the clocksource is unused.

In practice this means that the enable() and disable()
callbacks perform clk_enable() and clk_disable().

The enable() callback may also use clk_get_rate() to get
the clock rate from the clock framework. This information
can then be used to calculate the shift and mult variables.

Currently the mult_orig variable is setup from mult at
registration time only. This is conflicting with the above
case since the clock is disabled and the mult variable is
not yet calculated at the time of registration.

Moving the mult_orig setup code to clocksource_enable()
allows us to both handle the common case with no enable()
callback and the mult-changed-after-enable() case.

[ Impact: allow dynamic clock source usage ]

Signed-off-by: Magnus Damm <damm@igel.co.jp>
LKML-Reference: <20090501054546.8193.10688.sendpatchset@rx1.opensource.se>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2009-05-02 11:45:15 +02:00
..
clockevents.c clockevents: let set_mode() setup delta information 2009-01-16 12:27:39 +01:00
clocksource.c clocksource: setup mult_orig in clocksource_enable() 2009-05-02 11:45:15 +02:00
jiffies.c clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
Kconfig Kconfig: eliminate "def_bool n" constructs 2008-10-16 11:21:31 -07:00
Makefile timecompare: generic infrastructure to map between two time bases 2009-02-15 22:43:32 -08:00
ntp.c time: ntp: fix bug in ntp_update_offset() & do_adjtimex(), fix 2009-02-26 19:39:47 +01:00
tick-broadcast.c cpumask: replace for_each_cpu_mask_nr with for_each_cpu in kernel/time/ 2009-01-01 10:12:29 +10:30
tick-common.c hrtimers: allow the hot-unplugging of all cpus 2009-01-30 22:35:29 +01:00
tick-internal.h NOHZ: restart tick device from irq_enter() 2008-10-17 18:13:38 +02:00
tick-oneshot.c clockevents: remove WARN_ON which was used to gather information 2008-09-09 22:20:01 +02:00
tick-sched.c time-sched.c: tick_nohz_update_jiffies should be static 2009-01-15 12:06:56 +01:00
timecompare.c timecompare: generic infrastructure to map between two time bases 2009-02-15 22:43:32 -08:00
timekeeping.c clocksource: add enable() and disable() callbacks 2009-04-21 13:41:47 -07:00
timer_list.c Merge branch 'timers/range-hrtimers' into v28-range-hrtimers-for-linus-v2 2008-10-22 09:48:06 +02:00
timer_stats.c kernel: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00