retire_capture_urb: Corrected urb data len

Sean Anderson sean.anderson at seco.com
Fri Aug 26 20:57:53 CEST 2022



On 8/26/22 12:36 PM, Takashi Iwai wrote:
> On Fri, 26 Aug 2022 18:22:24 +0200,
> Sean Anderson wrote:
>> 
>> Hi all,
>> 
>> I have a "FiiO DigiHug USB Audio" sound card (1852:7022) [3]. I have had
>> no problems with the audio, but I did notice a large number of message
>> like 
>> 
>> retire_capture_urb: 4992 callbacks suppressed
>> 
>> in my dmesg [1]. This is caused by the "Corrected urb data len."
>> warning.
> 
> What exact values are shown there?

Unfortunately, as detailed below, I was unable to turn off ratelimiting.

> The problem is that your hardware
> (likely a buggy firmware) returns the unaligned size of bytes as the
> data.  Maybe it's worth to replace dev_warn_ratelimited() there with
> dev_warn() and take all warnings once.  Then we can see what kind of
> values are delivered from the hardware.

I'll have an attempt at that next week

>> The patch adding this warning [2] makes it seem like
>> this warning should be an uncommon occurance. However, based on the
>> number of suppressed callbacks, this seems to be happening at a rate of
>> around 500 Hz.
>> 
>> Is this buggy hardware? Or is this a bug in the driver? Does there need
>> to be a quirk? Or perhaps the warning above should be a debug instead?
> 
> There is no quirk for that.  As long as the device works with that
> workaround (except for messages), we can simply add a quirk to not
> warn but always apply the workaround silently for such devices.

OK. I wasn't sure what the correct resolution would be.

--Sean

