[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