aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci-omap.c
diff options
context:
space:
mode:
authorRoger Quadros <rogerq@ti.com>2013-03-12 06:44:49 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-03-15 14:53:52 -0400
commita2f450ca88a394e282f09e5e16f9de60cd487f80 (patch)
treec6ad5d2aa6e2f02972b006fde73613b0919aef12 /drivers/usb/host/ehci-omap.c
parenta1ae0affee119e6deb937d157aa8b43319c1d6f3 (diff)
USB: ehci-omap: Try to get PHY even if not in PHY mode
Even when not in PHY mode, the USB device on the port (e.g. HUB) might need resources like RESET which can be modelled as a PHY device. So try to get the PHY device in any case. Signed-off-by: Roger Quadros <rogerq@ti.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/ehci-omap.c')
-rw-r--r--drivers/usb/host/ehci-omap.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index 45cd01e29252..1ba1df89a436 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -202,15 +202,16 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev)
202 for (i = 0 ; i < omap->nports ; i++) { 202 for (i = 0 ; i < omap->nports ; i++) {
203 struct usb_phy *phy; 203 struct usb_phy *phy;
204 204
205 if (pdata->port_mode[i] != OMAP_EHCI_PORT_MODE_PHY)
206 continue;
207
208 /* get the PHY device */ 205 /* get the PHY device */
209 if (dev->of_node) 206 if (dev->of_node)
210 phy = devm_usb_get_phy_by_phandle(dev, "phys", i); 207 phy = devm_usb_get_phy_by_phandle(dev, "phys", i);
211 else 208 else
212 phy = devm_usb_get_phy_dev(dev, i); 209 phy = devm_usb_get_phy_dev(dev, i);
213 if (IS_ERR(phy) || !phy) { 210 if (IS_ERR(phy) || !phy) {
211 /* Don't bail out if PHY is not absolutely necessary */
212 if (pdata->port_mode[i] != OMAP_EHCI_PORT_MODE_PHY)
213 continue;
214
214 ret = IS_ERR(phy) ? PTR_ERR(phy) : -ENODEV; 215 ret = IS_ERR(phy) ? PTR_ERR(phy) : -ENODEV;
215 dev_err(dev, "Can't get PHY device for port %d: %d\n", 216 dev_err(dev, "Can't get PHY device for port %d: %d\n",
216 i, ret); 217 i, ret);