Pavan Kondeti <quic_pkondeti@xxxxxxxxxxx> 于2022年2月16日周三 16:00写道: > > On Wed, Feb 16, 2022 at 03:16:40PM +0800, Jun Li wrote: > > Sandeep Maheswaram <quic_c_sanm@xxxxxxxxxxx> 于2022年2月16日周三 14:58写道: > > > > > > dwc3 manages PHY by own DRD driver, so skip the management by > > > HCD core. > > > During runtime suspend phy was not getting suspend because > > > runtime_usage value is 2. > > > > > > Signed-off-by: Sandeep Maheswaram <quic_c_sanm@xxxxxxxxxxx> > > > --- > > > drivers/usb/dwc3/host.c | 15 +++++++++++++++ > > > 1 file changed, 15 insertions(+) > > > > > > diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c > > > index eda8719..4a035a8 100644 > > > --- a/drivers/usb/dwc3/host.c > > > +++ b/drivers/usb/dwc3/host.c > > > @@ -13,6 +13,14 @@ > > > #include <linux/platform_device.h> > > > > > > #include "core.h" > > > +#include <linux/usb/hcd.h> > > > +#include <linux/usb/xhci-plat.h> > > > +#include <linux/usb/xhci-quirks.h> > > > + > > > + > > > +static const struct xhci_plat_priv xhci_plat_dwc3_xhci = { > > > + .quirks = XHCI_SKIP_PHY_INIT, > > > +}; > > > > It's better to create this xhci_plat_priv by each dwc3 glue layer, > > with that, we can use this priv to pass other flags and possibly > > override APIs by each glue driver which may not apply to all dwc3 > > platforms. > > > > Do you see a need for any glue driver to know about this xHC platform data? Yes. I have some xhci quirks which are specifix to NXP iMX platforms. > AFAICT, glue driver has no direction connection with the dwc3 core. All > the required data is coming from dT on ARM based boards. Adding a private > interface between dwc3 core and glue for passing xhci platform data seems > to be overkill. If there is a pressing need, why not? And looking at xhci_plat_priv members -struct xhci_plat_priv { - const char *firmware_name; - unsigned long long quirks; - int (*plat_setup)(struct usb_hcd *); - void (*plat_start)(struct usb_hcd *); - int (*init_quirk)(struct usb_hcd *); - int (*suspend_quirk)(struct usb_hcd *); - int (*resume_quirk)(struct usb_hcd *); -}; Are we going to share the same all those quirks and APIs implementation across all dwc3 platforms? Thanks Li Jun > > Thanks, > Pavan