[PATCH v5 17/24] drm/msm/dsi/phy: Fix missing initial VCO rate
Dmitry Baryshkov
dmitry.baryshkov at oss.qualcomm.com
Fri May 2 22:48:14 UTC 2025
On Wed, Apr 30, 2025 at 03:00:47PM +0200, Krzysztof Kozlowski wrote:
> Driver unconditionally saves current state on first init in
> dsi_pll_7nm_init(), but does not save the VCO rate, only some of the
> divider registers. The state is then restored during probe/enable via
> msm_dsi_phy_enable() -> msm_dsi_phy_pll_restore_state() ->
> dsi_7nm_pll_restore_state().
>
> Restoring calls dsi_pll_7nm_vco_set_rate() with
> pll_7nm->vco_current_rate=0, which basically overwrites existing rate of
> VCO and messes with clock hierarchy, by setting frequency to 0 to clock
> tree. This makes anyway little sense - VCO rate was not saved, so
> should not be restored.
>
> If PLL was not configured configure it to minimum rate to avoid glitches
> and configuring entire in clock hierarchy to 0 Hz.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski at linaro.org>
>
> ---
>
> Changes in v5:
> 1. New patch
> ---
> drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov at oss.qualcomm.com>
Please implement similar change into the 10nm driver.
An alternative approach might be to do something like (14nm):
cached_state->vco_rate = clk_hw_get_rate(phy->vco_hw);
--
With best wishes
Dmitry
More information about the dri-devel
mailing list