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.kozlow...@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.barysh...@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