Message ID | 1613667070-27613-1-git-send-email-khsieh@codeaurora.org (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | [v2,1/2] phy/qualcomm: add hbr3_hbr2 voltage and premphasis swing table | expand |
Quoting Kuogee Hsieh (2021-02-18 08:51:10) > Add hbr3_hbr2 voltage and premphasis swing table to support > HBR3 link rate. > > Changes in V2: > -- replaced upper case with lower case at hbr3_hbr2 table > > Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org> > --- Reviewed-by: Stephen Boyd <swboyd@chromium.org> BTW, the DP driver already set rates for HBR2, so does that mean this is fixing the voltage and preemphasis settings for HBR2? If so we should backport this to stable trees and mark it as fixing commit 52e013d0bffa ("phy: qcom-qmp: Add support for DP in USB3+DP combo phy").
Quoting Kuogee Hsieh (2021-02-18 08:51:10) > Add hbr3_hbr2 voltage and premphasis swing table to support > HBR3 link rate. > > Changes in V2: > -- replaced upper case with lower case at hbr3_hbr2 table > > Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org> > --- Tested-by: Stephen Boyd <swboyd@chromium.org>
Quoting Stephen Boyd (2021-02-18 10:46:17) > Quoting Kuogee Hsieh (2021-02-18 08:51:10) > > Add hbr3_hbr2 voltage and premphasis swing table to support > > HBR3 link rate. > > > > Changes in V2: > > -- replaced upper case with lower case at hbr3_hbr2 table > > > > Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org> > > --- > > Reviewed-by: Stephen Boyd <swboyd@chromium.org> > > BTW, the DP driver already set rates for HBR2, so does that mean this is > fixing the voltage and preemphasis settings for HBR2? If so we should > backport this to stable trees and mark it as fixing commit 52e013d0bffa > ("phy: qcom-qmp: Add support for DP in USB3+DP combo phy"). Yes? No?
On 2021-02-24 11:39, Stephen Boyd wrote: > Quoting Stephen Boyd (2021-02-18 10:46:17) >> Quoting Kuogee Hsieh (2021-02-18 08:51:10) >> > Add hbr3_hbr2 voltage and premphasis swing table to support >> > HBR3 link rate. >> > >> > Changes in V2: >> > -- replaced upper case with lower case at hbr3_hbr2 table >> > >> > Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org> >> > --- >> >> Reviewed-by: Stephen Boyd <swboyd@chromium.org> >> >> BTW, the DP driver already set rates for HBR2, so does that mean this >> is >> fixing the voltage and preemphasis settings for HBR2? If so we should >> backport this to stable trees and mark it as fixing commit >> 52e013d0bffa >> ("phy: qcom-qmp: Add support for DP in USB3+DP combo phy"). > > Yes? No? yes
On 18-02-21, 08:51, Kuogee Hsieh wrote: > Add hbr3_hbr2 voltage and premphasis swing table to support > HBR3 link rate. Please use phy: qcom-qmp: "...." for the patch title > > Changes in V2: > -- replaced upper case with lower case at hbr3_hbr2 table > > Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org> > --- > drivers/phy/qualcomm/phy-qcom-qmp.c | 23 +++++++++++++++++++++-- > 1 file changed, 21 insertions(+), 2 deletions(-) > > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp.c b/drivers/phy/qualcomm/phy-qcom-qmp.c > index 0939a9e..4dcc074 100644 > --- a/drivers/phy/qualcomm/phy-qcom-qmp.c > +++ b/drivers/phy/qualcomm/phy-qcom-qmp.c > @@ -2965,6 +2965,20 @@ static void qcom_qmp_phy_dp_aux_init(struct qmp_phy *qphy) > qphy->pcs + QSERDES_V3_DP_PHY_AUX_INTERRUPT_MASK); > } > > +static const u8 qmp_dp_v3_pre_emphasis_hbr3_hbr2[4][4] = { > + { 0x00, 0x0c, 0x15, 0x1a }, > + { 0x02, 0x0e, 0x16, 0xff }, > + { 0x02, 0x11, 0xff, 0xff }, > + { 0x04, 0xff, 0xff, 0xff } This should use tabs and not spaces, please fix this and resend the patch after running checkpatch --strict and adding Steve's acks > +}; > + > +static const u8 qmp_dp_v3_voltage_swing_hbr3_hbr2[4][4] = { > + { 0x02, 0x12, 0x16, 0x1a }, > + { 0x09, 0x19, 0x1f, 0xff }, > + { 0x10, 0x1f, 0xff, 0xff }, > + { 0x1f, 0xff, 0xff, 0xff } > +}; > + > static const u8 qmp_dp_v3_pre_emphasis_hbr_rbr[4][4] = { > { 0x00, 0x0c, 0x14, 0x19 }, > { 0x00, 0x0b, 0x12, 0xff }, > @@ -3000,8 +3014,13 @@ static void qcom_qmp_phy_configure_dp_tx(struct qmp_phy *qphy) > drvr_en = 0x10; > } > > - voltage_swing_cfg = qmp_dp_v3_voltage_swing_hbr_rbr[v_level][p_level]; > - pre_emphasis_cfg = qmp_dp_v3_pre_emphasis_hbr_rbr[v_level][p_level]; > + if (dp_opts->link_rate <= 2700) { > + voltage_swing_cfg = qmp_dp_v3_voltage_swing_hbr_rbr[v_level][p_level]; > + pre_emphasis_cfg = qmp_dp_v3_pre_emphasis_hbr_rbr[v_level][p_level]; > + } else { > + voltage_swing_cfg = qmp_dp_v3_voltage_swing_hbr3_hbr2[v_level][p_level]; > + pre_emphasis_cfg = qmp_dp_v3_pre_emphasis_hbr3_hbr2[v_level][p_level]; > + } > > /* TODO: Move check to config check */ > if (voltage_swing_cfg == 0xFF && pre_emphasis_cfg == 0xFF) > -- > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, > a Linux Foundation Collaborative Project
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp.c b/drivers/phy/qualcomm/phy-qcom-qmp.c index 0939a9e..4dcc074 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp.c @@ -2965,6 +2965,20 @@ static void qcom_qmp_phy_dp_aux_init(struct qmp_phy *qphy) qphy->pcs + QSERDES_V3_DP_PHY_AUX_INTERRUPT_MASK); } +static const u8 qmp_dp_v3_pre_emphasis_hbr3_hbr2[4][4] = { + { 0x00, 0x0c, 0x15, 0x1a }, + { 0x02, 0x0e, 0x16, 0xff }, + { 0x02, 0x11, 0xff, 0xff }, + { 0x04, 0xff, 0xff, 0xff } +}; + +static const u8 qmp_dp_v3_voltage_swing_hbr3_hbr2[4][4] = { + { 0x02, 0x12, 0x16, 0x1a }, + { 0x09, 0x19, 0x1f, 0xff }, + { 0x10, 0x1f, 0xff, 0xff }, + { 0x1f, 0xff, 0xff, 0xff } +}; + static const u8 qmp_dp_v3_pre_emphasis_hbr_rbr[4][4] = { { 0x00, 0x0c, 0x14, 0x19 }, { 0x00, 0x0b, 0x12, 0xff }, @@ -3000,8 +3014,13 @@ static void qcom_qmp_phy_configure_dp_tx(struct qmp_phy *qphy) drvr_en = 0x10; } - voltage_swing_cfg = qmp_dp_v3_voltage_swing_hbr_rbr[v_level][p_level]; - pre_emphasis_cfg = qmp_dp_v3_pre_emphasis_hbr_rbr[v_level][p_level]; + if (dp_opts->link_rate <= 2700) { + voltage_swing_cfg = qmp_dp_v3_voltage_swing_hbr_rbr[v_level][p_level]; + pre_emphasis_cfg = qmp_dp_v3_pre_emphasis_hbr_rbr[v_level][p_level]; + } else { + voltage_swing_cfg = qmp_dp_v3_voltage_swing_hbr3_hbr2[v_level][p_level]; + pre_emphasis_cfg = qmp_dp_v3_pre_emphasis_hbr3_hbr2[v_level][p_level]; + } /* TODO: Move check to config check */ if (voltage_swing_cfg == 0xFF && pre_emphasis_cfg == 0xFF)
Add hbr3_hbr2 voltage and premphasis swing table to support HBR3 link rate. Changes in V2: -- replaced upper case with lower case at hbr3_hbr2 table Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org> --- drivers/phy/qualcomm/phy-qcom-qmp.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-)