[PATCH] usb: core: phy: Fix usb_phy_roothub_add_phy if GENERIC_PHY=n

Stefan Wahren stefan.wahren at i2se.com
Sat Mar 31 12:28:28 PDT 2018

If the generic PHY support is disabled the stub of devm_of_phy_get_by_index
returns ENOSYS. This corner case isn't handled properly by
usb_phy_roothub_add_phy and at least breaks USB support on Raspberry Pi

    dwc2 20980000.usb: dwc2_hcd_init() FAILED, returning -38
    dwc2: probe of 20980000.usb failed with error -38

Fixes: 07dbff0ddbd8 ("usb: core: add a wrapper for the USB PHYs on the HCD")
Signed-off-by: Stefan Wahren <stefan.wahren at i2se.com>
 drivers/usb/core/phy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/core/phy.c b/drivers/usb/core/phy.c
index 09b7c43..c89e9be 100644
--- a/drivers/usb/core/phy.c
+++ b/drivers/usb/core/phy.c
@@ -39,7 +39,7 @@ static int usb_phy_roothub_add_phy(struct device *dev, int index,
 	struct phy *phy = devm_of_phy_get_by_index(dev, dev->of_node, index);
 	if (IS_ERR_OR_NULL(phy)) {
-		if (!phy || PTR_ERR(phy) == -ENODEV)
+		if (!phy || PTR_ERR(phy) == -ENODEV || PTR_ERR(phy) == -ENOSYS)
 			return 0;
 			return PTR_ERR(phy);

More information about the linux-rpi-kernel mailing list