[PATCH v3] clk-divider: make sure read-only dividers do not write to their register

Stephen Boyd sboyd at codeaurora.org
Fri Jan 29 17:29:23 PST 2016


On 01/21, Heiko Stuebner wrote:
> Commit e6d5e7d90be9 ("clk-divider: Fix READ_ONLY when divider > 1") removed
> the special ops struct for read-only clocks and instead opted to handle
> them inside the regular ops.
> 
> On the rk3368 this results in breakage as aclkm now gets set a value.
> While it is the same divider value, the A53 core still doesn't like it,
> which can result in the cpu ending up in a hang.
> The reason being that "ACLKENMasserts one clock cycle before the rising
> edge of ACLKM" and the clock should only be touched when STANDBYWFIL2
> is asserted.
> 
> To fix this, reintroduce the read-only ops but do include the round_rate
> callback. That way no writes that may be unsafe are done to the divider
> register in any case.
> 
> The Rockchip use of the clk_divider_ops is adapted to this split again,
> as is the nxp, lpc18xx-ccu driver that was included since the original
> commit. On lpc18xx-ccu the divider seems to always be read-only
> so only uses the new ops now.
> 
> Fixes: e6d5e7d90be9 ("clk-divider: Fix READ_ONLY when divider > 1")
> Reported-by: Zhang Qing <zhangqing at rock-chips.com>
> Signed-off-by: Heiko Stuebner <heiko at sntech.de>
> ---

Applied to clk-next

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project



More information about the linux-arm-kernel mailing list