Re: [PATCH] ALSA: usb-audio: Add sample rate quirk for Plantronics P610

From: Takashi Iwai
Date: Fri Oct 06 2017 - 04:42:17 EST


On Fri, 06 Oct 2017 06:27:59 +0200,
Kai-Heng Feng wrote:
>
> Hi,
>
> On Fri, Oct 6, 2017 at 2:22 AM, Takashi Iwai <tiwai@xxxxxxx> wrote:
> > On Thu, 05 Oct 2017 20:04:06 +0200,
> > Kai-Heng Feng wrote:
> >>
> >> Like other Plantronics devices, P610 does not support sample
> >> rate reading. Apply sample rate quirk to it.
> >>
> >> BugLink: https://bugs.launchpad.net/bugs/1719853
> >>
> >> Signed-off-by: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx>
> >
> > Hrm, maybe we should ignore all Plantronics devices?
> > Also MS Lifecam and Phoenix devices are such candidates.
> >
> > So something like below.
> >
> > Takashi
> >
> > -- 8< --
> > From: Takashi Iwai <tiwai@xxxxxxx>
> > Subject: [PATCH] ALSA: usb-audio: Apply vendor ID matching for sample rate
> > quirk
> >
> > So far, lots of Plantronics, MS and Phoenix Audio devices need the
> > quirk not to read sample rate back, and the list just grows.
> > In this patch, instead of adding each device, apply the quirk by
> > matching with these vendors.
> >
> > Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
> > ---
> > sound/usb/quirks.c | 23 +++++++++--------------
> > 1 file changed, 9 insertions(+), 14 deletions(-)
> >
> > diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> > index b8cb57aeec77..9aeb05f61f78 100644
> > --- a/sound/usb/quirks.c
> > +++ b/sound/usb/quirks.c
> > @@ -1128,29 +1128,24 @@ bool snd_usb_get_sample_rate_quirk(struct snd_usb_audio *chip)
> > /* devices which do not support reading the sample rate. */
> > switch (chip->usb_id) {
> > case USB_ID(0x041E, 0x4080): /* Creative Live Cam VF0610 */
> > - case USB_ID(0x045E, 0x075D): /* MS Lifecam Cinema */
> > - case USB_ID(0x045E, 0x076D): /* MS Lifecam HD-5000 */
> > - case USB_ID(0x045E, 0x076E): /* MS Lifecam HD-5001 */
> > - case USB_ID(0x045E, 0x076F): /* MS Lifecam HD-6000 */
> > - case USB_ID(0x045E, 0x0772): /* MS Lifecam Studio */
> > - case USB_ID(0x045E, 0x0779): /* MS Lifecam HD-3000 */
> > - case USB_ID(0x047F, 0x02F7): /* Plantronics BT-600 */
> > - case USB_ID(0x047F, 0x0415): /* Plantronics BT-300 */
> > - case USB_ID(0x047F, 0xAA05): /* Plantronics DA45 */
> > - case USB_ID(0x047F, 0xC022): /* Plantronics C310 */
> > - case USB_ID(0x047F, 0xC036): /* Plantronics C520-M */
> > case USB_ID(0x04D8, 0xFEEA): /* Benchmark DAC1 Pre */
> > case USB_ID(0x0556, 0x0014): /* Phoenix Audio TMX320VC */
> > case USB_ID(0x05A3, 0x9420): /* ELP HD USB Camera */
> > case USB_ID(0x074D, 0x3553): /* Outlaw RR2150 (Micronas UAC3553B) */
> > case USB_ID(0x1395, 0x740a): /* Sennheiser DECT */
> > case USB_ID(0x1901, 0x0191): /* GE B850V3 CP2114 audio interface */
> > - case USB_ID(0x1de7, 0x0013): /* Phoenix Audio MT202exe */
> > - case USB_ID(0x1de7, 0x0014): /* Phoenix Audio TMX320 */
> > - case USB_ID(0x1de7, 0x0114): /* Phoenix Audio MT202pcs */
> > case USB_ID(0x21B4, 0x0081): /* AudioQuest DragonFly */
> > return true;
> > }
> > +
> > + /* devices of these vendors don't support reading rate, either */
> > + switch (USB_ID_VENDOR(chip->usb_id)) {
> > + case 0x045E: /* MS Lifecam */
> > + case 0x047F: /* Plantronics */
> > + case 0x1de7: /* Phoenix Audio */
> > + return true;
> > + }
> > +
> > return false;
> > }
> >
>
> This is definitely a better approach. Thanks!
>
> Acked-by: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx>

Thanks. I'll queue it for-next branch.
Meanwhile, the fix you submitted is still needed for 4.14, so I merged
it to for-linus branch, too.


Takashi