USB audio disconnects on system suspend

My audio output device is a USB external DAC + AMP (the Massdrop / Grace O2 SDAC + AMP to be specific). However, I’m having trouble getting it to work on my system with a fresh install of Manjaro Gnome 20.2.1 (I was using it before without issue on a different machine with ubuntu 20.10).

At first the device would disappear from the lsusb list after a few seconds from startup. This was fixed by blacklisting it from suspend in TLP-UI.

Second, the device would disappear as soon as I tried to play audio. This was resolved by copying the pulseaudio daemon.conf to ~/.config/pulse and setting default-sample-rate = 48000

At this point, I audio playback seems to work just fine until the computer goes to sleep (e.g. by hitting suspend in gnome). Then, the audio device disappears until I unplug it and plug it back in. I tried different ports on a usb hub and directly in the motherboard IO, same issue.

Here’s the dmesg output from pluging the device in, suspension, and wakeup. I highlighted sections about the device in question and omitted a few repetitive sections:

[ 3191.371559] usb 5-2: new full-speed USB device number 2 using xhci_hcd
[ 3191.533819] usb 5-2: New USB device found, idVendor=21b4, idProduct=0144, bcdDevice= 0.02
[ 3191.533821] usb 5-2: New USB device strings: Mfr=1, Product=3, SerialNumber=0
[ 3191.533823] usb 5-2: Product: SDAC
[ 3191.533824] usb 5-2: Manufacturer: Grace Design

[ 3231.337170] PM: suspend entry (deep)
[ 3231.347570] Filesystems sync: 0.010 seconds
[ 3231.347807] Freezing user space processes … (elapsed 0.001 seconds) done.
[ 3231.349611] OOM killer disabled.
[ 3231.349612] Freezing remaining freezable tasks … (elapsed 0.000 seconds) done.
[ 3231.350409] printk: Suspending console(s) (use no_console_suspend to debug)
[ 3231.407084] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 3231.407102] sd 2:0:0:0: [sdb] Synchronizing SCSI cache
[ 3231.408325] sd 0:0:0:0: [sda] Stopping disk
[ 3231.409931] sd 2:0:0:0: [sdb] Stopping disk
[ 3231.487043] [drm] free PSP TMR buffer
[ 3231.680865] ACPI: Preparing to enter system sleep state S3
[ 3232.007446] PM: Saving platform NVS memory
[ 3232.007501] Disabling non-boot CPUs …
[ 3232.009442] smpboot: CPU 1 is now offline

[ 3232.049895] smpboot: CPU 23 is now offline
[ 3232.050568] ACPI: Low-level resume complete
[ 3232.050597] PM: Restoring platform NVS memory
[ 3232.050759] LVT offset 0 assigned for vector 0x400
[ 3232.051367] Enabling non-boot CPUs …
[ 3232.051491] x86: Booting SMP configuration:
[ 3232.051491] smpboot: Booting Node 0 Processor 1 APIC 0x2
[ 3232.051610] microcode: CPU1: patch_level=0x0a201009
[ 3232.053786] ACPI: _SB_.PLTF.C002: Found 2 idle states
[ 3232.053951] CPU1 is up

[ 3232.113137] CPU23 is up
[ 3232.114657] ACPI: Waking up from system sleep state S3
[ 3232.205464] sd 2:0:0:0: [sdb] Starting disk
[ 3232.205467] sd 0:0:0:0: [sda] Starting disk
[ 3232.205662] usb usb1: root hub lost power or was reset
[ 3232.205663] usb usb2: root hub lost power or was reset
[ 3232.205974] [drm] PCIE GART of 512M enabled (table at 0x0000008000000000).
[ 3232.206005] [drm] PSP is resuming…
[ 3232.209778] nvme nvme0: Shutdown timeout set to 10 seconds
[ 3232.210693] nvme nvme0: 8/0/0 default/read/poll queues
[ 3232.217982] nvme nvme1: Shutdown timeout set to 10 seconds
[ 3232.218920] nvme nvme1: 8/0/0 default/read/poll queues
[ 3232.407793] [drm] reserve 0xa00000 from 0x800f400000 for PSP TMR
[ 3232.436771] usb 3-2: reset full-speed USB device number 2 using xhci_hcd
[ 3232.517290] ata2: SATA link down (SStatus 0 SControl 300)
[ 3232.517759] ata6: SATA link down (SStatus 0 SControl 300)
[ 3232.518078] ata4: SATA link down (SStatus 0 SControl 300)
[ 3232.639168] usb 2-4: reset SuperSpeed Gen 1 USB device number 15 using xhci_hcd
[ 3232.647821] amdgpu 0000:0a:00.0: amdgpu: SMU is resuming…
[ 3232.647826] amdgpu 0000:0a:00.0: amdgpu: smu driver if version = 0x00000034, smu fw if version = 0x0000003b, smu fw version = 0x003a3100 (58.49.0)
[ 3232.647826] amdgpu 0000:0a:00.0: amdgpu: SMU driver if version not matched
[ 3232.674483] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 3232.674885] ata1.00: supports DRM functions and may not be fully accessible
[ 3232.679135] ata1.00: supports DRM functions and may not be fully accessible
[ 3232.682579] ata1.00: configured for UDMA/133
[ 3232.692640] ahci 0000:02:00.1: port does not support device sleep
[ 3232.692733] ata1.00: Enabling discard_zeroes_data
[ 3232.724088] amdgpu 0000:0a:00.0: amdgpu: SMU is resumed successfully!
[ 3232.725252] [drm] DMUB hardware initialized: version=0x02000001
[ 3232.771161] ata3: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 3232.771551] ata3.00: supports DRM functions and may not be fully accessible
[ 3232.775680] ata3.00: supports DRM functions and may not be fully accessible
[ 3232.779124] ata3.00: configured for UDMA/133
[ 3232.785415] usb 2-1: reset SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[ 3232.789182] ahci 0000:02:00.1: port does not support device sleep
[ 3232.789301] ata3.00: Enabling discard_zeroes_data
[ 3232.986007] [drm] kiq ring mec 2 pipe 1 q 0
[ 3232.991341] usb 1-1: reset high-speed USB device number 2 using xhci_hcd
[ 3233.005988] [drm] VCN decode and encode initialized successfully(under DPG Mode).
[ 3233.006138] [drm] JPEG decode initialized successfully.
[ 3233.006162] amdgpu 0000:0a:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0

[ 3233.006169] amdgpu 0000:0a:00.0: amdgpu: ring jpeg_dec uses VM inv eng 8 on hub 1
[ 3233.237844] ata5: failed to resume link (SControl 0)
[ 3233.237856] ata5: SATA link down (SStatus 0 SControl 0)
[ 3233.394669] usb 1-4: reset high-speed USB device number 68 using xhci_hcd
[ 3233.804696] usb 1-7: reset full-speed USB device number 4 using xhci_hcd
[ 3234.169370] usb 2-4.1: reset SuperSpeed Gen 1 USB device number 16 using xhci_hcd
[ 3234.268057] usb 1-4.3: reset full-speed USB device number 70 using xhci_hcd
[ 3234.631420] usb 1-4.1: reset high-speed USB device number 69 using xhci_hcd
[ 3234.821418] usb 1-1.5: reset high-speed USB device number 5 using xhci_hcd
[ 3235.078111] usb 1-4.1.1: reset full-speed USB device number 71 using xhci_hcd
[ 3235.398126] usb 1-4.1.2: reset full-speed USB device number 72 using xhci_hcd
[ 3237.518160] usb 5-2: reset full-speed USB device number 2 using xhci_hcd
[ 3237.648164] usb 5-2: device descriptor read/64, error -71
[ 3237.884847] usb 5-2: device descriptor read/64, error -71
[ 3238.114855] usb 5-2: reset full-speed USB device number 2 using xhci_hcd
[ 3238.244857] usb 5-2: device descriptor read/64, error -71
[ 3238.481539] usb 5-2: device descriptor read/64, error -71
[ 3238.711561] usb 5-2: reset full-speed USB device number 2 using xhci_hcd
[ 3238.711630] usb 5-2: Device not responding to setup address.
[ 3238.918296] usb 5-2: Device not responding to setup address.
[ 3239.124895] usb 5-2: device not accepting address 2, error -71
[ 3239.248243] usb 5-2: reset full-speed USB device number 2 using xhci_hcd
[ 3239.248326] usb 5-2: Device not responding to setup address.
[ 3239.454999] usb 5-2: Device not responding to setup address.
[ 3239.661597] usb 5-2: device not accepting address 2, error -71
[ 3239.662217] OOM killer enabled.
[ 3239.662217] Restarting tasks …
[ 3239.662470] usb 5-2: USB disconnect, device number 2
[ 3239.663298] done.
[ 3239.663509] thermal thermal_zone1: failed to read out thermal zone (-61)
[ 3239.663513] PM: suspend exit
[ 3239.666412] audit: type=1131 audit(1610124929.449:287): pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg=‘unit=NetworkManager-dispatcher comm=“systemd” exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success’
[ 3239.788280] usb 5-2: new full-speed USB device number 3 using xhci_hcd
[ 3239.839503] audit: type=1130 audit(1610124929.622:288): pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg=‘unit=systemd-suspend comm=“systemd” exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success’
[ 3239.839507] audit: type=1131 audit(1610124929.622:289): pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg=‘unit=systemd-suspend comm=“systemd” exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success’
[ 3239.868314] RTL8125B 2.5Gbps internal r8169-600:00: attached PHY driver [RTL8125B 2.5Gbps internal] (mii_bus:phy_addr=r8169-600:00, irq=IGNORE)
[ 3239.918319] usb 5-2: device descriptor read/64, error -71
[ 3240.058463] r8169 0000:06:00.0 eno1: Link is Down
[ 3240.155010] usb 5-2: device descriptor read/64, error -71
[ 3240.237648] ACPI: : failed to evaluate _DSM (0x1001)
[ 3240.384999] usb 5-2: new full-speed USB device number 4 using xhci_hcd
[ 3240.515035] usb 5-2: device descriptor read/64, error -71
[ 3240.751719] usb 5-2: device descriptor read/64, error -71
[ 3240.858388] usb usb5-port2: attempt power cycle
[ 3241.501739] usb 5-2: new full-speed USB device number 5 using xhci_hcd
[ 3241.501831] usb 5-2: Device not responding to setup address.
[ 3241.708512] usb 5-2: Device not responding to setup address.
[ 3241.915088] usb 5-2: device not accepting address 5, error -71
[ 3242.038442] usb 5-2: new full-speed USB device number 6 using xhci_hcd
[ 3242.038536] usb 5-2: Device not responding to setup address.
[ 3242.245208] usb 5-2: Device not responding to setup address.
[ 3242.451792] usb 5-2: device not accepting address 6, error -71
[ 3242.451824] usb usb5-port2: unable to enumerate USB device

Any ideas what could be going wrong, or where to look? I’d appreciate any help.