Hi, Marek Szyprowski writes: > Commit 08f871a3aca2 ("usb: dwc3: host: convey the PHYs to xhci") added > forwarding of the generic PHYs from DWC3 core to the instantiated XHCI-plat > device. However XHCI(-plat) driver never gained support for generic PHYs, > thus the lookup added by that commit is never used. In meantime the commit > d64ff406e51e ("usb: dwc3: use bus->sysdev for DMA configuration") > incorrectly changed the device used for creating lookup, making the lookup > useless and generic PHYs inaccessible from XHCI device. > > However since commit 178a0bce05cb ("usb: core: hcd: integrate the PHY > wrapper into the HCD core") USB HCD already handles generic PHYs acquired > from the HCD's 'sysdev', which in this case is DWC3 core device. This means > that creating any custom lookup entries for XHCI driver is no longer needed > and can be simply removed. > > Signed-off-by: Marek Szyprowski > --- > drivers/usb/dwc3/host.c | 22 ++++------------------ > 1 file changed, 4 insertions(+), 18 deletions(-) > > diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c > index f55947294f7c..8deea8c91e03 100644 > --- a/drivers/usb/dwc3/host.c > +++ b/drivers/usb/dwc3/host.c > @@ -85,7 +85,7 @@ int dwc3_host_init(struct dwc3 *dwc) > DWC3_XHCI_RESOURCES_NUM); > if (ret) { > dev_err(dwc->dev, "couldn't add resources to xHCI device\n"); > - goto err1; > + goto err; > } > > memset(props, 0, sizeof(struct property_entry) * ARRAY_SIZE(props)); > @@ -112,37 +112,23 @@ int dwc3_host_init(struct dwc3 *dwc) > ret = platform_device_add_properties(xhci, props); > if (ret) { > dev_err(dwc->dev, "failed to add properties to xHCI\n"); > - goto err1; > + goto err; > } > } > > - phy_create_lookup(dwc->usb2_generic_phy, "usb2-phy", > - dev_name(dwc->dev)); > - phy_create_lookup(dwc->usb3_generic_phy, "usb3-phy", > - dev_name(dwc->dev)); > - > ret = platform_device_add(xhci); > if (ret) { > dev_err(dwc->dev, "failed to register xHCI device\n"); > - goto err2; > + goto err; > } > > return 0; > -err2: > - phy_remove_lookup(dwc->usb2_generic_phy, "usb2-phy", > - dev_name(dwc->dev)); > - phy_remove_lookup(dwc->usb3_generic_phy, "usb3-phy", > - dev_name(dwc->dev)); > -err1: > +err: > platform_device_put(xhci); > return ret; > } > > void dwc3_host_exit(struct dwc3 *dwc) > { > - phy_remove_lookup(dwc->usb2_generic_phy, "usb2-phy", > - dev_name(dwc->dev)); > - phy_remove_lookup(dwc->usb3_generic_phy, "usb3-phy", > - dev_name(dwc->dev)); > platform_device_unregister(dwc->xhci); > } Roger, could you verify that this doesn't regress any of your platforms? Thanks -- balbi