* retire_capture_urb: Corrected urb data len
@ 2022-08-26 16:22 Sean Anderson
2022-08-26 16:36 ` Takashi Iwai
0 siblings, 1 reply; 6+ messages in thread
From: Sean Anderson @ 2022-08-26 16:22 UTC (permalink / raw)
To: Jaroslav Kysela, Takashi Iwai, alsa-devel; +Cc: Linux Kernel Mailing List
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. 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?
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)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: retire_capture_urb: Corrected urb data len
2022-08-26 16:22 retire_capture_urb: Corrected urb data len Sean Anderson
@ 2022-08-26 16:36 ` Takashi Iwai
2022-08-26 18:57 ` Sean Anderson
0 siblings, 1 reply; 6+ messages in thread
From: Takashi Iwai @ 2022-08-26 16:36 UTC (permalink / raw)
To: Sean Anderson
Cc: Jaroslav Kysela, Takashi Iwai, alsa-devel, Linux Kernel Mailing List
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? 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.
> 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.
thanks,
Takashi
>
> 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)
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: retire_capture_urb: Corrected urb data len
2022-08-26 16:36 ` Takashi Iwai
@ 2022-08-26 18:57 ` Sean Anderson
2022-08-28 7:49 ` Takashi Iwai
0 siblings, 1 reply; 6+ messages in thread
From: Sean Anderson @ 2022-08-26 18:57 UTC (permalink / raw)
To: Takashi Iwai
Cc: Jaroslav Kysela, Takashi Iwai, alsa-devel, Linux Kernel Mailing List
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)
>>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: retire_capture_urb: Corrected urb data len
2022-08-26 18:57 ` Sean Anderson
@ 2022-08-28 7:49 ` Takashi Iwai
2022-09-01 15:25 ` Sean Anderson
0 siblings, 1 reply; 6+ messages in thread
From: Takashi Iwai @ 2022-08-28 7:49 UTC (permalink / raw)
To: Sean Anderson
Cc: Jaroslav Kysela, Takashi Iwai, alsa-devel, Linux Kernel Mailing List
On Fri, 26 Aug 2022 20:57:53 +0200,
Sean Anderson wrote:
>
> 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.
Actually I was wrong: the existing quirk QUIRK_FLAG_ALIGN_TRANSFER
should cover that.
Could you try to pass quirk_flags=0x04 for the corresponding card slot
(the option takes an array) to snd-usb-audio module? Alternatively,
try to pass quirk_alias=18557022:0e510408 to snd-usb-audio?
thanks,
Takashi
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: retire_capture_urb: Corrected urb data len
2022-08-28 7:49 ` Takashi Iwai
@ 2022-09-01 15:25 ` Sean Anderson
2022-09-02 5:52 ` Takashi Iwai
0 siblings, 1 reply; 6+ messages in thread
From: Sean Anderson @ 2022-09-01 15:25 UTC (permalink / raw)
To: Takashi Iwai
Cc: Jaroslav Kysela, Takashi Iwai, alsa-devel, Linux Kernel Mailing List
On 8/28/22 3:49 AM, Takashi Iwai wrote:
> On Fri, 26 Aug 2022 20:57:53 +0200,
> Sean Anderson wrote:
>>
>> 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.
>
> Actually I was wrong: the existing quirk QUIRK_FLAG_ALIGN_TRANSFER
> should cover that.
>
> Could you try to pass quirk_flags=0x04 for the corresponding card slot
> (the option takes an array) to snd-usb-audio module? Alternatively,
> try to pass quirk_alias=18557022:0e510408 to snd-usb-audio?
I tried both options, but neither worked.
--Sean
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: retire_capture_urb: Corrected urb data len
2022-09-01 15:25 ` Sean Anderson
@ 2022-09-02 5:52 ` Takashi Iwai
0 siblings, 0 replies; 6+ messages in thread
From: Takashi Iwai @ 2022-09-02 5:52 UTC (permalink / raw)
To: Sean Anderson
Cc: Jaroslav Kysela, Takashi Iwai, alsa-devel, Linux Kernel Mailing List
On Thu, 01 Sep 2022 17:25:41 +0200,
Sean Anderson wrote:
>
>
>
> On 8/28/22 3:49 AM, Takashi Iwai wrote:
> > On Fri, 26 Aug 2022 20:57:53 +0200,
> > Sean Anderson wrote:
> >>
> >> 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.
> >
> > Actually I was wrong: the existing quirk QUIRK_FLAG_ALIGN_TRANSFER
> > should cover that.
> >
> > Could you try to pass quirk_flags=0x04 for the corresponding card slot
> > (the option takes an array) to snd-usb-audio module? Alternatively,
> > try to pass quirk_alias=18557022:0e510408 to snd-usb-audio?
>
> I tried both options, but neither worked.
I have no further idea. You should try the latest kernel without
modification before checking further.
And, looking at the code again, it's really strange that you get those
messages. Actually the transfer size *is* aligned to the audio frames
as default *unless* QUIRK_FLAG_ALIGN_TRANSFER is passed. And the
check is done rather the audio sample size alignment -- which must fit
within the audio frame alignment.
So, QUIRK_FLAG_ALIGN_TRANSFER is already set for your device by some
reason incorrectly, or the code is doing wrong on your kernel.
We need to check what values are shown there actually, then check
whether the problem happens with the latest vanilla kernel.
Takashi
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-09-02 5:52 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-26 16:22 retire_capture_urb: Corrected urb data len Sean Anderson
2022-08-26 16:36 ` Takashi Iwai
2022-08-26 18:57 ` Sean Anderson
2022-08-28 7:49 ` Takashi Iwai
2022-09-01 15:25 ` Sean Anderson
2022-09-02 5:52 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).