linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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).