2021-02-18 18:57:44

by Kuogee Hsieh

[permalink] [raw]
Subject: [PATCH v2 1/2] phy/qualcomm: add hbr3_hbr2 voltage and premphasis swing table

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 <[email protected]>
---
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 }
+};
+
+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


2021-02-18 19:34:28

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] phy/qualcomm: add hbr3_hbr2 voltage and premphasis swing table

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 <[email protected]>
> ---

Reviewed-by: Stephen Boyd <[email protected]>

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").

2021-02-18 19:34:28

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] phy/qualcomm: add hbr3_hbr2 voltage and premphasis swing table

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 <[email protected]>
> ---

Tested-by: Stephen Boyd <[email protected]>

2021-02-24 19:43:01

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] phy/qualcomm: add hbr3_hbr2 voltage and premphasis swing table

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 <[email protected]>
> > ---
>
> Reviewed-by: Stephen Boyd <[email protected]>
>
> 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?

2021-02-25 04:02:44

by Kuogee Hsieh

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] phy/qualcomm: add hbr3_hbr2 voltage and premphasis swing table

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 <[email protected]>
>> > ---
>>
>> Reviewed-by: Stephen Boyd <[email protected]>
>>
>> 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

2021-03-15 10:13:15

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] phy/qualcomm: add hbr3_hbr2 voltage and premphasis swing table

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 <[email protected]>
> ---
> 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

--
~Vinod