]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
phy: qcom: edp: Unify generic DP/eDP swing and pre-emphasis tables
authorYongxing Mou <yongxing.mou@oss.qualcomm.com>
Mon, 27 Apr 2026 06:35:19 +0000 (14:35 +0800)
committerVinod Koul <vkoul@kernel.org>
Sun, 3 May 2026 17:04:47 +0000 (22:34 +0530)
The current eDP and DP swing/pre-emphasis tables do not match the HPG
requirements for the supported platforms, correct the table accordingly.

The generic tables which can be shared as follows:

DP mode:
-sa8775p/sc7280/sc8280xp/x1e80100
-glymur
-sc8180x
eDP mode(low vdiff):
-glymur/sa8775p/sc8280xp/x1e80100
-sc7280
-sc8180x

The proper tables for SC8180X and SC7280 will be added in a later patch,
since they need separate table.

Cc: stable@vger.kernel.org
Fixes: f199223cb490 ("phy: qcom: Introduce new eDP PHY driver")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Yongxing Mou <yongxing.mou@oss.qualcomm.com>
Link: https://patch.msgid.link/20260427-edp_phy-v5-1-3bb876824475@oss.qualcomm.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/qualcomm/phy-qcom-edp.c

index 7372de05a0b8113efc09802073aa8f4d722dec08..2af3fd63832fb1457fff88a55d74b9bf76fe9193 100644 (file)
@@ -116,17 +116,17 @@ struct qcom_edp {
 };
 
 static const u8 dp_swing_hbr_rbr[4][4] = {
-       { 0x08, 0x0f, 0x16, 0x1f },
+       { 0x07, 0x0f, 0x16, 0x1f },
        { 0x11, 0x1e, 0x1f, 0xff },
        { 0x16, 0x1f, 0xff, 0xff },
        { 0x1f, 0xff, 0xff, 0xff }
 };
 
 static const u8 dp_pre_emp_hbr_rbr[4][4] = {
-       { 0x00, 0x0d, 0x14, 0x1a },
+       { 0x00, 0x0e, 0x15, 0x1a },
        { 0x00, 0x0e, 0x15, 0xff },
        { 0x00, 0x0e, 0xff, 0xff },
-       { 0x03, 0xff, 0xff, 0xff }
+       { 0x04, 0xff, 0xff, 0xff }
 };
 
 static const u8 dp_swing_hbr2_hbr3[4][4] = {
@@ -158,7 +158,7 @@ static const u8 edp_swing_hbr_rbr[4][4] = {
 };
 
 static const u8 edp_pre_emp_hbr_rbr[4][4] = {
-       { 0x05, 0x12, 0x17, 0x1d },
+       { 0x05, 0x11, 0x17, 0x1d },
        { 0x05, 0x11, 0x18, 0xff },
        { 0x06, 0x11, 0xff, 0xff },
        { 0x00, 0xff, 0xff, 0xff }
@@ -172,10 +172,10 @@ static const u8 edp_swing_hbr2_hbr3[4][4] = {
 };
 
 static const u8 edp_pre_emp_hbr2_hbr3[4][4] = {
-       { 0x08, 0x11, 0x17, 0x1b },
-       { 0x00, 0x0c, 0x13, 0xff },
-       { 0x05, 0x10, 0xff, 0xff },
-       { 0x00, 0xff, 0xff, 0xff }
+       { 0x0c, 0x15, 0x19, 0x1e },
+       { 0x0b, 0x15, 0x19, 0xff },
+       { 0x0e, 0x14, 0xff, 0xff },
+       { 0x0d, 0xff, 0xff, 0xff }
 };
 
 static const struct qcom_edp_swing_pre_emph_cfg edp_phy_swing_pre_emph_cfg = {
@@ -193,27 +193,6 @@ static const u8 edp_phy_vco_div_cfg_v4[4] = {
        0x01, 0x01, 0x02, 0x00,
 };
 
-static const u8 edp_pre_emp_hbr_rbr_v5[4][4] = {
-       { 0x05, 0x11, 0x17, 0x1d },
-       { 0x05, 0x11, 0x18, 0xff },
-       { 0x06, 0x11, 0xff, 0xff },
-       { 0x00, 0xff, 0xff, 0xff }
-};
-
-static const u8 edp_pre_emp_hbr2_hbr3_v5[4][4] = {
-       { 0x0c, 0x15, 0x19, 0x1e },
-       { 0x0b, 0x15, 0x19, 0xff },
-       { 0x0e, 0x14, 0xff, 0xff },
-       { 0x0d, 0xff, 0xff, 0xff }
-};
-
-static const struct qcom_edp_swing_pre_emph_cfg edp_phy_swing_pre_emph_cfg_v5 = {
-       .swing_hbr_rbr = &edp_swing_hbr_rbr,
-       .swing_hbr3_hbr2 = &edp_swing_hbr2_hbr3,
-       .pre_emphasis_hbr_rbr = &edp_pre_emp_hbr_rbr_v5,
-       .pre_emphasis_hbr3_hbr2 = &edp_pre_emp_hbr2_hbr3_v5,
-};
-
 static const u8 edp_phy_aux_cfg_v5[DP_AUX_CFG_SIZE] = {
        0x00, 0x13, 0xa4, 0x00, 0x0a, 0x26, 0x0a, 0x03, 0x37, 0x03, 0x02, 0x02, 0x00,
 };
@@ -564,7 +543,7 @@ static const struct qcom_edp_phy_cfg sa8775p_dp_phy_cfg = {
        .is_edp = false,
        .aux_cfg = edp_phy_aux_cfg_v5,
        .vco_div_cfg = edp_phy_vco_div_cfg_v4,
-       .swing_pre_emph_cfg = &edp_phy_swing_pre_emph_cfg_v5,
+       .swing_pre_emph_cfg = &edp_phy_swing_pre_emph_cfg,
        .ver_ops = &qcom_edp_phy_ops_v4,
 };
 
@@ -945,7 +924,7 @@ static const struct phy_ver_ops qcom_edp_phy_ops_v8 = {
 static struct qcom_edp_phy_cfg glymur_phy_cfg = {
        .aux_cfg = edp_phy_aux_cfg_v8,
        .vco_div_cfg = edp_phy_vco_div_cfg_v8,
-       .swing_pre_emph_cfg = &edp_phy_swing_pre_emph_cfg_v5,
+       .swing_pre_emph_cfg = &edp_phy_swing_pre_emph_cfg,
        .ver_ops = &qcom_edp_phy_ops_v8,
 };