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

Takashi Iwai tiwai at suse.de
Wed Oct 14 16:55:02 CEST 2020


On Wed, 14 Oct 2020 16:31:02 +0200,
Mailing Lists wrote:
> 
> OK, I will do that.
> 
> Quick question: what is the best git I should clone to create patches against
> these days? I've been out of the loop for a few years now.

At best, for-linus branch of my sound.git tree
  git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git

There is a copy in github, too.


Takashi

> 
> Cheers,
> 
> Keith
> 
> On Wed, 14 Oct 2020 at 15:00, Takashi Iwai <tiwai at suse.de> wrote:
> 
>     On Wed, 14 Oct 2020 15:56:32 +0200,
>     Mailing Lists wrote:
>     >
>     > Yes, and I don't think this is practical (at least, not obviously).
>     >
>     > The "Roland" vs "BOSS" thing is pure branding. I have BOSS branded
>     devices,
>     > like the JS-8, which work perfectly without the patch as an example. It
>     > wouldn't surprise me if there are recent Roland branded devices which
>     require
>     > the patch.
>     >
>     > So I, personally, think it is beyond brand and is device range or
>     generation
>     > specific. I guess it is possible there may be some technical
>     parameter within
>     > the device descriptor which could indicate which variant the device is,
>     but I
>     > don't know what that might be (if at all). At this point I think we
>     probably
>     > have to apply a conditional setting based on the Product ID.
>     >
>     > Given that, is it best to continue hacking these into pcm.c, or should
>     we be
>     > looking at a quirks-table way to describe these?
>    
>     Currently it's better to grow the explicit allow-list, I suppose.
>     Those are still handful, hence manageable enough.
>    
>     But, we should consider improving search_roland_implicit_fb(), too.
>     Both actions don't conflict, and once after we establish the better
>     implicit-fb check, the allow-list can be dropped.
> 
>     thanks,
>    
>     Takashi
>    
>     >
>     > Cheers,
>     >
>     > Keith
>     >
>     > On Wed, 14 Oct 2020 at 14:47, Takashi Iwai <tiwai at suse.de> wrote:
>     >
>     >     On Wed, 14 Oct 2020 15:33:03 +0200,
>     >     Mailing Lists wrote:
>     >     >
>     >     > Thanks for the response Takashi,
>     >     >
>     >     > How should this be distinguishing between Roland and BOSS? They
>     both
>     >     have the
>     >     > vendor ID 0x0582.
>     >   
>     >     Ah, right, I missed that point :-<
>     >   
>     >     So the question would be rather how to detect BOSS devices
>     >     effectively...
>     >
>     >     thanks,
>     >   
>     >     Takashi
>     >   
>     >     >
>     >     > Cheers,
>     >     >
>     >     > Keith
>     >     >
>     >     > On Wed, 14 Oct 2020 at 14:09, Takashi Iwai <tiwai at suse.de> 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
>     >     >
>     >     >
>     >
>     > --
>     > --
>     > Keith A Milner
>     >
>     >
> 
> --
> --
> Keith A Milner
> 
> 


More information about the Alsa-devel mailing list