• Stephen Boyd's avatar
    phy: qcom: qmp-combo: Fix VCO div offset on v3 · 5abed58a
    Stephen Boyd authored
    Commit ec17373a ("phy: qcom: qmp-combo: extract common function to
    setup clocks") changed the offset that is used to write to
    DP_PHY_VCO_DIV from QSERDES_V3_DP_PHY_VCO_DIV to
    QSERDES_V4_DP_PHY_VCO_DIV. Unfortunately, this offset is different
    between v3 and v4 phys:
    
     #define QSERDES_V3_DP_PHY_VCO_DIV                 0x064
     #define QSERDES_V4_DP_PHY_VCO_DIV                 0x070
    
    meaning that we write the wrong register on v3 phys now. Add another
    generic register to 'regs' and use it here instead of a version specific
    define to fix this.
    
    This was discovered after Abhinav looked over register dumps with me
    from sc7180 Trogdor devices that started failing to light up the
    external display with v6.6 based kernels. It turns out that some
    monitors are very specific about their link clk frequency and if the
    default power on reset value is still there the monitor will show a
    blank screen or a garbled display. Other monitors are perfectly happy to
    get a bad clock signal.
    
    Cc: Douglas Anderson <dianders@chromium.org>
    Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Fixes: ec17373a ("phy: qcom: qmp-combo: extract common function to setup clocks")
    Signed-off-by: default avatarStephen Boyd <swboyd@chromium.org>
    Reviewed-by: default avatarAbhinav Kumar <quic_abhinavk@quicinc.com>
    Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20240404234345.1446300-1-swboyd@chromium.orgSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
    5abed58a
phy-qcom-qmp-combo.c 128 KB