Skip to content

Commit 5c294de

Browse files
jhovoldgregkh
authored andcommitted
Revert "usb: dwc3: disable USB core PHY management"
This reverts commit 6000b8d. The offending commit disabled the USB core PHY management as the dwc3 already manages the PHYs in question. Unfortunately some platforms have started relying on having USB core also controlling the PHY and this is specifically currently needed on some Exynos platforms for PHY calibration or connected device may fail to enumerate. The PHY calibration was previously handled in the dwc3 driver, but to work around some issues related to how the dwc3 driver interacts with xhci (e.g. using multiple drivers) this was moved to USB core by commits 34c7ed7 ("usb: core: phy: add support for PHY calibration") and a0a4655 ("usb: dwc3: remove generic PHY calibrate() calls"). The same PHY obviously should not be controlled from two different places, which for example do no agree on the PHY mode or power state during suspend, but as the offending patch was backported to stable, let's revert it for now. Reported-by: Stefan Agner <[email protected]> Link: https://lore.kernel.org/lkml/[email protected]/ Fixes: 6000b8d ("usb: dwc3: disable USB core PHY management") Cc: [email protected] Signed-off-by: Johan Hovold <[email protected]> Tested-by: Marek Szyprowski <[email protected]> Acked-by: Thinh Nguyen <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent ffb9da4 commit 5c294de

File tree

1 file changed

+0
-10
lines changed

1 file changed

+0
-10
lines changed

drivers/usb/dwc3/host.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,8 @@
1111
#include <linux/of.h>
1212
#include <linux/platform_device.h>
1313

14-
#include "../host/xhci-plat.h"
1514
#include "core.h"
1615

17-
static const struct xhci_plat_priv dwc3_xhci_plat_priv = {
18-
.quirks = XHCI_SKIP_PHY_INIT,
19-
};
20-
2116
static void dwc3_host_fill_xhci_irq_res(struct dwc3 *dwc,
2217
int irq, char *name)
2318
{
@@ -97,11 +92,6 @@ int dwc3_host_init(struct dwc3 *dwc)
9792
goto err;
9893
}
9994

100-
ret = platform_device_add_data(xhci, &dwc3_xhci_plat_priv,
101-
sizeof(dwc3_xhci_plat_priv));
102-
if (ret)
103-
goto err;
104-
10595
memset(props, 0, sizeof(struct property_entry) * ARRAY_SIZE(props));
10696

10797
if (dwc->usb3_lpm_capable)

0 commit comments

Comments
 (0)