[PATCH v3] drm/msm/dsi: Fix 14nm DSI PHY PLL Lock issue
Dmitry Baryshkov
dmitry.baryshkov at oss.qualcomm.com
Sat Jul 19 09:19:50 UTC 2025
On Wed, Jul 09, 2025 at 04:08:36PM +0200, Loic Poulain wrote:
> To configure and enable the DSI PHY PLL clocks, the MDSS AHB clock must
> be active for MMIO operations. Typically, this AHB clock is enabled as
> part of the DSI PHY interface enabling (dsi_phy_enable_resource).
>
> However, since these PLL clocks are registered as clock entities, they
> can be enabled independently of the DSI PHY interface, leading to
> enabling failures and subsequent warnings:
>
> ```
> msm_dsi_phy 5e94400.phy: [drm:dsi_pll_14nm_vco_prepare] *ERROR* DSI PLL lock failed
> ------------[ cut here ]------------
> dsi0pllbyte already disabled
> WARNING: CPU: 3 PID: 1 at drivers/clk/clk.c:1194 clk_core_disable+0xa4/0xac
> CPU: 3 UID: 0 PID: 1 Comm: swapper/0 Tainted:
> Tainted: [W]=WARN
> Hardware name: Qualcomm Technologies, Inc. Robotics RB1 (DT)
> pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [...]
> ```
>
> This issue is particularly prevalent at boot time during the disabling of
> unused clocks (clk_disable_unused()) which includes enabling the parent
> clock(s) when CLK_OPS_PARENT_ENABLE flag is set (this is the case for the
> 14nm DSI PHY PLL consumers).
>
> To resolve this issue, we move the AHB clock as a PM dependency of the DSI
> PHY device (via pm_clk). Since the DSI PHY device is the parent of the PLL
> clocks, this resolves the PLL/AHB dependency. Now the AHB clock is enabled
> prior the PLL clk_prepare callback, as part of the runtime-resume chain.
>
> We also eliminate dsi_phy_[enable|disable]_resource functions, which are
> superseded by runtime PM.
>
> Note that it breaks compatibility with kernels before 6.0, as we do not
> support anymore the legacy `iface_clk` name.
>
> Signed-off-by: Loic Poulain <loic.poulain at oss.qualcomm.com>
> ---
> v3: Drop extra pm_runtime calls from probe
> Reword resume error on message
> Document compatibility break
>
> v2: Move AHB clock into a proper PM dep instead of manually toggling it
> from the PLL clock driver.
>
> drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 59 ++++++++-------------------
> drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 1 -
> 2 files changed, 18 insertions(+), 42 deletions(-)
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov at oss.qualcomm.com>
--
With best wishes
Dmitry
More information about the dri-devel
mailing list