HCI is crashing and disconnecting all my usbs

At random, all of my usb’s will disconnect and this effectively softlocks my entire computer.
Running journalctl -a -b-1 after rebooting shows this at the end:

Mar 07 10:37:46 f-desktop wpa_supplicant[842]: wlan0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-63 noise=9999 txrate=26000
Mar 07 10:38:07 f-desktop kernel: retire_capture_urb: 1 callbacks suppressed
Mar 07 10:38:41 f-desktop kernel: retire_capture_urb: 3 callbacks suppressed
Mar 07 10:38:50 f-desktop kernel: retire_capture_urb: 1 callbacks suppressed
Mar 07 10:39:07 f-desktop kernel: retire_capture_urb: 3 callbacks suppressed
Mar 07 10:39:19 f-desktop kernel: retire_capture_urb: 1 callbacks suppressed
Mar 07 10:39:35 f-desktop kernel: retire_capture_urb: 2 callbacks suppressed
Mar 07 10:39:53 f-desktop kernel: retire_capture_urb: 2 callbacks suppressed
Mar 07 10:39:59 f-desktop pipewire[1047]: spa.alsa: front:2p: snd_pcm_status error: No such device
Mar 07 10:39:59 f-desktop pipewire[1047]: spa.alsa: front:2p: snd_pcm_drop: No such device
Mar 07 10:39:59 f-desktop pipewire[1047]: spa.alsa: sw_params: No such device
Mar 07 10:39:59 f-desktop pipewire[1047]: spa.alsa: swparams: No such device
Mar 07 10:39:59 f-desktop pipewire[1047]: spa.alsa: front:2p: (0 suppressed) snd_pcm_avail after recover: No such device
Mar 07 10:39:59 f-desktop pipewire[1047]: spa.alsa: front:2p: snd_pcm_drop: No such device
Mar 07 10:39:59 f-desktop pipewire[1047]: spa.alsa: front:2p: close failed: No such device
Mar 07 10:39:59 f-desktop pipewire-pulse[1169]: mod.protocol-pulse: client 0x5d08cb531640 [OBS]: ERROR command:-1 (invalid) tag:42>
Mar 07 10:40:04 f-desktop kernel: retire_capture_urb: 2 callbacks suppressed
Mar 07 10:40:09 f-desktop kernel: xhci_hcd 0000:0a:00.3: xHCI host not responding to stop endpoint command
Mar 07 10:40:09 f-desktop kernel: xhci_hcd 0000:0a:00.3: xHCI host controller not responding, assume dead
Mar 07 10:40:09 f-desktop kernel: xhci_hcd 0000:0a:00.3: HC died; cleaning up
Mar 07 10:40:09 f-desktop kernel: usb 3-2: USB disconnect, device number 2
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3: USB disconnect, device number 3
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.2: USB disconnect, device number 5
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: Not enough bandwidth for altsetting 1
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: 1:1: usb_set_interface failed (-19)
Mar 07 10:40:09 f-desktop kernel: usb 4-2: USB disconnect, device number 2
Mar 07 10:40:09 f-desktop kernel: usb 4-2.3: USB disconnect, device number 3
Mar 07 10:40:09 f-desktop pipewire[1047]: spa.alsa: set_hw_params: No such device
Mar 07 10:40:09 f-desktop pipewire[1047]: pw.node: (alsa_output.usb-audio-technica_AT2020USB_-00.analog-stereo-61) suspended -> er>
Mar 07 10:40:09 f-desktop pipewire[1047]: spa.alsa: set_hw_params: No such device
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: Not enough bandwidth for altsetting 1
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: 1:1: usb_set_interface failed (-19)
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: Not enough bandwidth for altsetting 1
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: 1:1: usb_set_interface failed (-19)
Mar 07 10:40:09 f-desktop pipewire[1047]: spa.alsa: set_hw_params: No such device
Mar 07 10:40:09 f-desktop pipewire[1047]: spa.alsa: set_hw_params: No such device
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: Not enough bandwidth for altsetting 1
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: 1:1: usb_set_interface failed (-19)
Mar 07 10:40:09 f-desktop pipewire[1047]: spa.alsa: set_hw_params: No such device
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: Not enough bandwidth for altsetting 1
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: 1:1: usb_set_interface failed (-19)
Mar 07 10:40:09 f-desktop pipewire[1047]: spa.alsa: set_hw_params: No such device
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: Not enough bandwidth for altsetting 1
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: 1:1: usb_set_interface failed (-19)
Mar 07 10:40:09 f-desktop pipewire[1047]: spa.alsa: set_hw_params: No such device
Mar 07 10:40:09 f-desktop pipewire[1047]: spa.alsa: set_hw_params: No such device
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: Not enough bandwidth for altsetting 1
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: 1:1: usb_set_interface failed (-19)
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: Not enough bandwidth for altsetting 1
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: 1:1: usb_set_interface failed (-19)
Mar 07 10:40:09 f-desktop pipewire[1047]: spa.alsa: set_hw_params: No such device
Mar 07 10:40:09 f-desktop pipewire[1047]: spa.alsa: set_hw_params: No such device
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: Not enough bandwidth for altsetting 1
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: 1:1: usb_set_interface failed (-19)
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: Not enough bandwidth for altsetting 1
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: 1:1: usb_set_interface failed (-19)
Mar 07 10:40:09 f-desktop pipewire[1047]: spa.alsa: set_hw_params: No such device
Mar 07 10:40:09 f-desktop kernel: usb 3-2.3.3.1: Not enough bandwidth for altsetting 1
Mar 07 10:40:10 f-desktop pipewire[1047]: spa.alsa: iec958:3c: snd_pcm_drop: No such device
Mar 07 10:40:10 f-desktop pipewire[1047]: spa.alsa: iec958:3c: close failed: No such device
Mar 07 10:40:10 f-desktop pipewire[1047]: spa.alsa: front:3p: close failed: No such device
Mar 07 10:40:10 f-desktop kernel: usb 3-2.3.3: USB disconnect, device number 6
Mar 07 10:40:10 f-desktop kernel: usb 3-2.3.3.1: USB disconnect, device number 8
Mar 07 10:40:10 f-desktop kernel: usb 3-2.3.3.2: USB disconnect, device number 9
Mar 07 10:40:10 f-desktop kernel: usb 3-2.3.3.3: USB disconnect, device number 10
Mar 07 10:40:10 f-desktop pipewire[1047]: spa.alsa: hw:4,0c: snd_pcm_drop: No such device
Mar 07 10:40:10 f-desktop pipewire[1047]: spa.alsa: hw:4,0c: close failed: No such device
Mar 07 10:40:10 f-desktop kernel: usb 3-2.3.3.4: USB disconnect, device number 11
Mar 07 10:40:10 f-desktop pipewire-pulse[1169]: mod.protocol-pulse: client 0x5d08ca8060e0 [PulseAudio Volume Control]: ERROR comma>
Mar 07 10:40:10 f-desktop pipewire-pulse[1169]: mod.protocol-pulse: client 0x5d08cb531640 [OBS]: ERROR command:-1 (invalid) tag:42>
Mar 07 10:40:11 f-desktop kernel: usb 3-2.3.5: USB disconnect, device number 7
Mar 07 10:40:11 f-desktop kernel: usb 3-2.4: USB disconnect, device number 4
Mar 07 10:40:12 f-desktop wireplumber[1167]: <WpSiStandardLink:0x5eb829dd4a10> si-standard-link: in/out items are not valid anymore
Mar 07 10:40:17 f-desktop pipewire-pulse[1169]: mod.protocol-pulse: client 0x5d08ca8060e0 [PulseAudio Volume Control]: ERROR comma>
Mar 07 10:40:17 f-desktop pipewire-pulse[1169]: mod.protocol-pulse: client 0x5d08ca8060e0 [PulseAudio Volume Control]: ERROR comma>
Mar 07 10:40:36 f-desktop wpa_supplicant[842]: wlan0: CTRL-EVENT-SIGNAL-CHANGE above=0 signal=-67 noise=9999 txrate=26000

