Re: [PATCH v16 6/7] usb: host: xhci-plat: Create platform device for onboard hubs in probe()

From: Alan Stern
Date: Wed Oct 20 2021 - 17:57:41 EST


On Wed, Oct 20, 2021 at 02:01:21PM -0700, Matthias Kaehlcke wrote:
> On Wed, Oct 20, 2021 at 04:37:20PM -0400, Alan Stern wrote:
> > On Wed, Oct 20, 2021 at 01:27:40PM -0700, Matthias Kaehlcke wrote:
> > > Hi Mathias,
> > >
> > > On Wed, Oct 20, 2021 at 04:05:37PM +0300, Mathias Nyman wrote:
> > > > If separate devices for controlling onboard hub power is the right solution then
> > > > how about creating the onboard hub device in usb_add_hcd() (hcd.c), and
> > > > store it in struct usb_hcd.
> > > >
> > > > A bit like how the roothub device is created, or PHYs are tuned.
> > >
> > > Sure, that sounds feasible, even better if it's handled in a single place
> > > and different types of controllers don't have to add support separately.
> >
> > Bear in mind that this would prevent you from working with onboard
> > non-root hubs.
>
> My goal is to (architecturally) support nested hubs, but TBH I haven't
> looked much into such a configuration since I don't have hardware for
> testing. My assumption was that support for onboard hubs connected to
> non-root hubs whould have to be added to the generic hub driver.
>
> Could you elaborate in how far you think it would be different for
> xhci_plat vs generic hcd?

A lot of this material has slipped from my mind. However, I don't see
much difference between those two approaches.

Alan Stern