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

Mike Oliphant oliphant at nostatic.org
Fri Oct 16 03:21:24 CEST 2020


Thanks for the input, Takashi - and I completely understand the difficulty
in resolving problems for specific hardware that you don't have available.

Mike

On Thu, Oct 15, 2020 at 5:37 AM Takashi Iwai <tiwai at suse.de> wrote:

> On Wed, 14 Oct 2020 23:49:25 +0200,
> Mike Oliphant wrote:
> >
> > Yeah, I think the work-around I found is just that - a solution that
> works
> > in my particular situation, but does not resolve what seems to be a
> deeper
> > issue with implicit feedback on these devices.
> >
> > I'd love to see a real fix, but I haven't had the time to dig more into
> the
> > code. It would be great to get some input from whoever wrote the implicit
> > feedback system in the first place.
>
> The already-in-use error is a long-standing problem of implicit fb
> implementations.  Recently the support for full duplex was introduced
> and should work in some level, but I'm afraid that it's not perfect.
> In particular, it may still depend on the order of the device opens.
>
> Unfortunately I have no hardware to test that shows the behavior, so
> it's a bit tough to debug from my side.
>
>
> thanks,
>
> Takashi
>
>
> >
> > Mike
> >
> > On Wed, Oct 14, 2020 at 1:57 PM Keith Milner <maillist at superlative.org>
> > wrote:
> >
> > > I thought I would re-try the change you made. When I tried this last
> year
> > > on my old laptop, I recall I couldn't get it working properly.
> > >
> > > This time around it works... sort of, but isn't without some
> significant
> > > issues for me. For a start, it only works in Jack. If I try to access
> the
> > > alsa device directly (for instance, using ALSA mode in Ardour or using
> > > Audacity) it doesn't work. It also fills my dmesg with error messages:
> > >
> > > [  184.089158] usb 1-4: Unable to change format on ep #8e: already in
> use
> > > [  184.089232] usb 1-4: Unable to change format on ep #8e: already in
> use
> > > [  184.089401] usb 1-4: Unable to change format on ep #8e: already in
> use
> > > [  184.089619] usb 1-4: Unable to change format on ep #8e: already in
> use
> > >
> > > So, unfortunately, whilst it seems like it's a tactical fix for some
> > > situations, it seems to be broken in other ways.
> > >
> > > When I tried it on my GT-001 I got similar results, although only one
> > > "Unable to change format on ep #8e: already in use" message this time
> > > rather than the logs getting spammed. Interestingly, I got more xruns
> with
> > > this as well.
> > >
> > > Personally I'll be going back to how I had it before with the implicit
> > > feedback disabled, as it's more reliable and functional for me, but
> it's
> > > clear this one isn't solved yet.
> > >
> > > Cheers,
> > >
> > > Keith
> > >
> > > On Wed, 14 Oct 2020 at 19:17, Mike Oliphant <oliphant at nostatic.org>
> wrote:
> > >
> > >> That's also what I see from dmesg when I use the quirk device ID
> patch.
> > >> I'm pretty sure it means that implicit feedback is not being enabled
> for
> > >> your device.
> > >>
> > >> Since these devices are designed to work with implicit feedback, the
> > >> ideal solution would be to have them work by using it, rather than
> > >> disabling it.
> > >>
> > >> That said, patching the quirk code with the extra device IDs would
> > >> make it so they at least produce output...
> > >>
> > >> The "fix" I'm currently using (linked to in my first response) makes
> the
> > >> implicit feedback code not wait to send data until it has received
> some. It
> > >> works perfectly for me, but success has been mixed for others so I
> didn't
> > >> feel comfortable submitting it as a patch.
> > >>
> > >> FYI, I did a little write-up here:
> > >>
> > >>
> > >>
> http://blog.nostatic.org/2020/01/getting-boss-gt-1-effects-processor-to.html
> > >>
> > >> It outlines my struggle with this issue - from trying the quirk ID
> patch,
> > >> to messing with the sample rate, and finally to modifying the implicit
> > >> feedback behavior.
> > >>
> > >> Mike
> > >>
> > >> On Wed, Oct 14, 2020 at 10:23 AM Mailing Lists <
> maillist at superlative.org>
> > >> wrote:
> > >>
> > >>> Hi Mike,
> > >>> I'm getting this:
> > >>>
> > >>> [Oct14 18:21] snd_usb_audio:set_format: usb 1-4: setting usb
> interface
> > >>> 1:1
> > >>> [  +0.000003] snd_usb_audio:snd_usb_add_endpoint: usb 1-4: Re-using
> EP d
> > >>> in iface 1,1 @00000000d0aa6911
> > >>> [  +0.000018] snd_usb_audio:snd_usb_endpoint_set_params: usb 1-4:
> > >>> Setting params for ep #d (type 0, 3 urbs), ret=0
> > >>> [  +0.000002] snd_usb_audio:start_endpoints: usb 1-4: Starting data
> EP
> > >>> @00000000d0aa6911
> > >>>
> > >>> Cheers,
> > >>>
> > >>> Keith
> > >>>
> > >>> On Wed, 14 Oct 2020 at 17:46, Mike Oliphant <oliphant at nostatic.org>
> > >>> wrote:
> > >>>
> > >>>> Hi Keith,
> > >>>>
> > >>>> The lsusb output just shows that the endpoint is there, but not
> that it
> > >>>> is getting connected when the device is initialized. Can you check
> dmesg
> > >>>> output when you use the device for playback?
> > >>>>
> > >>>> This is what I see from dmesg when the implicit feedback endpoint is
> > >>>> being used:
> > >>>>
> > >>>> [   26.787360] usb 1-1.1: setting usb interface 1:1
> > >>>> [   26.787367] Creating new playback data endpoint #d
> > >>>> [   26.787375] Creating new capture data endpoint #8e
> > >>>> [   26.787678] usb 1-1.1: Setting params for ep #d (type 0, 12
> urbs),
> > >>>> ret=0
> > >>>> [   26.787685] usb 1-1.1: match_endpoint_audioformats: (fmt
> @6bc43c84)
> > >>>> score 2
> > >>>> [   26.787745] usb 1-1.1: Setting params for ep #8e (type 0, 12
> urbs),
> > >>>> ret=0
> > >>>> [   26.787751] usb 1-1.1: Starting data EP @a14130b5
> > >>>> [   26.788420] usb 1-1.1: Starting sync EP @720fb7cf
> > >>>>
> > >>>> Note the "Starting sync EP".
> > >>>>
> > >>>> Mike
> > >>>>
> > >>>> On Wed, Oct 14, 2020 at 9:35 AM Mailing Lists <
> maillist at superlative.org>
> > >>>> wrote:
> > >>>>
> > >>>>> On Wed, 14 Oct 2020 at 17:12, Mike Oliphant <oliphant at nostatic.org
> >
> > >>>>> wrote:
> > >>>>>
> > >>>>>> Keith - are you getting an implicit feedback endpoint created when
> > >>>>>> you run with the patch?
> > >>>>>>
> > >>>>>
> > >>>>> Hi Mike,
> > >>>>>
> > >>>>> It appears that I do. For reference I'm on kernel 5.4.0-51:
> > >>>>>
> > >>>>> Bus 001 Device 007: ID 0582:01d6 Roland Corp. GT-1
> > >>>>> Device Descriptor:
> > >>>>>  bLength                18
> > >>>>>  bDescriptorType         1
> > >>>>>  bcdUSB               2.00
> > >>>>>  bDeviceClass          255 Vendor Specific Class
> > >>>>>  bDeviceSubClass         0
> > >>>>>  bDeviceProtocol       255
> > >>>>>  bMaxPacketSize0        64
> > >>>>>  idVendor           0x0582 Roland Corp.
> > >>>>>  idProduct          0x01d6
> > >>>>>  bcdDevice            0.00
> > >>>>>  iManufacturer           1 BOSS
> > >>>>>  iProduct                2 GT-1
> > >>>>>  iSerial                 0
> > >>>>>  bNumConfigurations      1
> > >>>>>  Configuration Descriptor:
> > >>>>>    bLength                 9
> > >>>>>    bDescriptorType         2
> > >>>>>    wTotalLength       0x00bc
> > >>>>>    bNumInterfaces          4
> > >>>>>    bConfigurationValue     1
> > >>>>>    iConfiguration          0
> > >>>>>    bmAttributes         0xc0
> > >>>>>      Self Powered
> > >>>>>    MaxPower                0mA
> > >>>>>    Interface Descriptor:
> > >>>>>      bLength                 9
> > >>>>>      bDescriptorType         4
> > >>>>>      bInterfaceNumber        0
> > >>>>>      bAlternateSetting       0
> > >>>>>      bNumEndpoints           0
> > >>>>>      bInterfaceClass       255 Vendor Specific Class
> > >>>>>      bInterfaceSubClass    255 Vendor Specific Subclass
> > >>>>>      bInterfaceProtocol      0
> > >>>>>      iInterface              0
> > >>>>>    Interface Descriptor:
> > >>>>>      bLength                 9
> > >>>>>      bDescriptorType         4
> > >>>>>      bInterfaceNumber        1
> > >>>>>      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        1
> > >>>>>      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 04 18 01 44 ac 00
> > >>>>>      ** UNRECOGNIZED:  06 24 f1 04 16 00
> > >>>>>      Endpoint Descriptor:
> > >>>>>        bLength                 7
> > >>>>>        bDescriptorType         5
> > >>>>>        bEndpointAddress     0x0d  EP 13 OUT
> > >>>>>        bmAttributes            5
> > >>>>>          Transfer Type            Isochronous
> > >>>>>          Synch Type               Asynchronous
> > >>>>>          Usage Type               Data
> > >>>>>        wMaxPacketSize     0x0038  1x 56 bytes
> > >>>>>        bInterval               1
> > >>>>>    Interface Descriptor:
> > >>>>>      bLength                 9
> > >>>>>      bDescriptorType         4
> > >>>>>      bInterfaceNumber        2
> > >>>>>      bAlternateSetting       0
> > >>>>>      bNumEndpoints           0
> > >>>>>      bInterfaceClass       255 Vendor Specific Class
> > >>>>>      bInterfaceSubClass      2
> > >>>>>      bInterfaceProtocol      1
> > >>>>>      iInterface              0
> > >>>>>    Interface Descriptor:
> > >>>>>      bLength                 9
> > >>>>>      bDescriptorType         4
> > >>>>>      bInterfaceNumber        2
> > >>>>>      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 04 18 01 44 ac 00
> > >>>>>      ** UNRECOGNIZED:  06 24 f1 04 16 00
> > >>>>>      Endpoint Descriptor:
> > >>>>>        bLength                 7
> > >>>>>        bDescriptorType         5
> > >>>>>        bEndpointAddress     0x8e  EP 14 IN
> > >>>>>        bmAttributes           37
> > >>>>>          Transfer Type            Isochronous
> > >>>>>          Synch Type               Asynchronous
> > >>>>>          Usage Type               Implicit feedback Data
> > >>>>>        wMaxPacketSize     0x0038  1x 56 bytes
> > >>>>>        bInterval               1
> > >>>>>    Interface Descriptor:
> > >>>>>      bLength                 9
> > >>>>>      bDescriptorType         4
> > >>>>>      bInterfaceNumber        3
> > >>>>>      bAlternateSetting       0
> > >>>>>      bNumEndpoints           2
> > >>>>>      bInterfaceClass       255 Vendor Specific Class
> > >>>>>      bInterfaceSubClass      3
> > >>>>>      bInterfaceProtocol      0
> > >>>>>      iInterface              0
> > >>>>>      ** UNRECOGNIZED:  06 24 f1 02 01 01
> > >>>>>      Endpoint Descriptor:
> > >>>>>        bLength                 7
> > >>>>>        bDescriptorType         5
> > >>>>>        bEndpointAddress     0x03  EP 3 OUT
> > >>>>>        bmAttributes            2
> > >>>>>          Transfer Type            Bulk
> > >>>>>          Synch Type               None
> > >>>>>          Usage Type               Data
> > >>>>>        wMaxPacketSize     0x0200  1x 512 bytes
> > >>>>>        bInterval               1
> > >>>>>      Endpoint Descriptor:
> > >>>>>        bLength                 7
> > >>>>>        bDescriptorType         5
> > >>>>>        bEndpointAddress     0x84  EP 4 IN
> > >>>>>        bmAttributes            2
> > >>>>>          Transfer Type            Bulk
> > >>>>>          Synch Type               None
> > >>>>>          Usage Type               Data
> > >>>>>        wMaxPacketSize     0x0200  1x 512 bytes
> > >>>>>        bInterval               0
> > >>>>>    Interface Descriptor:
> > >>>>>      bLength                 9
> > >>>>>      bDescriptorType         4
> > >>>>>      bInterfaceNumber        3
> > >>>>>      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            3
> > >>>>>          Transfer Type            Interrupt
> > >>>>>          Synch Type               None
> > >>>>>          Usage Type               Data
> > >>>>>        wMaxPacketSize     0x0200  1x 512 bytes
> > >>>>>        bInterval               4
> > >>>>>      Endpoint Descriptor:
> > >>>>>        bLength                 7
> > >>>>>        bDescriptorType         5
> > >>>>>        bEndpointAddress     0x85  EP 5 IN
> > >>>>>        bmAttributes            3
> > >>>>>          Transfer Type            Interrupt
> > >>>>>          Synch Type               None
> > >>>>>          Usage Type               Data
> > >>>>>        wMaxPacketSize     0x0200  1x 512 bytes
> > >>>>>        bInterval               4
> > >>>>> Device Qualifier (for other device speed):
> > >>>>>  bLength                10
> > >>>>>  bDescriptorType         6
> > >>>>>  bcdUSB               2.00
> > >>>>>  bDeviceClass          255 Vendor Specific Class
> > >>>>>  bDeviceSubClass         0
> > >>>>>  bDeviceProtocol       255
> > >>>>>  bMaxPacketSize0        64
> > >>>>>  bNumConfigurations      1
> > >>>>> can't get debug descriptor: Resource temporarily unavailable
> > >>>>> Device Status:     0x0001
> > >>>>>  Self Powered
> > >>>>>
> > >>>>>
> > >>>>> --
> > >>>>> Keith A Milner
> > >>>>>
> > >>>>
> > >>>
> > >>> --
> > >>> --
> > >>> Keith A Milner
> > >>>
> > >>
> > >
> > > --
> > > --
> > > Keith A Milner
> > >
> >
>


More information about the Alsa-devel mailing list