clocksource: em_sti: Split clock prepare and enable steps
authorNicolai Stange <nicstange@gmail.com>
Mon, 6 Feb 2017 21:12:01 +0000 (22:12 +0100)
committerJohn Stultz <john.stultz@linaro.org>
Thu, 23 Mar 2017 19:14:02 +0000 (12:14 -0700)
commit3814ae092d36da04d5fbaf777c1564dc4ee68559
tree45a9796de826070bd5f8f0eabcac3f659b904b9c
parentc3c0a20df9fc55e2243a31f91a943b3e8ba61289
clocksource: em_sti: Split clock prepare and enable steps

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: Nicolai Stange <nicstange@gmail.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
drivers/clocksource/em_sti.c