Re: [PATCH v17 1/7] usb: misc: Add onboard_usb_hub driver

From: Matthias Kaehlcke
Date: Wed Jan 12 2022 - 14:00:57 EST


On Sat, Jan 01, 2022 at 03:23:22PM +0300, Dmitry Osipenko wrote:
> 30.12.2021 23:17, Matthias Kaehlcke пишет:
> > On Mon, Dec 20, 2021 at 11:05:28PM +0300, Dmitry Osipenko wrote:
> >> 16.11.2021 23:07, Matthias Kaehlcke пишет:
> >>> +static const struct usb_device_id onboard_hub_id_table[] = {
> >>> + { USB_DEVICE(VENDOR_ID_REALTEK, 0x0411) }, /* RTS0411 USB 3.0 */
> >>> + { USB_DEVICE(VENDOR_ID_REALTEK, 0x5411) }, /* RTS5411 USB 2.0 */
> >>> + {},
> >>> +};
> >>
> >> RTS5411 two times in the comments?
> >
> > One time, the other is RTS0511
> >
> >> Internet suggests that RTS5411 is USB 3.0
> >
> > Correct, however the chip internally has two hubs, one for USB2 and one for
> > USB3:
> >
> > Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. 4-Port USB 3.1 Hub
> > Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. 4-Port USB 2.1 Hub
>
> Alright, thanks.
>
> >> Are these hubs expected to be powered-on only when upstream port is
> >> enabled? Shouldn't runtime PM be used for that somehow?
> >
> > In the general case I would expect that a onboard hub is connected to a port
> > that is enabled. For now I think it's fine to power the hub always when the
> > system is running (which is also the current situation with using always-on
> > regulators). If someone has an actual use case where the upstream port can
> > be disabled they can add support for that later.
> >
>
> I see that you're handling the wakeup-capable devices during the
> driver's suspend, perhaps it should work okay then.
>
> BTW, shouldn't the "companion-hub" need to be turned into a generic USB
> property? The onboard-usb-hub looks like a generic thing, but
> "companion-hub" is specific to the RTS5411 binding.

The series started with a generic binding, however Rob didn't like that. To my
knowledge there is currently no dedicated binding for USB hubs where such a
property could be added.