答复: 答复: [PATCH] ALSA: usb-audio: Add iface reset and delay quirk for JKY Technolog y Q2A
胡连勤 <[email protected]>
| Newsgroups | gmane.linux.sound,gmane.linux.kernel |
|---|---|
| Message-ID | <TYUPR06MB6217DF257393FF328C1602FAD2CF2@TYUPR06MB6217.apcprd06.prod.outlook.com> |
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 <[email protected]> > > > > --- > > > > 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 <[email protected]> Thanks Lianqin