I don’t think this is how it normally goes, but this time it was my usb DAC that seemed to die first, and alsa failed to recover. The DAC is a JDS Labs OL DAC. Let me know if there is anything else I should run for debug information.

Update: HCI died again and I think it had nothing to do with the DAC. the logs in the previous post might just be due to timing as this time the HCI died, then alsa failed to find the USB DAC. This is what normally happens. I ran echo -n "0000:0a:00.3" | tee /sys/bus/pci/drivers/xhci_hcd/unbind and the respective bind command it did successfully restart my HCI and got my usbs working again. I read that it might be related to some autosuspend daemon, but checking systemd there doesn’t seem to be anything set up for that. I am using the i3 spin so I’m not sure where to change those settings.

https://wiki.archlinux.org/title/Power_management#USB_autosuspend

I will let you know if this works, but this frequently happens when I am in the middle of using my USBs, ie moving the mouse around or using a usb webcamera.

EDIT: just checked, I don’t have any usb autosuspend rules that would be causing this.
❱❱❱ cd /etc/udev/rules.d /e/u/rules.d ❱❱❱ ls 90-backlight.rules /e/u/rules.d ❱❱❱
I don’t know if adding some would fix my problem or not, but I’ll try and see if it happens again.

You can use a kernel parameter to do it depending on whether you use grub or systemd-boot.

Edit: It’s dealt with differently on systemd-boot and grub.

usbcore.autosuspend=-1