Re: [PATCH] ALSA: usb-audio: Disable quirks for BOSS Katana amplifiers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for the response Takashi,

How should this be distinguishing between Roland and BOSS? They both have
the vendor ID 0x0582.

Cheers,

Keith

On Wed, 14 Oct 2020 at 14:09, Takashi Iwai <tiwai@xxxxxxx> wrote:

> On Wed, 14 Oct 2020 14:17:35 +0200,
> Mailing Lists wrote:
> >
> > Following up on this, it appears there are a bunch of the
> newer-generation
> > Roland/Boss devices which need similar treatment.
> >
> > So far I have tested the GT-1, the GT-001, and the BR-80, and others have
> > reported the RC-300 as working with similar modifications. I have been
> using
> > the following change to the code in pcm.c set_sync_ep_implicit_fb_quirk:
> >
> >     case USB_ID(0x0582, 0x01d8): /* BOSS Katana */
> >     case USB_ID(0x0582, 0x0130): /* BOSS Micro BR-80 */
> >     case USB_ID(0x0582, 0x0138): /* BOSS RC-300 */
> >     case USB_ID(0x0582, 0x01d6): /* BOSS GT-1 */
> >     case USB_ID(0x0582, 0x01e5): /* BOSS GT-001 */
> > /* BOSS Katana amplifiers and many other newer BOSS devices do not need
> quirks
> > */
> >
> > There's probably others too, such as the GT-100 (I believe the GT-001 and
> > GT-100 have similar hardware).
> >
> > My question is, should this just be submitted as a patch to pcm.c or
> would it
> > be better handled in quirks and, if so, how?
> >
> > Or something else?
>
> Do we really need this change at all?  I looked at the code again, and
> I noticed that basically the function should return 0 without setting
> anything else even if you don't have the explicit ID checks there.
>
> The function looks like:
>
> static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
>                                          struct usb_device *dev,
>                                          struct usb_interface_descriptor
> *altsd,
>                                          unsigned int attr)
> {
>         ....
>         switch (subs->stream->chip->usb_id) {
>         ....
>         case USB_ID(0x0582, 0x01d8): /* BOSS Katana */
>                 /* BOSS Katana amplifiers do not need quirks */
>                 return 0;
>         }
>
>         if (attr == USB_ENDPOINT_SYNC_ASYNC &&
>             altsd->bInterfaceClass == USB_CLASS_VENDOR_SPEC &&
>             altsd->bInterfaceProtocol == 2 &&
>             altsd->bNumEndpoints == 1 &&
>             USB_ID_VENDOR(subs->stream->chip->usb_id) == 0x0582 /* Roland
> */ &&
>             search_roland_implicit_fb(dev, altsd->bInterfaceNumber + 1,
>                                       altsd->bAlternateSetting,
>                                       &alts, &ep) >= 0) {
>                 goto add_sync_ep;
>         }
>
>         /* No quirk */
>         return 0;
>
> ... and the lengthy if-conditions after the switch/case is applied
> only for Roland devices, hence it shouldn't influence on BOSS
> devices.  After that point, the immediate return with 0, which is the
> same as we do in switch/case.  So the explicit check of BOSS devices
> there looks superfluous.
>
>
> thanks,
>
> Takashi
>


-- 
-- 
Keith A Milner



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux