Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

phy: qcom: qmp-combo: fix VCO div offset on v5_5nm and v6

Commit 5abed58a8bde ("phy: qcom: qmp-combo: Fix VCO div offset on v3")
fixed a regression introduced in 6.5 by making sure that the correct
offset is used for the DP_PHY_VCO_DIV register on v3 hardware.

Unfortunately, that fix instead broke DisplayPort on v5_5nm and v6
hardware as it failed to add the corresponding offsets also to those
register tables.

Fixes: 815891eee668 ("phy: qcom-qmp-combo: Introduce orientation variable")
Fixes: 5abed58a8bde ("phy: qcom: qmp-combo: Fix VCO div offset on v3")
Cc: stable@vger.kernel.org # 6.5: 5abed58a8bde
Cc: Stephen Boyd <swboyd@chromium.org>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Link: https://lore.kernel.org/r/20240408093023.506-1-johan+linaro@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Johan Hovold and committed by
Vinod Koul
025a6f74 e1c9216b

+4
+2
drivers/phy/qualcomm/phy-qcom-qmp-combo.c
··· 153 153 [QPHY_COM_BIAS_EN_CLKBUFLR_EN] = QSERDES_V5_COM_BIAS_EN_CLKBUFLR_EN, 154 154 155 155 [QPHY_DP_PHY_STATUS] = QSERDES_V5_DP_PHY_STATUS, 156 + [QPHY_DP_PHY_VCO_DIV] = QSERDES_V5_DP_PHY_VCO_DIV, 156 157 157 158 [QPHY_TX_TX_POL_INV] = QSERDES_V5_5NM_TX_TX_POL_INV, 158 159 [QPHY_TX_TX_DRV_LVL] = QSERDES_V5_5NM_TX_TX_DRV_LVL, ··· 178 177 [QPHY_COM_BIAS_EN_CLKBUFLR_EN] = QSERDES_V6_COM_PLL_BIAS_EN_CLK_BUFLR_EN, 179 178 180 179 [QPHY_DP_PHY_STATUS] = QSERDES_V6_DP_PHY_STATUS, 180 + [QPHY_DP_PHY_VCO_DIV] = QSERDES_V6_DP_PHY_VCO_DIV, 181 181 182 182 [QPHY_TX_TX_POL_INV] = QSERDES_V6_TX_TX_POL_INV, 183 183 [QPHY_TX_TX_DRV_LVL] = QSERDES_V6_TX_TX_DRV_LVL,
+1
drivers/phy/qualcomm/phy-qcom-qmp-dp-phy-v5.h
··· 7 7 #define QCOM_PHY_QMP_DP_PHY_V5_H_ 8 8 9 9 /* Only for QMP V5 PHY - DP PHY registers */ 10 + #define QSERDES_V5_DP_PHY_VCO_DIV 0x070 10 11 #define QSERDES_V5_DP_PHY_AUX_INTERRUPT_STATUS 0x0d8 11 12 #define QSERDES_V5_DP_PHY_STATUS 0x0dc 12 13
+1
drivers/phy/qualcomm/phy-qcom-qmp-dp-phy-v6.h
··· 7 7 #define QCOM_PHY_QMP_DP_PHY_V6_H_ 8 8 9 9 /* Only for QMP V6 PHY - DP PHY registers */ 10 + #define QSERDES_V6_DP_PHY_VCO_DIV 0x070 10 11 #define QSERDES_V6_DP_PHY_AUX_INTERRUPT_STATUS 0x0e0 11 12 #define QSERDES_V6_DP_PHY_STATUS 0x0e4 12 13