Linux Sound subsystem development
 help / color / mirror / Atom feed
* [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A
@ 2026-07-24  8:29 胡连勤
  2026-07-24  9:08 ` Takashi Iwai
  2026-07-24 11:08 ` Rong Zhang
  0 siblings, 2 replies; 8+ messages in thread
From: 胡连勤 @ 2026-07-24  8:29 UTC (permalink / raw)
  To: perex@perex.cz, tiwai@suse.com, i@rong.moe
  Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org,
	胡连勤

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).

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@vivo.com>
---
 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 */
+		   QUIRK_FLAG_FORCE_IFACE_RESET | QUIRK_FLAG_IFACE_DELAY),
 
 	/* Device matches */
 	DEVICE_FLG(0x001f, 0x0b21, /* AB13X USB Audio */
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A
  2026-07-24  8:29 [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A 胡连勤
@ 2026-07-24  9:08 ` Takashi Iwai
  2026-07-24 11:08 ` Rong Zhang
  1 sibling, 0 replies; 8+ messages in thread
From: Takashi Iwai @ 2026-07-24  9:08 UTC (permalink / raw)
  To: 胡连勤
  Cc: perex@perex.cz, tiwai@suse.com, i@rong.moe,
	linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org

On Fri, 24 Jul 2026 10:29:31 +0200,
胡连勤 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).
> 
> 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@vivo.com>

Applied now.  Thanks.


Takashi

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A
  2026-07-24  8:29 [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A 胡连勤
  2026-07-24  9:08 ` Takashi Iwai
@ 2026-07-24 11:08 ` Rong Zhang
  2026-07-24 11:30   ` Takashi Iwai
  2026-07-24 11:41   ` 胡连勤
  1 sibling, 2 replies; 8+ messages in thread
From: Rong Zhang @ 2026-07-24 11:08 UTC (permalink / raw)
  To: 胡连勤, perex@perex.cz, tiwai@suse.com
  Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org

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@vivo.com>
> ---
>  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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A
  2026-07-24 11:08 ` Rong Zhang
@ 2026-07-24 11:30   ` Takashi Iwai
  2026-07-24 11:56     ` 答复: " 胡连勤
  2026-07-24 11:41   ` 胡连勤
  1 sibling, 1 reply; 8+ messages in thread
From: Takashi Iwai @ 2026-07-24 11:30 UTC (permalink / raw)
  To: Rong Zhang
  Cc: 胡连勤, perex@perex.cz, tiwai@suse.com,
	linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org

On Fri, 24 Jul 2026 13:08:38 +0200,
Rong Zhang wrote:
> 
> 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@vivo.com>
> > ---
> >  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),
> 

OK, then I scratch the commit now :)
Please resubmit the corrected patch.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 8+ messages in thread

* 答复: [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A
  2026-07-24 11:08 ` Rong Zhang
  2026-07-24 11:30   ` Takashi Iwai
@ 2026-07-24 11:41   ` 胡连勤
  2026-07-24 12:02     ` Rong Zhang
  1 sibling, 1 reply; 8+ messages in thread
From: 胡连勤 @ 2026-07-24 11:41 UTC (permalink / raw)
  To: Rong Zhang, perex@perex.cz, tiwai@suse.com
  Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org

Hi Rong:

> 
> 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?
The VID & PID are the same as those of Apple's official digital headphones. 
This is the VID & PID information of digital headphones purchased from Apple:

[20946.829805] usb 1-1: New USB device found, idVendor=05ac, idProduct=110b, bcdDevice=26.81
[20946.829811] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[20946.829813] usb 1-1: Product: EarPods
[20946.829815] usb 1-1: Manufacturer: Apple, Inc.
[20946.829816] usb 1-1: SerialNumber: JCRF0XQQH1
[20946.830111] usb 1-1: usb_probe_device

> 
> 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.

The device's VID & PID information are exactly the same as Apple's official information.
Misusing Apple digital headphones' VID and PID information

> 
> >
> > 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@vivo.com>
> > ---
> >  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.

OK, The comments should include information about any conflicting vid and pid information.

> 
> 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.
After careful inspection, the indentation in quirk.c appears to be consistent with previous indentation practices.

	DEVICE_FLG(0x413c, 0xa506, /* Dell AE515 sound bar */
		   QUIRK_FLAG_GET_SAMPLE_RATE),
	DEVICE_FLG(0x534d, 0x0021, /* MacroSilicon MS2100/MS2106 */
		   QUIRK_FLAG_ALIGN_TRANSFER),
	DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
		   QUIRK_FLAG_ALIGN_TRANSFER),
	DEVICE_FLG(0x84ef, 0x0082, /* Hotone Audio Pulze Mini */
		   QUIRK_FLAG_MIXER_PLAYBACK_LINEAR_VOL | QUIRK_FLAG_MIXER_CAPTURE_LINEAR_VOL),

