Message ID | 20220120170818.1311306-3-robert.hancock@calian.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Xilinx ZynqMP USB fixes | expand |
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
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 --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");
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(-)