[PATCH 2/2] ALSA: usb-audio: Generic application of implicit fb to Roland/BOSS devices

Keith Milner maillist at superlative.org
Sat Apr 24 13:09:53 CEST 2021


Hi,
I updated to the latest "for-next" branch and did some testing, including
digging out some old Roland/Boss stuff from my cupboard, and the following
all work for both capture and playback:

Boss Katana (specifically Katana 100W mk1)
Boss GT-1
Boss GT-001
Boss BR-80
Roland V-Studio 20

The only failure was a Roland SD-50 unit which worked on capture, but did
not play back unless capture was running at the same time. I think I
previously tested this with Takashi-san, and it didn't work then, but we
didn't follow up on it as we were focusing on other devices.

I may try to dig into this some more, but the lsusb follows if anyone wants
to make any suggestions. I'm actually not, personally, that worried about
this particular device being fully working as it works for me in Ardour
(which opens both capture and playback at the same time), but I thought I
would throw it in in case there was an obvious case which might apply to
other Roland/Boss devices.

Bus 001 Device 015: ID 0582:0114 Roland Corp. SD-50
Device Descriptor:
 bLength                18
 bDescriptorType         1
 bcdUSB               1.10
 bDeviceClass          255 Vendor Specific Class
 bDeviceSubClass         0
 bDeviceProtocol       255
 bMaxPacketSize0        64
 idVendor           0x0582 Roland Corp.
 idProduct          0x0114 SD-50
 bcdDevice            1.00
 iManufacturer           1 Roland
 iProduct                2 SD-50
 iSerial                 0
 bNumConfigurations      1
 Configuration Descriptor:
   bLength                 9
   bDescriptorType         2
   wTotalLength       0x00a7
   bNumInterfaces          3
   bConfigurationValue     1
   iConfiguration          0
   bmAttributes         0x80
     (Bus Powered)
   MaxPower              480mA
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      2
     bInterfaceProtocol      2
     iInterface              0
     ** UNRECOGNIZED:  06 24 f1 01 00 00
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       1
     bNumEndpoints           1
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      2
     bInterfaceProtocol      2
     iInterface              0
     ** UNRECOGNIZED:  07 24 01 01 00 01 00
     ** UNRECOGNIZED:  0b 24 02 01 02 03 18 01 44 ac 00
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x01  EP 1 OUT
       bmAttributes            9
         Transfer Type            Isochronous
         Synch Type               Adaptive
         Usage Type               Data
       wMaxPacketSize     0x0140  1x 320 bytes
       bInterval               1
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        1
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      2
     bInterfaceProtocol      1
     iInterface              0
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        1
     bAlternateSetting       1
     bNumEndpoints           1
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      2
     bInterfaceProtocol      1
     iInterface              0
     ** UNRECOGNIZED:  07 24 01 07 00 01 00
     ** UNRECOGNIZED:  0b 24 02 01 02 03 18 01 44 ac 00
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x82  EP 2 IN
       bmAttributes            5
         Transfer Type            Isochronous
         Synch Type               Asynchronous
         Usage Type               Data
       wMaxPacketSize     0x0140  1x 320 bytes
       bInterval               1
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        2
     bAlternateSetting       0
     bNumEndpoints           2
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      3
     bInterfaceProtocol      0
     iInterface              0
     ** UNRECOGNIZED:  06 24 f1 02 03 03
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x03  EP 3 OUT
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0040  1x 64 bytes
       bInterval               0
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x84  EP 4 IN
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0040  1x 64 bytes
       bInterval               0
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        2
     bAlternateSetting       1
     bNumEndpoints           2
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      3
     bInterfaceProtocol      0
     iInterface              0
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x03  EP 3 OUT
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0040  1x 64 bytes
       bInterval               0
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x84  EP 4 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0040  1x 64 bytes
       bInterval               1
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
 (Bus Powered)


Regards,

Keith







On Fri, 23 Apr 2021 at 10:29, Takashi Iwai <tiwai at suse.de> wrote:

> On Thu, 22 Apr 2021 21:20:19 +0200,
> Mike Oliphant wrote:
> >
> > I had wondered whether the hardcoded endpoints were necessary (or always
> > accurate).
> >
> > This method seems much cleaner, and I can report that it is working as
> > expected (playback-only, record-only, and full duplex) on the BOSS GT-1.
>
> Thanks for confirmation.
>
> FWIW, the patches are on my for-next branch, destined for 5.13
> kernel.
>
>
> Takashi
>


-- 
-- 
Keith A Milner


More information about the Alsa-devel mailing list