> 
> 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),
> 
OK,This way of writing is better, but the indentation is slightly different from that of the predecessors.
 I personally hope to keep it consistent with the predecessors.

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

Thanks
Lianqin

^ permalink raw reply	[flat|nested] 8+ messages in thread

* 答复: [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A
  2026-07-24 11:30   ` Takashi Iwai
@ 2026-07-24 11:56     ` 胡连勤
  0 siblings, 0 replies; 8+ messages in thread
From: 胡连勤 @ 2026-07-24 11:56 UTC (permalink / raw)
  To: Takashi Iwai, Rong Zhang
  Cc: perex@perex.cz, tiwai@suse.com, linux-sound@vger.kernel.org,
	linux-kernel@vger.kernel.org

Hi Takashi:

> >
> > 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@vivo.com>
> > > ---
> > >  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),
> >
> 
> OK, then I scratch the commit now :)
> Please resubmit the corrected patch.

I'll make the changes according to Rong's suggestion and send out the new patch later.

Thanks

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: 答复: [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A
  2026-07-24 11:41   ` 胡连勤
@ 2026-07-24 12:02     ` Rong Zhang
  2026-07-24 12:11       ` 答复: " 胡连勤
  0 siblings, 1 reply; 8+ messages in thread
From: Rong Zhang @ 2026-07-24 12:02 UTC (permalink / raw)
  To: 胡连勤, perex@perex.cz, tiwai@suse.com
  Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org

Hi Lianqin,

On Fri, 2026-07-24 at 11:41 +0000, 胡连勤 wrote:
> Hi Rong:
> 
> > 
> > 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?
> The VID & PID are the same as those of Apple's official digital headphones. 
> This is the VID & PID information of digital headphones purchased from Apple:
> 
> [20946.829805] usb 1-1: New USB device found, idVendor=05ac, idProduct=110b, bcdDevice=26.81
> [20946.829811] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [20946.829813] usb 1-1: Product: EarPods
> [20946.829815] usb 1-1: Manufacturer: Apple, Inc.
> [20946.829816] usb 1-1: SerialNumber: JCRF0XQQH1
> [20946.830111] usb 1-1: usb_probe_device
> 
> > 
> > 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.
> 
> The device's VID & PID information are exactly the same as Apple's official information.
> Misusing Apple digital headphones' VID and PID information

It doesn't matter at all whether the PID is the same as one of Apple
products.

Between two different manufacturers there is only a VID conflict, but no
PID conflict. It is a PID conflict *only if* two different products from
*JKY Technology* share the same PID, but you haven't seen another JKY
Technology product with the same PID, right?

> 
> > 
> > > 
> > > 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@vivo.com>
> > > ---
> > >  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.
> 
> OK, The comments should include information about any conflicting vid and pid information.
> 
> > 
> > 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.
> After careful inspection, the indentation in quirk.c appears to be consistent with previous indentation practices.
> 
> 	DEVICE_FLG(0x413c, 0xa506, /* Dell AE515 sound bar */
> 		   QUIRK_FLAG_GET_SAMPLE_RATE),
> 	DEVICE_FLG(0x534d, 0x0021, /* MacroSilicon MS2100/MS2106 */
> 		   QUIRK_FLAG_ALIGN_TRANSFER),
> 	DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
> 		   QUIRK_FLAG_ALIGN_TRANSFER),
> 	DEVICE_FLG(0x84ef, 0x0082, /* Hotone Audio Pulze Mini */
> 		   QUIRK_FLAG_MIXER_PLAYBACK_LINEAR_VOL | QUIRK_FLAG_MIXER_CAPTURE_LINEAR_VOL),
> 
> > 
> > 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),
> > 
> OK,This way of writing is better, but the indentation is slightly different from that of the predecessors.
>  I personally hope to keep it consistent with the predecessors.

Alignment should match the open parenthesis. See PARENTHESIS_ALIGNMENT in
scripts/checkpatch.pl. It's not a strict requirement but it makes the
code more readable. See also the indentation of VENDOR_STRING_FLG().

Thanks,
Rong

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* 答复: 答复: [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A
  2026-07-24 12:02     ` Rong Zhang
@ 2026-07-24 12:11       ` 胡连勤
  0 siblings, 0 replies; 8+ messages in thread
From: 胡连勤 @ 2026-07-24 12:11 UTC (permalink / raw)
  To: Rong Zhang, perex@perex.cz, tiwai@suse.com
  Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org

Hi Rong:

> >
> > >
> > > 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?
> > The VID & PID are the same as those of Apple's official digital headphones.
> > This is the VID & PID information of digital headphones purchased from Apple:
> >
> > [20946.829805] usb 1-1: New USB device found, idVendor=05ac, idProduct=110b, bcdDevice=26.81
> > [20946.829811] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> > [20946.829813] usb 1-1: Product: EarPods
> > [20946.829815] usb 1-1: Manufacturer: Apple, Inc.
> > [20946.829816] usb 1-1: SerialNumber: JCRF0XQQH1
> > [20946.830111] usb 1-1: usb_probe_device
> >
> > >
> > > 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.
> >
> > The device's VID & PID information are exactly the same as Apple's official information.
> > Misusing Apple digital headphones' VID and PID information
> 
> It doesn't matter at all whether the PID is the same as one of Apple
> products.
Yes, Agreed, PID cannot represent the manufacturer.


> Between two different manufacturers there is only a VID conflict, but no
> PID conflict. It is a PID conflict *only if* two different products from
> *JKY Technology* share the same PID, but you haven't seen another JKY
> Technology product with the same PID, right?
Yes, we haven't encountered it yet.

> 
> >
> > >
> > > >
> > > > 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@vivo.com>
> > > > ---
> > > >  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.
> >
> > OK, The comments should include information about any conflicting vid and pid information.
> >
> > >
> > > 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.
> > After careful inspection, the indentation in quirk.c appears to be consistent with previous indentation practices.
> >
> > 	DEVICE_FLG(0x413c, 0xa506, /* Dell AE515 sound bar */
> > 		   QUIRK_FLAG_GET_SAMPLE_RATE),
> > 	DEVICE_FLG(0x534d, 0x0021, /* MacroSilicon MS2100/MS2106 */
> > 		   QUIRK_FLAG_ALIGN_TRANSFER),
> > 	DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
> > 		   QUIRK_FLAG_ALIGN_TRANSFER),
> > 	DEVICE_FLG(0x84ef, 0x0082, /* Hotone Audio Pulze Mini */
> > 		   QUIRK_FLAG_MIXER_PLAYBACK_LINEAR_VOL | QUIRK_FLAG_MIXER_CAPTURE_LINEAR_VOL),
> >
> > >
> > > 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),
> > >
> > OK,This way of writing is better, but the indentation is slightly different from that of the predecessors.
> >  I personally hope to keep it consistent with the predecessors.
> 
> Alignment should match the open parenthesis. See PARENTHESIS_ALIGNMENT in
> scripts/checkpatch.pl. It's not a strict requirement but it makes the
> code more readable. See also the indentation of VENDOR_STRING_FLG().

OK,I'll make some changes and add:
Suggested by: Rong Zhang <i@rong.moe>


Thanks
Lianqin

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-07-24 12:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-24  8:29 [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technology Q2A 胡连勤
2026-07-24  9:08 ` Takashi Iwai
2026-07-24 11:08 ` Rong Zhang
2026-07-24 11:30   ` Takashi Iwai
2026-07-24 11:56     ` 答复: " 胡连勤
2026-07-24 11:41   ` 胡连勤
2026-07-24 12:02     ` Rong Zhang
2026-07-24 12:11       ` 答复: " 胡连勤

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox