Hi Heikki, On Tue, Aug 22, 2023 at 6:32 AM Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> wrote: > > Hi Benson, > > RFC for now. I can't test these properly. If you guys could take over > this, I would much appreciated. I hope this is at least close to your > proposal. Much appreciated for the quick turnaround. Yes, I can test this on our systems that have subsystem linking enabled. (speaking of which, would be interested in getting a sample of one of our Chromebook systems that fully implement the typec subsystem linking)? > > With this (or something like it) you should be able to get > notification about USB connections and disconnections to your port > driver by implementing the new "attach" and "deattach" callbacks in > struct typec_partner_desc. The typec partner devices will also have > symlinks to the enumerated USB devices and vise versa. > Got it, i'll modify the cros_ec_typec driver to implement these callbacks, and look for the new symlinks. > I took a little shortcut and did not implement a proper device list. > Instead there is now only a member for the USB2 device and a member > for the USB3 device in struct typec_port, so with this only USB is > supported. But the API does not deal with struct usb_device, so > extending this to support other devices (TBT, Displayport, etc.) by > adding the actual device list should be fairly easy. Excellent! Thank you. Benson > > thanks, > > Heikki Krogerus (2): > usb: typec: Link enumerated USB devices with Type-C partner > usb: Inform the USB Type-C class about enumerated devices > > drivers/usb/core/hub.c | 4 ++ > drivers/usb/core/hub.h | 3 + > drivers/usb/core/port.c | 19 +++++- > drivers/usb/typec/class.c | 108 +++++++++++++++++++++++++++++--- > drivers/usb/typec/class.h | 16 +++++ > drivers/usb/typec/port-mapper.c | 9 ++- > include/linux/usb/typec.h | 37 +++++++++++ > 7 files changed, 184 insertions(+), 12 deletions(-) > > -- > 2.40.1 > -- Benson Leung Staff Software Engineer Chrome OS Kernel Google Inc. bleung@xxxxxxxxxx Chromium OS Project bleung@xxxxxxxxxxxx