From d0ba01e5334afcd65eb66e167f8dd3b883dfa073 Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Sun, 23 Aug 2015 13:37:42 +0000 Subject: [PATCH] CC: mvebu: kirkwood: fix ehci-orion probe if generic-phy isn't enabled Properly treat -ENOSYS as no PHY, else ehci-orion won't work without generic phy support. Backport of r46711. Signed-off-by: Jonas Gorski SVN-Revision: 46712 --- ...ehci-orion-fix-probe-for-GENERIC_PHY.patch | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 target/linux/generic/patches-3.18/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch diff --git a/target/linux/generic/patches-3.18/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch b/target/linux/generic/patches-3.18/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch new file mode 100644 index 0000000000..5a3dc06c14 --- /dev/null +++ b/target/linux/generic/patches-3.18/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch @@ -0,0 +1,35 @@ +From a95f03e51471dbdbafd3391991d867ac2358ed02 Mon Sep 17 00:00:00 2001 +From: Jonas Gorski +Date: Sun, 23 Aug 2015 14:23:29 +0200 +Subject: [PATCH] usb: ehci-orion: fix probe for !GENERIC_PHY + +Commit d445913ce0ab7f ("usb: ehci-orion: add optional PHY support") +added support for optional phys, but devm_phy_optional_get returns +-ENOSYS if GENERIC_PHY is not enabled. + +This causes probe failures, even when there are no phys specified: + +[ 1.443365] orion-ehci f1058000.usb: init f1058000.usb fail, -38 +[ 1.449403] orion-ehci: probe of f1058000.usb failed with error -38 + +Similar to dwc3, treat -ENOSYS as no phy. + +Fixes: d445913ce0ab7f ("usb: ehci-orion: add optional PHY support") + +Signed-off-by: Jonas Gorski +--- + drivers/usb/host/ehci-orion.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/usb/host/ehci-orion.c ++++ b/drivers/usb/host/ehci-orion.c +@@ -226,7 +226,8 @@ static int ehci_orion_drv_probe(struct p + priv->phy = devm_phy_optional_get(&pdev->dev, "usb"); + if (IS_ERR(priv->phy)) { + err = PTR_ERR(priv->phy); +- goto err_phy_get; ++ if (err != -ENOSYS) ++ goto err_phy_get; + } else { + err = phy_init(priv->phy); + if (err) -- 2.30.2