Commit 2cc9b1c9 authored by Robert Hancock's avatar Robert Hancock Committed by Greg Kroah-Hartman
Browse files

usb: dwc3: xilinx: Fix error handling when getting USB3 PHY



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: 84770f02 ("usb: dwc3: Add driver for Xilinx platforms")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: default avatarRobert Hancock <robert.hancock@calian.com>
Link: https://lore.kernel.org/r/20220126000253.1586760-3-robert.hancock@calian.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9678f336
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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;
	}

	/*