Linux Sound subsystem development
 help / color / mirror / Atom feed
From: Jan Lentfer <jan.lentfer@web.de>
To: Takashi Iwai <tiwai@suse.de>
Cc: linux-sound@vger.kernel.org, regressions@lists.linux.dev
Subject: Re: [REGRESSION] ALSA: usb-audio: Behringer USB-MIDI output stalls, since "Use strings in struct usb_dev for manufacturer & co"
Date: Tue, 29 Sep 2026 13:42:04 +0200	[thread overview]
Message-ID: <272336a8-ab7c-4f9a-ac0c-c438b94caeca@web.de> (raw)
In-Reply-To: <875wzo2tya.wl-tiwai@suse.de>

> Thanks for the report.
>
> Can this be fixed by applying the same boot quirk for Behringer CM1A
> (something like below)?
>
> Or do we need explicit usb_string() calls instead?  If yes, which one
> (iProduct, iManufacturer) matters?
>
>
> thanks,
>
> Takashi
>
> -- 8< --
> --- a/sound/usb/quirks.c
> +++ b/sound/usb/quirks.c
> @@ -1785,6 +1785,9 @@ int snd_usb_apply_boot_quirk_once(struct usb_device *dev,
>   	case USB_ID(0x07fd, 0x0008): /* MOTU M Series, 1st hardware version */
>   		return snd_usb_motu_m_series_boot_quirk(dev);
>   	case USB_ID(0x1397, 0x1234): /* Behringer CM1A */
> +	case USB_ID(0x1397, 0x1230): /* Behringer K-2 Mk II */
> +	case USB_ID(0x1397, 0x1249): /* Behringer Kobol Expander */
> +	case USB_ID(0x1397, 0x1256): /* Behringer 2-XM */
>   		return snd_usb_cm1a_boot_quirk(dev);
>   	case USB_ID(0x2717, 0xd005): /* Xiaomi audio connector */
>   		snd_usb_xiaomi_boot_quirk(dev);


The CM1A quirk should be sufficient. No usb_string() is needed.

I reproduced the CM1A quirk's request from userspace on 7.2.8 (usbfs
USBDEVFS_CONTROL, no wake-up udev rule active):

1. Power-cycle the K-2 MK II and send notes: the output stalls as before
    (rawmidi Tx 21, avail 4021, 7 bulk-OUT URBs pending).
2. Send a single GET_DESCRIPTOR(DEVICE, 18 bytes)
    (80 06 0100 0000 0012), nothing else. The pending URBs complete
    immediately (Tx 21 -> 96, buffer drained), and all following MIDI
    output works.

A GET_DESCRIPTOR(STRING 2) instead has the same effect (tested
earlier). So it looks like any standard control request after
SET_CONFIGURATION wakes the endpoint, same as on the CM1A.

I have only verified this on the K-2 MK II (1397:1230). The KOBOL
EXPANDER (1397:1249) and 2-XM (1397:1256) run the same firmware
family, have identical descriptors and show the identical stall, so
I'd expect the quirk to cover them as well.

Thanks,
Jan


  reply	other threads:[~2026-09-29 11:42 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-29 10:55 [REGRESSION] ALSA: usb-audio: Behringer USB-MIDI output stalls, since "Use strings in struct usb_dev for manufacturer & co" Jan Lentfer
2026-09-29 11:11 ` Takashi Iwai
2026-09-29 11:42   ` Jan Lentfer [this message]
2026-09-29 11:49     ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=272336a8-ab7c-4f9a-ac0c-c438b94caeca@web.de \
    --to=jan.lentfer@web.de \
    --cc=linux-sound@vger.kernel.org \
    --cc=regressions@lists.linux.dev \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox