• B
    PM / clock_ops: fix up clk prepare/unprepare count · 8a6720ec
    Ben Dooks 提交于
    The drivers/base/power/clock_ops.c file is causing warnings from
    the clock driver (as shown below) due to failing to do a clk_prepare()
    call before enabling a clock. It also fails to check the balance of
    prepare/unprepare as __pm_clk_remove() do clk_disable_unprepare() call.
    
    This bug has probably been in since commit b2476490 ("clk: introduce
    the common clock framework") as the warning was part of the original
    commit. It is strange that it has not been noticed (although this has
    also been coupled with a failure for certain SH builds to not build the
    necessary glue to use this method of controlling the clocks).
    
    In summary, this is probably needed in several stable branches but need
    advice on which ones.
    
    On the Renesas Lager board, this causes numerous warnings of the following
    and even worse the clock system will not enable clocks, causing drivers
    that are in development to fail to work:
    
    WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:883 __clk_enable+0x2c/0xa0()
    Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk>
    Reviewed-by: NIan Molton <ian.molton@codethink.co.uk>
    Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    8a6720ec
clock_ops.c 11.2 KB