ARM: imx: correct the hardware clock gate setting for shared nodes
authorAnson Huang <b20788@freescale.com>
Wed, 10 Dec 2014 09:51:42 +0000 (17:51 +0800)
committerShawn Guo <shawn.guo@linaro.org>
Mon, 5 Jan 2015 12:53:05 +0000 (20:53 +0800)
commit3d27bc5c313ef9f953d1a8eb6927307cdda3aa52
treee9dc9793730643de99f306b70a47c40a3cca3589
parent60ad8467c1bf0cae19ccc9d142914a2288ac85e7
ARM: imx: correct the hardware clock gate setting for shared nodes

For those clk gates which hold share count, since its is_enabled
callback is only checking the share count rather than reading
the hardware register setting, in the late phase of kernel bootup,
the clk_disable_unused action will NOT handle the scenario of
share_count is 0 but the hardware setting is enabled, actually,
U-Boot normally enables all clk gates, then those shared clk gates
will be always enabled until they are used by some modules.

So the problem would be: when kernel boot up, the usecount cat
from clk tree is 0, but the clk gates actually is enabled in
hardware register, it will confuse user and bring unnecessary power
consumption.

This patch adds .disable_unused callback and using hardware register
check for .is_enabled callback of shared nodes to handle such scenario
in late phase of kernel boot up, then the hardware status will match the
clk tree info.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
arch/arm/mach-imx/clk-gate2.c
This page took 0.025452 seconds and 5 git commands to generate.