> 
>> 
>> I'm using 5.15.0-46-generic. I know, I know; this is a vendor
>> kernel. However, I went through the commits for sound/usb/pcm.c and
>> didn't see any major differences. I also previously saw this issue on
>> 5.4, so this probably isn't a regression.
>> 
>> --Sean
>> 
>> [1] I would have liked to post the actual message, but I was unable to
>> figure out how to disable ratelimiting. I tried setting
>> /proc/sys/kernel/printk_ratelimit to 0,
>> /proc/sys/kernel/printk_ratelimit_burst to 5000, and
>> /proc/sys/kernel/printk to 8. However, nothing seemed to have any effect
>> (except that the callbacks suppressed messages were disabled). I find
>> this very strange, given that the callbacks suppressed message uses
>> KERN_WARN, and so does dev_warn_ratelimited.
>> [2] https://lore.kernel.org/all/4B28A659.6070303@ladisch.de/T/
>> [3]
>> Device Descriptor:
>>   bLength                18
>>   bDescriptorType         1
>>   bcdUSB               1.10
>>   bDeviceClass            0 
>>   bDeviceSubClass         0 
>>   bDeviceProtocol         0 
>>   bMaxPacketSize0         8
>>   idVendor           0x1852 GYROCOM C&C Co., LTD
>>   idProduct          0x7022 
>>   bcdDevice            0.01
>>   iManufacturer           1 FiiO
>>   iProduct                2 DigiHug USB Audio
>>   iSerial                 0 
>>   bNumConfigurations      1
>>   Configuration Descriptor:
>>     bLength                 9
>>     bDescriptorType         2
>>     wTotalLength       0x0182
>>     bNumInterfaces          4
>>     bConfigurationValue     1
>>     iConfiguration          0 
>>     bmAttributes         0x80
>>       (Bus Powered)
>>     MaxPower              500mA
>>     Interface Descriptor:
>>       bLength                 9
>>       bDescriptorType         4
>>       bInterfaceNumber        0
>>       bAlternateSetting       0
>>       bNumEndpoints           1
>>       bInterfaceClass         3 Human Interface Device
>>       bInterfaceSubClass      0 
>>       bInterfaceProtocol      0 
>>       iInterface              0 
>>         HID Device Descriptor:
>>           bLength                 9
>>           bDescriptorType        33
>>           bcdHID               1.00
>>           bCountryCode            0 Not supported
>>           bNumDescriptors         1
>>           bDescriptorType        34 Report
>>           wDescriptorLength      58
>>          Report Descriptors: 
>>            ** UNAVAILABLE **
>>       Endpoint Descriptor:
>>         bLength                 7
>>         bDescriptorType         5
>>         bEndpointAddress     0x81  EP 1 IN
>>         bmAttributes            3
>>           Transfer Type            Interrupt
>>           Synch Type               None
>>           Usage Type               Data
>>         wMaxPacketSize     0x0012  1x 18 bytes
>>         bInterval              32
>>     Interface Descriptor:
>>       bLength                 9
>>       bDescriptorType         4
>>       bInterfaceNumber        1
>>       bAlternateSetting       0
>>       bNumEndpoints           0
>>       bInterfaceClass         1 Audio
>>       bInterfaceSubClass      1 Control Device
>>       bInterfaceProtocol      0 
>>       iInterface              3 FiiO USB DAC-E10
>>       AudioControl Interface Descriptor:
>>         bLength                10
>>         bDescriptorType        36
>>         bDescriptorSubtype      1 (HEADER)
>>         bcdADC               1.00
>>         wTotalLength       0x003e
>>         bInCollection           2
>>         baInterfaceNr(0)        2
>>         baInterfaceNr(1)        3
>>       AudioControl Interface Descriptor:
>>         bLength                12
>>         bDescriptorType        36
>>         bDescriptorSubtype      2 (INPUT_TERMINAL)
>>         bTerminalID             5
>>         wTerminalType      0x0605 SPDIF interface
>>         bAssocTerminal          0
>>         bNrChannels             2
>>         wChannelConfig     0x0003
>>           Left Front (L)
>>           Right Front (R)
>>         iChannelNames           0 
>>         iTerminal               0 
>>       AudioControl Interface Descriptor:
>>         bLength                12
>>         bDescriptorType        36
>>         bDescriptorSubtype      2 (INPUT_TERMINAL)
>>         bTerminalID             9
>>         wTerminalType      0x0101 USB Streaming
>>         bAssocTerminal          0
>>         bNrChannels             2
>>         wChannelConfig     0x0003
>>           Left Front (L)
>>           Right Front (R)
>>         iChannelNames           0 
>>         iTerminal               0 
>>       AudioControl Interface Descriptor:
>>         bLength                 9
>>         bDescriptorType        36
>>         bDescriptorSubtype      3 (OUTPUT_TERMINAL)
>>         bTerminalID             3
>>         wTerminalType      0x0605 SPDIF interface
>>         bAssocTerminal          0
>>         bSourceID              16
>>         iTerminal               0 
>>       AudioControl Interface Descriptor:
>>         bLength                 9
>>         bDescriptorType        36
>>         bDescriptorSubtype      3 (OUTPUT_TERMINAL)
>>         bTerminalID             7
>>         wTerminalType      0x0101 USB Streaming
>>         bAssocTerminal          0
>>         bSourceID               5
>>         iTerminal               0 
>>       AudioControl Interface Descriptor:
>>         bLength                10
>>         bDescriptorType        36
>>         bDescriptorSubtype      6 (FEATURE_UNIT)
>>         bUnitID                16
>>         bSourceID               9
>>         bControlSize            1
>>         bmaControls(0)       0x01
>>           Mute Control
>>         bmaControls(1)       0x02
>>           Volume Control
>>         bmaControls(2)       0x02
>>           Volume Control
>>         iFeature                0 
>>     Interface Descriptor:
>>       bLength                 9
>>       bDescriptorType         4
>>       bInterfaceNumber        2
>>       bAlternateSetting       0
>>       bNumEndpoints           0
>>       bInterfaceClass         1 Audio
>>       bInterfaceSubClass      2 Streaming
>>       bInterfaceProtocol      0 
>>       iInterface              0 
>>     Interface Descriptor:
>>       bLength                 9
>>       bDescriptorType         4
>>       bInterfaceNumber        2
>>       bAlternateSetting       1
>>       bNumEndpoints           1
>>       bInterfaceClass         1 Audio
>>       bInterfaceSubClass      2 Streaming
>>       bInterfaceProtocol      0 
>>       iInterface              0 
>>       AudioStreaming Interface Descriptor:
>>         bLength                 7
>>         bDescriptorType        36
>>         bDescriptorSubtype      1 (AS_GENERAL)
>>         bTerminalLink           7
>>         bDelay                  0 frames
>>         wFormatTag         0x0001 PCM
>>       AudioStreaming Interface Descriptor:
>>         bLength                26
>>         bDescriptorType        36
>>         bDescriptorSubtype      2 (FORMAT_TYPE)
>>         bFormatType             1 (FORMAT_TYPE_I)
>>         bNrChannels             2
>>         bSubframeSize           2
>>         bBitResolution         16
>>         bSamFreqType            6 Discrete
>>         tSamFreq[ 0]         8000
>>         tSamFreq[ 1]        16000
>>         tSamFreq[ 2]        32000
>>         tSamFreq[ 3]        44100
>>         tSamFreq[ 4]        48000
>>         tSamFreq[ 5]        96000
>>       Endpoint Descriptor:
>>         bLength                 9
>>         bDescriptorType         5
>>         bEndpointAddress     0x82  EP 2 IN
>>         bmAttributes            9
>>           Transfer Type            Isochronous
>>           Synch Type               Adaptive
>>           Usage Type               Data
>>         wMaxPacketSize     0x0184  1x 388 bytes
>>         bInterval               1
>>         bRefresh                0
>>         bSynchAddress           0
>>         AudioStreaming Endpoint Descriptor:
>>           bLength                 7
>>           bDescriptorType        37
>>           bDescriptorSubtype      1 (EP_GENERAL)
>>           bmAttributes         0x01
>>             Sampling Frequency
>>           bLockDelayUnits         2 Decoded PCM samples
>>           wLockDelay         0x0002
>>     Interface Descriptor:
>>       bLength                 9
>>       bDescriptorType         4
>>       bInterfaceNumber        2
>>       bAlternateSetting       2
>>       bNumEndpoints           1
>>       bInterfaceClass         1 Audio
>>       bInterfaceSubClass      2 Streaming
>>       bInterfaceProtocol      0 
>>       iInterface              0 
>>       AudioStreaming Interface Descriptor:
>>         bLength                 7
>>         bDescriptorType        36
>>         bDescriptorSubtype      1 (AS_GENERAL)
>>         bTerminalLink           7
>>         bDelay                  0 frames
>>         wFormatTag         0x0001 PCM
>>       AudioStreaming Interface Descriptor:
>>         bLength                26
>>         bDescriptorType        36
>>         bDescriptorSubtype      2 (FORMAT_TYPE)
>>         bFormatType             1 (FORMAT_TYPE_I)
>>         bNrChannels             2
>>         bSubframeSize           3
>>         bBitResolution         24
>>         bSamFreqType            6 Discrete
>>         tSamFreq[ 0]         8000
>>         tSamFreq[ 1]        16000
>>         tSamFreq[ 2]        32000
>>         tSamFreq[ 3]        44100
>>         tSamFreq[ 4]        48000
>>         tSamFreq[ 5]        96000
>>       Endpoint Descriptor:
>>         bLength                 9
>>         bDescriptorType         5
>>         bEndpointAddress     0x82  EP 2 IN
>>         bmAttributes            9
>>           Transfer Type            Isochronous
>>           Synch Type               Adaptive
>>           Usage Type               Data
>>         wMaxPacketSize     0x0246  1x 582 bytes
>>         bInterval               1
>>         bRefresh                0
>>         bSynchAddress           0
>>         AudioStreaming Endpoint Descriptor:
>>           bLength                 7
>>           bDescriptorType        37
>>           bDescriptorSubtype      1 (EP_GENERAL)
>>           bmAttributes         0x01
>>             Sampling Frequency
>>           bLockDelayUnits         2 Decoded PCM samples
>>           wLockDelay         0x0002
>>     Interface Descriptor:
>>       bLength                 9
>>       bDescriptorType         4
>>       bInterfaceNumber        3
>>       bAlternateSetting       0
>>       bNumEndpoints           0
>>       bInterfaceClass         1 Audio
>>       bInterfaceSubClass      2 Streaming
>>       bInterfaceProtocol      0 
>>       iInterface              0 
>>     Interface Descriptor:
>>       bLength                 9
>>       bDescriptorType         4
>>       bInterfaceNumber        3
>>       bAlternateSetting       1
>>       bNumEndpoints           1
>>       bInterfaceClass         1 Audio
>>       bInterfaceSubClass      2 Streaming
>>       bInterfaceProtocol      0 
>>       iInterface              0 
>>       AudioStreaming Interface Descriptor:
>>         bLength                 7
>>         bDescriptorType        36
>>         bDescriptorSubtype      1 (AS_GENERAL)
>>         bTerminalLink           9
>>         bDelay                  0 frames
>>         wFormatTag         0x0001 PCM
>>       AudioStreaming Interface Descriptor:
>>         bLength                20
>>         bDescriptorType        36
>>         bDescriptorSubtype      2 (FORMAT_TYPE)
>>         bFormatType             1 (FORMAT_TYPE_I)
>>         bNrChannels             2
>>         bSubframeSize           2
>>         bBitResolution         16
>>         bSamFreqType            4 Discrete
>>         tSamFreq[ 0]        32000
>>         tSamFreq[ 1]        44100
>>         tSamFreq[ 2]        48000
>>         tSamFreq[ 3]        96000
>>       Endpoint Descriptor:
>>         bLength                 9
>>         bDescriptorType         5
>>         bEndpointAddress     0x03  EP 3 OUT
>>         bmAttributes            9
>>           Transfer Type            Isochronous
>>           Synch Type               Adaptive
>>           Usage Type               Data
>>         wMaxPacketSize     0x0184  1x 388 bytes
>>         bInterval               1
>>         bRefresh                0
>>         bSynchAddress           0
>>         AudioStreaming Endpoint Descriptor:
>>           bLength                 7
>>           bDescriptorType        37
>>           bDescriptorSubtype      1 (EP_GENERAL)
>>           bmAttributes         0x01
>>             Sampling Frequency
>>           bLockDelayUnits         2 Decoded PCM samples
>>           wLockDelay         0x0002
>>     Interface Descriptor:
>>       bLength                 9
>>       bDescriptorType         4
>>       bInterfaceNumber        3
>>       bAlternateSetting       2
>>       bNumEndpoints           1
>>       bInterfaceClass         1 Audio
>>       bInterfaceSubClass      2 Streaming
>>       bInterfaceProtocol      0 
>>       iInterface              0 
>>       AudioStreaming Interface Descriptor:
>>         bLength                 7
>>         bDescriptorType        36
>>         bDescriptorSubtype      1 (AS_GENERAL)
>>         bTerminalLink           9
>>         bDelay                  0 frames
>>         wFormatTag         0x0001 PCM
>>       AudioStreaming Interface Descriptor:
>>         bLength                20
>>         bDescriptorType        36
>>         bDescriptorSubtype      2 (FORMAT_TYPE)
>>         bFormatType             1 (FORMAT_TYPE_I)
>>         bNrChannels             2
>>         bSubframeSize           3
>>         bBitResolution         24
>>         bSamFreqType            4 Discrete
>>         tSamFreq[ 0]        32000
>>         tSamFreq[ 1]        44100
>>         tSamFreq[ 2]        48000
>>         tSamFreq[ 3]        96000
>>       Endpoint Descriptor:
>>         bLength                 9
>>         bDescriptorType         5
>>         bEndpointAddress     0x03  EP 3 OUT
>>         bmAttributes            9
>>           Transfer Type            Isochronous
>>           Synch Type               Adaptive
>>           Usage Type               Data
>>         wMaxPacketSize     0x0246  1x 582 bytes
>>         bInterval               1
>>         bRefresh                0
>>         bSynchAddress           0
>>         AudioStreaming Endpoint Descriptor:
>>           bLength                 7
>>           bDescriptorType        37
>>           bDescriptorSubtype      1 (EP_GENERAL)
>>           bmAttributes         0x01
>>             Sampling Frequency
>>           bLockDelayUnits         2 Decoded PCM samples
>>           wLockDelay         0x0002
>>     Interface Descriptor:
>>       bLength                 9
>>       bDescriptorType         4
>>       bInterfaceNumber        3
>>       bAlternateSetting       3
>>       bNumEndpoints           1
>>       bInterfaceClass         1 Audio
>>       bInterfaceSubClass      2 Streaming
>>       bInterfaceProtocol      0 
>>       iInterface              0 
>>       AudioStreaming Interface Descriptor:
>>         bLength                 7
>>         bDescriptorType        36
>>         bDescriptorSubtype      1 (AS_GENERAL)
>>         bTerminalLink           9
>>         bDelay                  0 frames
>>         wFormatTag         0x2001 IEC1937_AC-3
>>       AudioStreaming Interface Descriptor:
>>         bLength                11
>>         bDescriptorType        36
>>         bDescriptorSubtype      2 (FORMAT_TYPE)
>>         bFormatType             3 (FORMAT_TYPE_III)
>>         bNrChannels             2
>>         bSubframeSize           2
>>         bBitResolution         16
>>         bSamFreqType            1 Discrete
>>         tSamFreq[ 0]        48000
>>       Endpoint Descriptor:
>>         bLength                 9
>>         bDescriptorType         5
>>         bEndpointAddress     0x03  EP 3 OUT
>>         bmAttributes            9
>>           Transfer Type            Isochronous
>>           Synch Type               Adaptive
>>           Usage Type               Data
>>         wMaxPacketSize     0x00c0  1x 192 bytes
>>         bInterval               1
>>         bRefresh                0
>>         bSynchAddress           0
>>         AudioStreaming Endpoint Descriptor:
>>           bLength                 7
>>           bDescriptorType        37
>>           bDescriptorSubtype      1 (EP_GENERAL)
>>           bmAttributes         0x01
>>             Sampling Frequency
>>           bLockDelayUnits         2 Decoded PCM samples
>>           wLockDelay         0x0002
>> can't get debug descriptor: Resource temporarily unavailable
>> Device Status:     0x0000
>>   (Bus Powered)
>> 
> 


More information about the Alsa-devel mailing list