Re: [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A

From: Rong Zhang

Date: Fri Jul 24 2026 - 07:43:27 EST


Hi Takashi, Lianqin,

On Fri, 2026-07-24 at 08:29 +0000, 胡连勤 wrote:
> Setting up the interface when suspended/resuming fails on this card.
> Adding a reset and delay quirk will eliminate this problem.
>
> Note: This device misuses the Apple VID (0x05ac) & PID (0x110b).

The device's VID conflicts with Apple's, but there is no PID conflict,
right?

If a manufacturer uses other's VID, it's a VID conflict. The device
falls into this category.

If the manufacturer uses the same PID among different products, it's a
PID conflict. I don't think it's the case of the device, unless JKY
Technology reuses PID 0x110b for products other than Q2A.

>
> usb 1-1: New USB device found, idVendor=05ac, idProduct=110b
> usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> usb 1-1: Product: Q2A
> usb 1-1: Manufacturer: JKY Technology
> usb 1-1: SerialNumber: 330270D2251225
>
> Signed-off-by: Lianqin Hu <hulianqin@xxxxxxxx>
> ---
> sound/usb/quirks.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> index 0de7c9d94259..ad2ce384e32d 100644
> --- a/sound/usb/quirks.c
> +++ b/sound/usb/quirks.c
> @@ -2200,6 +2200,8 @@ struct usb_audio_quirk_flags_table {
>
> static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
> /* Device and string descriptor matches */
> + DEVICE_STRING_FLG(0x05ac, 0x110b, "JKY Technology", "Q2A", /* JKY Technology Q2A */

Hence, I don't think it's necessary to match "Q2A" here.

Meanwhile, in any case, the comment should describe the VID/PID conflict
instead of repeating the string descriptor(s) being matched, and the
strings should break into another line.

See how commit b13031ca112a ("ALSA: usb-audio: Deconflict VID between
Focusrite Novation & MV-SILICON") describe the conflict and arrange
lines.

> + QUIRK_FLAG_FORCE_IFACE_RESET | QUIRK_FLAG_IFACE_DELAY),

Bad indent.

This is the first DEVICE_STRING_FLG() item, so please don't set a bad
example. I would prefer:

DEVICE_STRING_FLG(0x05ac, 0x110b, /* VID conflicts with Apple */
"JKY Technology", NULL /* Q2A */,
QUIRK_FLAG_FORCE_IFACE_RESET | QUIRK_FLAG_IFACE_DELAY),

Thanks,
Rong

>
> /* Device matches */
> DEVICE_FLG(0x001f, 0x0b21, /* AB13X USB Audio */
> --
> 2.39.0