2024-03-28 21:08:28

by Kuogee Hsieh

[permalink] [raw]
Subject: [PATCH v1] phy/qcom-qmp-combo: propagate correct return value at phy_power_on()

Currently qmp_combo_dp_power_on() always return 0 in regardless of
return value of cfg->configure_dp_phy(). This patch propagate
return value of cfg->configure_dp_phy() all the way back to caller.

Signed-off-by: Kuogee Hsieh <[email protected]>
---
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
index 36632fa..884973a 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
@@ -2754,6 +2754,7 @@ static int qmp_combo_dp_power_on(struct phy *phy)
const struct qmp_phy_cfg *cfg = qmp->cfg;
void __iomem *tx = qmp->dp_tx;
void __iomem *tx2 = qmp->dp_tx2;
+ int ret = 0;

mutex_lock(&qmp->phy_mutex);

@@ -2766,11 +2767,11 @@ static int qmp_combo_dp_power_on(struct phy *phy)
cfg->configure_dp_tx(qmp);

/* Configure link rate, swing, etc. */
- cfg->configure_dp_phy(qmp);
+ ret = cfg->configure_dp_phy(qmp);

mutex_unlock(&qmp->phy_mutex);

- return 0;
+ return ret;
}

static int qmp_combo_dp_power_off(struct phy *phy)
--
2.7.4



2024-03-28 21:37:09

by Abhinav Kumar

[permalink] [raw]
Subject: Re: [PATCH v1] phy/qcom-qmp-combo: propagate correct return value at phy_power_on()



On 3/28/2024 2:07 PM, Kuogee Hsieh wrote:
> Currently qmp_combo_dp_power_on() always return 0 in regardless of
> return value of cfg->configure_dp_phy(). This patch propagate
> return value of cfg->configure_dp_phy() all the way back to caller.
>

This is good. But I am also thinking if we should add some prints in
this driver like it doesnt even tell where it failed like here


ret = qmp_v456_configure_dp_phy(qmp);
if (ret < 0)
return ret;

> Signed-off-by: Kuogee Hsieh <[email protected]>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>

Also, I think we should have

Fixes: 94a407cc17a4 ("phy: qcom-qmp: create copies of QMP PHY driver")

If there is a better fixes tag for this, please let me know.

> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
> index 36632fa..884973a 100644
> --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
> @@ -2754,6 +2754,7 @@ static int qmp_combo_dp_power_on(struct phy *phy)
> const struct qmp_phy_cfg *cfg = qmp->cfg;
> void __iomem *tx = qmp->dp_tx;
> void __iomem *tx2 = qmp->dp_tx2;
> + int ret = 0;
>
> mutex_lock(&qmp->phy_mutex);
>
> @@ -2766,11 +2767,11 @@ static int qmp_combo_dp_power_on(struct phy *phy)
> cfg->configure_dp_tx(qmp);
>
> /* Configure link rate, swing, etc. */
> - cfg->configure_dp_phy(qmp);
> + ret = cfg->configure_dp_phy(qmp);
>
> mutex_unlock(&qmp->phy_mutex);
>
> - return 0;
> + return ret;
> }
>
> static int qmp_combo_dp_power_off(struct phy *phy)

2024-03-28 22:36:28

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH v1] phy/qcom-qmp-combo: propagate correct return value at phy_power_on()

On Thu, 28 Mar 2024 at 23:36, Abhinav Kumar <[email protected]> wrote:
>
>
>
> On 3/28/2024 2:07 PM, Kuogee Hsieh wrote:
> > Currently qmp_combo_dp_power_on() always return 0 in regardless of
> > return value of cfg->configure_dp_phy(). This patch propagate
> > return value of cfg->configure_dp_phy() all the way back to caller.
> >
>
> This is good. But I am also thinking if we should add some prints in
> this driver like it doesnt even tell where it failed like here
>
>
> ret = qmp_v456_configure_dp_phy(qmp);
> if (ret < 0)
> return ret;
>
> > Signed-off-by: Kuogee Hsieh <[email protected]>
> > ---
> > drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
>
> Also, I think we should have
>
> Fixes: 94a407cc17a4 ("phy: qcom-qmp: create copies of QMP PHY driver")
>
> If there is a better fixes tag for this, please let me know.

Fixes: 52e013d0bffa ("phy: qcom-qmp: Add support for DP in USB3+DP combo phy")

Otherwise LGTM

>
> > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
> > index 36632fa..884973a 100644
> > --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
> > +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
> > @@ -2754,6 +2754,7 @@ static int qmp_combo_dp_power_on(struct phy *phy)
> > const struct qmp_phy_cfg *cfg = qmp->cfg;
> > void __iomem *tx = qmp->dp_tx;
> > void __iomem *tx2 = qmp->dp_tx2;
> > + int ret = 0;
> >
> > mutex_lock(&qmp->phy_mutex);
> >
> > @@ -2766,11 +2767,11 @@ static int qmp_combo_dp_power_on(struct phy *phy)
> > cfg->configure_dp_tx(qmp);
> >
> > /* Configure link rate, swing, etc. */
> > - cfg->configure_dp_phy(qmp);
> > + ret = cfg->configure_dp_phy(qmp);
> >
> > mutex_unlock(&qmp->phy_mutex);
> >
> > - return 0;
> > + return ret;
> > }
> >
> > static int qmp_combo_dp_power_off(struct phy *phy)



--
With best wishes
Dmitry

2024-03-29 00:28:00

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH v1] phy/qcom-qmp-combo: propagate correct return value at phy_power_on()

Quoting Kuogee Hsieh (2024-03-28 14:07:15)
> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
> index 36632fa..884973a 100644
> --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
> @@ -2754,6 +2754,7 @@ static int qmp_combo_dp_power_on(struct phy *phy)
> const struct qmp_phy_cfg *cfg = qmp->cfg;
> void __iomem *tx = qmp->dp_tx;
> void __iomem *tx2 = qmp->dp_tx2;
> + int ret = 0;

Please don't initialize locals that are unused before being assigned
unconditionally.

>
> mutex_lock(&qmp->phy_mutex);
>
> @@ -2766,11 +2767,11 @@ static int qmp_combo_dp_power_on(struct phy *phy)
> cfg->configure_dp_tx(qmp);
>
> /* Configure link rate, swing, etc. */
> - cfg->configure_dp_phy(qmp);
> + ret = cfg->configure_dp_phy(qmp);
>
> mutex_unlock(&qmp->phy_mutex);
>
> - return 0;
> + return ret;
> }