• Nicolai Stange's avatar
    clocksource: em_sti: Split clock prepare and enable steps · 3814ae09
    Nicolai Stange authored
    Currently, the em_sti driver prepares and enables the needed clock in
    em_sti_enable(), potentially called through its clockevent device's
    ->set_state_oneshot().
    
    However, the clk_prepare() step may sleep whereas tick_program_event() and
    thus, ->set_state_oneshot(), can be called in atomic context.
    
    Split the clk_prepare_enable() in em_sti_enable() into two steps:
    - prepare the clock at device probing via clk_prepare()
    - and enable it in em_sti_enable() via clk_enable().
    Slightly reorder resource initialization in em_sti_probe() in order to
    facilitate error handling in later patches.
    Signed-off-by: default avatarNicolai Stange <nicstange@gmail.com>
    Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
    3814ae09
em_sti.c 9.3 KB