OSDN Git Service

clk: ti: clkctrl: use fallback udelay approach if timekeeping is suspended
authorTero Kristo <t-kristo@ti.com>
Tue, 15 Aug 2017 08:42:17 +0000 (11:42 +0300)
committerTero Kristo <t-kristo@ti.com>
Fri, 1 Dec 2017 13:15:38 +0000 (15:15 +0200)
commit3d8598fb9c5a77837d9c0951efc5c36fdf91d87c
tree51ce4c28c45914709817e762824ad23f48ce3f54
parent5b385a45e001955a8f0fb0c98c12039002280a5e
clk: ti: clkctrl: use fallback udelay approach if timekeeping is suspended

In certain cases it is possible that the timekeeping has been suspended
already when attempting to disable/enable a clkctrl clock. This will
happen at least on am43xx platform when attempting to enable / disable
the clockevent source itself, burping out a warning from timekeeping core.

The sequence of events leading to this:
-> timekeeping_suspend()
 -> clockevents_suspend()
  -> omap_clkevt_idle()
   -> omap_hwmod_idle()
    -> _omap4_clkctrl_clk_disable()
     -> _omap4_is_timeout()

Avoid the issue by checking if the timekeeping is suspended and using
the fallback udelay approach for checking timeouts.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/ti/clkctrl.c