[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-rockchip
mailing list