mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-29 21:06:41 +07:00
usb: ehci-omap: Fix deferred probe for phy handling
PHY model is being used on omap5 platforms even if port mode is not OMAP_EHCI_PORT_MODE_PHY. So don't guess if PHY is required or not based on PHY mode. If PHY is provided in device tree, it must be required. So, if devm_usb_get_phy_by_phandle() gives us an error code other than -ENODEV (no PHY) then error out. This fixes USB Ethernet on omap5-uevm if PHY happens to probe after EHCI thus causing a -EPROBE_DEFER. Cc: Johan Hovold <johan@kernel.org> Cc: Ladislav Michl <ladis@linux-mips.org> Reported-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Roger Quadros <rogerq@ti.com> Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Tony Lindgren <tony@atomide.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c3788cd996
commit
8dc7623bf6
@ -159,11 +159,12 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev)
|
||||
/* get the PHY device */
|
||||
phy = devm_usb_get_phy_by_phandle(dev, "phys", i);
|
||||
if (IS_ERR(phy)) {
|
||||
/* Don't bail out if PHY is not absolutely necessary */
|
||||
if (pdata->port_mode[i] != OMAP_EHCI_PORT_MODE_PHY)
|
||||
continue;
|
||||
|
||||
ret = PTR_ERR(phy);
|
||||
if (ret == -ENODEV) { /* no PHY */
|
||||
phy = NULL;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ret != -EPROBE_DEFER)
|
||||
dev_err(dev, "Can't get PHY for port %d: %d\n",
|
||||
i, ret);
|
||||
|
Loading…
Reference in New Issue
Block a user