On Thu, May 13, 2021 at 04:46:41PM +0300, Felipe Balbi wrote: > > Hi, > > Matthias Kaehlcke <mka@xxxxxxxxxxxx> writes: > >> > @@ -127,6 +142,50 @@ int dwc3_host_init(struct dwc3 *dwc) > >> > return ret; > >> > } > >> > > >> > +static void dwc3_set_phy_mode(struct usb_hcd *hcd) > >> > +{ > >> > + > >> > + int i, num_ports; > >> > + u32 reg; > >> > + unsigned int ss_phy_mode = 0; > >> > + struct dwc3 *dwc = dev_get_drvdata(hcd->self.controller->parent); > >> > + struct xhci_hcd *xhci_hcd = hcd_to_xhci(hcd); > >> > + > >> > + dwc->hs_phy_mode = 0; > >> > + > >> > + reg = readl(&xhci_hcd->cap_regs->hcs_params1); > >> > + num_ports = HCS_MAX_PORTS(reg); > >> > >> there's a big assumption here that xhci is still alive. Why isn't this > >> quirk implemented in xhci-plat itself? > > > > That should work for determining which types of devices are connected to > > the PHYs, however IIUC the xhci-plat doesn't know about the PHY topology. > > Are you suggesting to move that info into the xhci-plat driver so that it > > can set the corresponding PHY modes? > > Yes, if xHCI needs to know about PHYs in order to properly configure the > PHYs, so be it :-) Thanks for the confirmation, looks like we have a path forward here then :)