[Bug 251503] Disconnecting/reconnecting USB-C dock makes other USB ports unusable

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Dec 21 13:28:06 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251503

--- Comment #3 from Ali Abdallah <ali.abdallah at suse.com> ---
The attachment order of usb hubs is somehow broken when the dock is unplugged
and plugged again.

When the system is first booted, on xhci0 at pci0:6:0:3 I have:

xhci0
 usbus1
  uhub0
   uhub3
    uhub5
     uhub6
      uhid0
      uhid1
      uaudio0
       pcm4

But when I unplug/re-plug the dock, I get 

xhci0
 usbus1
  uhub0
   uhub3
   uhub5

When all USB devices on the dock were correctly detected, uhub5 was a child of
uhub3 and not of uhub0.

On system boot:

uhub5 on uhub3
uhub5: <VIA Labs, Inc. USB2.0 Hub, class 9/0, rev 2.10/d.23, addr 3> on usbus1
uhub5: MTT enabled
uhub5: 4 ports with 3 removable, self powered

When the dock is unplugged/replugged again:

uhub5: detached
uhub5 on uhub0
uhub5: <VIA Labs, Inc. USB3.1 Hub, class 9/0, rev 3.10/d.24, addr 2> on usbus1

And no devices attached to the dock are detected. 

BTW: I tried out Dragon Fly 5.8.3 since it has similar USB implementation to
FreeBSD, and the issue doesn't happen, uhub5 remains child of uhub3 and uhub6
child of uhub5, with all USB devices being correctly detected when the dock is
unplugged/plugged back.

Unfortunately I know little about the USB stack, could you please provide some
hints on how to proceed here?

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-usb mailing list