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@xxxxxxxxxx/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) >> >