diff mbox series

[v5,2/2] usb: dwc3: xilinx: Fix error handling when getting USB3 PHY

Message ID 20220120170818.1311306-3-robert.hancock@calian.com (mailing list archive)
State Superseded
Headers show
Series Xilinx ZynqMP USB fixes | expand

Commit Message

Robert Hancock Jan. 20, 2022, 5:08 p.m. UTC
The code that looked up the USB3 PHY was ignoring all errors other than
EPROBE_DEFER in an attempt to handle the PHY not being present. Fix and
simplify the code by using devm_phy_optional_get and dev_err_probe so
that a missing PHY is not treated as an error and unexpected errors
are handled properly.

Fixes: 84770f028fab ("usb: dwc3: Add driver for Xilinx platforms")
Signed-off-by: Robert Hancock <robert.hancock@calian.com>
---
 drivers/usb/dwc3/dwc3-xilinx.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Michal Simek Jan. 21, 2022, 7:54 a.m. UTC | #1
On 1/20/22 18:08, Robert Hancock wrote:
> The code that looked up the USB3 PHY was ignoring all errors other than
> EPROBE_DEFER in an attempt to handle the PHY not being present. Fix and
> simplify the code by using devm_phy_optional_get and dev_err_probe so
> that a missing PHY is not treated as an error and unexpected errors
> are handled properly.
> 
> Fixes: 84770f028fab ("usb: dwc3: Add driver for Xilinx platforms")
> Signed-off-by: Robert Hancock <robert.hancock@calian.com>
> ---
>   drivers/usb/dwc3/dwc3-xilinx.c | 10 +++++-----
>   1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/usb/dwc3/dwc3-xilinx.c b/drivers/usb/dwc3/dwc3-xilinx.c
> index 3bc035376394..3b16e7610009 100644
> --- a/drivers/usb/dwc3/dwc3-xilinx.c
> +++ b/drivers/usb/dwc3/dwc3-xilinx.c
> @@ -102,12 +102,12 @@ static int dwc3_xlnx_init_zynqmp(struct dwc3_xlnx *priv_data)
>   	int			ret;
>   	u32			reg;
>   
> -	usb3_phy = devm_phy_get(dev, "usb3-phy");
> -	if (PTR_ERR(usb3_phy) == -EPROBE_DEFER) {
> -		ret = -EPROBE_DEFER;
> +	usb3_phy = devm_phy_optional_get(dev, "usb3-phy");
> +	if (IS_ERR(usb3_phy)) {
> +		ret = PTR_ERR(usb3_phy);
> +		dev_err_probe(dev, ret,
> +			      "failed to get USB3 PHY\n");

nit: Doesn't it fit to one line?

M
Robert Hancock Jan. 21, 2022, 5:16 p.m. UTC | #2
On Fri, 2022-01-21 at 08:54 +0100, Michal Simek wrote:
> 
> On 1/20/22 18:08, Robert Hancock wrote:
> > The code that looked up the USB3 PHY was ignoring all errors other than
> > EPROBE_DEFER in an attempt to handle the PHY not being present. Fix and
> > simplify the code by using devm_phy_optional_get and dev_err_probe so
> > that a missing PHY is not treated as an error and unexpected errors
> > are handled properly.
> > 
> > Fixes: 84770f028fab ("usb: dwc3: Add driver for Xilinx platforms")
> > Signed-off-by: Robert Hancock <robert.hancock@calian.com>
> > ---
> >   drivers/usb/dwc3/dwc3-xilinx.c | 10 +++++-----
> >   1 file changed, 5 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/usb/dwc3/dwc3-xilinx.c b/drivers/usb/dwc3/dwc3-
> > xilinx.c
> > index 3bc035376394..3b16e7610009 100644
> > --- a/drivers/usb/dwc3/dwc3-xilinx.c
> > +++ b/drivers/usb/dwc3/dwc3-xilinx.c
> > @@ -102,12 +102,12 @@ static int dwc3_xlnx_init_zynqmp(struct dwc3_xlnx
> > *priv_data)
> >   	int			ret;
> >   	u32			reg;
> >   
> > -	usb3_phy = devm_phy_get(dev, "usb3-phy");
> > -	if (PTR_ERR(usb3_phy) == -EPROBE_DEFER) {
> > -		ret = -EPROBE_DEFER;
> > +	usb3_phy = devm_phy_optional_get(dev, "usb3-phy");
> > +	if (IS_ERR(usb3_phy)) {
> > +		ret = PTR_ERR(usb3_phy);
> > +		dev_err_probe(dev, ret,
> > +			      "failed to get USB3 PHY\n");
> 
> nit: Doesn't it fit to one line?
> 
> M

Yup, not sure why I wrapped the lines. Will change.
diff mbox series

Patch

diff --git a/drivers/usb/dwc3/dwc3-xilinx.c b/drivers/usb/dwc3/dwc3-xilinx.c
index 3bc035376394..3b16e7610009 100644
--- a/drivers/usb/dwc3/dwc3-xilinx.c
+++ b/drivers/usb/dwc3/dwc3-xilinx.c
@@ -102,12 +102,12 @@  static int dwc3_xlnx_init_zynqmp(struct dwc3_xlnx *priv_data)
 	int			ret;
 	u32			reg;
 
-	usb3_phy = devm_phy_get(dev, "usb3-phy");
-	if (PTR_ERR(usb3_phy) == -EPROBE_DEFER) {
-		ret = -EPROBE_DEFER;
+	usb3_phy = devm_phy_optional_get(dev, "usb3-phy");
+	if (IS_ERR(usb3_phy)) {
+		ret = PTR_ERR(usb3_phy);
+		dev_err_probe(dev, ret,
+			      "failed to get USB3 PHY\n");
 		goto err;
-	} else if (IS_ERR(usb3_phy)) {
-		usb3_phy = NULL;
 	}
 
 	crst = devm_reset_control_get_exclusive(dev, "usb_crst");