USB-Audio regression on behringer UMC404HD
Takashi Iwai
tiwai at suse.de
Tue Jan 3 17:03:55 CET 2023
On Tue, 03 Jan 2023 16:31:13 +0100,
Michael Ralston wrote:
>
> On Wed, 4 Jan 2023 at 02:21, Takashi Iwai <tiwai at suse.de> 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)
More information about the Alsa-devel
mailing list