All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Jan Lentfer <jan.lentfer@web.de>
Cc: Takashi Iwai <tiwai@suse.de>,
	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:49:51 +0200	[thread overview]
Message-ID: <87wls41dls.wl-tiwai@suse.de> (raw)
In-Reply-To: <272336a8-ab7c-4f9a-ac0c-c438b94caeca@web.de>

On Tue, 29 Sep 2026 13:42:04 +0200,
Jan Lentfer wrote:
> 
> > 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 for quick tests!

I'll prepare the fix patch for upstream in a similar form as given in
the previous mail.


Takashi

      reply	other threads:[~2026-09-29 11:50 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
2026-09-29 11:49     ` Takashi Iwai [this message]

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=87wls41dls.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=jan.lentfer@web.de \
    --cc=linux-sound@vger.kernel.org \
    --cc=regressions@lists.linux.dev \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.