On Tue, 03 Jan 2023 16:31:13 +0100, Michael Ralston wrote: > > On Wed, 4 Jan 2023 at 02:21, Takashi Iwai <tiwai@xxxxxxx> wrote: > > > > Hrm... Try to reload snd_usb_audio module with the dyndbg=+p option, > > e.g. > > > > # modprobe -r snd-usb-audio > > # modprobe snd_usb_audio dyndbg=+p > > > > Or you can try to put your own debug printk(); we need to make sure > > whether it's really the right code you're testing at first. > > > > Ok, it looks like it was ignoring the kernel command line for some > reason. modprobing it with the option brought up debug messages again. > > I'm still running kernel 6.1.2 vanilla with the revert and the patches. > > aplay hung again when I ran it, the kernel was stuck on: > Jan 04 02:25:59 leatherback kernel: usb 1-4: 1:1 Start Playback PCM > > and didn't output another line until I ctrl+c aplay. OK, thanks. Then it's not about the USB interface reset. It must be subtle and nasty difference. Could you apply the change below on the top? It essentially reverts the hw_params/prepare split again. Takashi -- 8< -- --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -564,6 +564,21 @@ static int snd_usb_hw_params(struct snd_pcm_substream *substream, } ret = snd_usb_endpoint_set_params(chip, subs->data_endpoint); + if (ret < 0) + goto unlock; + + if (subs->sync_endpoint) { + ret = snd_usb_endpoint_prepare(chip, subs->sync_endpoint); + if (ret < 0) + goto unlock; + } + + ret = snd_usb_endpoint_prepare(chip, subs->data_endpoint); + if (ret < 0) + goto unlock; + else if (ret > 0) + snd_usb_set_format_quirk(subs, subs->cur_audiofmt); + ret = 0; unlock: if (ret < 0)