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.