• Magnus Damm's avatar
    clocksource: setup mult_orig in clocksource_enable() · a25cbd04
    Magnus Damm authored
    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: default avatarMagnus Damm <damm@igel.co.jp>
    LKML-Reference: <20090501054546.8193.10688.sendpatchset@rx1.opensource.se>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    a25cbd04
clocksource.c 15.9 KB