• Anson Huang's avatar
    ARM: imx: correct the hardware clock gate setting for shared nodes · 3d27bc5c
    Anson Huang authored
    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: default avatarAnson Huang <b20788@freescale.com>
    Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
    3d27bc5c
clk-gate2.c 3.54 KB