caerandir
Posts: 131
Joined: Tue Dec 18, 2012 11:26 am
Location: Bonn, Germany

Re: USB FIQ testing....

Mon Jul 29, 2013 9:54 pm

Hi jbd & gsh,

not sure if you still need input - just in case: I run an external 7.1 soundbox directly connected to the Pi (no hub, no other USB devices) and have stuttering audio recording (playback is fine). Here is the data:

Code: Select all

uname -a
Linux pi 3.6.11+ #512 PREEMPT Sat Jul 27 19:08:54 BST 2013 armv6l GNU/Linux

Code: Select all

sudo lsusb -v

Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         2 TT per port
  bMaxPacketSize0        64
  idVendor           0x0424 Standard Microsystems Corp.
  idProduct          0x9514
  bcdDevice            2.00
  iManufacturer           0
  iProduct                0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           41
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                2mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      1 Single TT
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      2 TT per port
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             5
  wHubCharacteristic 0x000d
    Per-port power switching
    Compound device
    Per-port overcurrent protection
    TT think time 8 FS bits
  bPwrOn2PwrGood       50 * 2 milli seconds
  bHubContrCurrent      1 milli Ampere
  DeviceRemovable    0x02
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0503 highspeed power enable connect
   Port 2: 0000.0103 power enable connect
   Port 3: 0000.0100 power
   Port 4: 0000.0100 power
   Port 5: 0000.0100 power
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            3.06
  iManufacturer           3 Linux 3.6.11+ dwc_otg_hcd
  iProduct                2 DWC OTG Controller
  iSerial                 1 bcm2708_usb
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             1
  wHubCharacteristic 0x0008
    Ganged power switching
    Per-port overcurrent protection
    TT think time 8 FS bits
  bPwrOn2PwrGood        1 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0503 highspeed power enable connect
Device Status:     0x0001
  Self Powered

Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass         0
  bDeviceProtocol         1
  bMaxPacketSize0        64
  idVendor           0x0424 Standard Microsystems Corp.
  idProduct          0xec00
  bcdDevice            2.00
  iManufacturer           0
  iProduct                0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                2mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol    255
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               4
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass         0
  bDeviceProtocol         1
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered

Bus 001 Device 004: ID 0d8c:0102 C-Media Electronics, Inc. CM106 Like Sound Device
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x0d8c C-Media Electronics, Inc.
  idProduct          0x0102 CM106 Like Sound Device
  bcdDevice            0.10
  iManufacturer           0
  iProduct                2 USB Sound Device
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          534
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0
      iInterface              0
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength          200
        bInCollection           2
        baInterfaceNr( 0)       1
        baInterfaceNr( 1)       2
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bNrChannels             8
        wChannelConfig     0x063f
          Left Front (L)
          Right Front (R)
          Center Front (C)
          Low Freqency Enhancement (LFE)
          Left Surround (LS)
          Right Surround (RS)
          Side Left (SL)
          Side Right (SR)
        iChannelNames           0
        iTerminal               0
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             4
        wTerminalType      0x0201 Microphone
        bAssocTerminal          0
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0
        iTerminal               0
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                 8
        bSourceID               4
        bControlSize            1
        bmaControls( 0)      0x01
          Mute Control
        bmaControls( 1)      0x02
          Volume Control
        bmaControls( 2)      0x02
          Volume Control
        iFeature                0
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                 9
        bSourceID               4
        bControlSize            1
        bmaControls( 0)      0x01
          Mute Control
        bmaControls( 1)      0x02
          Volume Control
        bmaControls( 2)      0x02
          Volume Control
        iFeature                0
      AudioControl Interface Descriptor:
        bLength                25
        bDescriptorType        36
        bDescriptorSubtype      4 (MIXER_UNIT)
        bUnitID                12
        bNrInPins               3
        baSourceID( 0)          1
        baSourceID( 1)          9
        baSourceID( 2)         11
        bNrChannels             8
        wChannelConfig     0x063f
          Left Front (L)
          Right Front (R)
          Center Front (C)
          Low Freqency Enhancement (LFE)
          Left Surround (LS)
          Right Surround (RS)
          Side Left (SL)
          Side Right (SR)
        iChannelNames           0
        bmControls         0x00
        bmControls         0x00
        bmControls         0x00
        iMixer                  0
        junk at descriptor end: 00 00 00 00 00 00 00 00 00
      AudioControl Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                13
        bSourceID              12
        bControlSize            1
        bmaControls( 0)      0x01
          Mute Control
        bmaControls( 1)      0x02
          Volume Control
        bmaControls( 2)      0x02
          Volume Control
        bmaControls( 3)      0x02
          Volume Control
        bmaControls( 4)      0x02
          Volume Control
        bmaControls( 5)      0x02
          Volume Control
        bmaControls( 6)      0x02
          Volume Control
        bmaControls( 7)      0x02
          Volume Control
        bmaControls( 8)      0x02
          Volume Control
        iFeature                0
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0301 Speaker
        bAssocTerminal          0
        bSourceID              13
        iTerminal               0
      AudioControl Interface Descriptor:
        bLength                13
        bDescriptorType        36
        bDescriptorSubtype      4 (MIXER_UNIT)
        bUnitID                17
        bNrInPins               2
        baSourceID( 0)          9
        baSourceID( 1)         11
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0
        bmControls         0x00
        iMixer                  0
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            10
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               7
        iTerminal               0
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      5 (SELECTOR_UNIT)
        bUnitID                 7
        bNrInPins               4
        baSource( 0)            8
        baSource( 1)           15
        baSource( 2)           16
        baSource( 3)            2
        iSelector               0
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             6
        wTerminalType      0x0603 Line Connector
        bAssocTerminal          0
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0
        iTerminal               0
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                15
        bSourceID               6
        bControlSize            1
        bmaControls( 0)      0x01
          Mute Control
        bmaControls( 1)      0x02
          Volume Control
        bmaControls( 2)      0x02
          Volume Control
        iFeature                0
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                11
        bSourceID               6
        bControlSize            1
        bmaControls( 0)      0x01
          Mute Control
        bmaControls( 1)      0x02
          Volume Control
        bmaControls( 2)      0x02
          Volume Control
        iFeature                0
      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                10
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                 2
        bSourceID              17
        bControlSize            1
        bmaControls( 0)      0x01
          Mute Control
        bmaControls( 1)      0x02
          Volume Control
        bmaControls( 2)      0x02
          Volume Control
        iFeature                0
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                16
        bSourceID               5
        bControlSize            1
        bmaControls( 0)      0x01
          Mute Control
        bmaControls( 1)      0x00
        bmaControls( 2)      0x00
        iFeature                0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      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           1
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioStreaming Interface Descriptor:
        bLength                14
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             8
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            2 Discrete
        tSamFreq[ 0]        44100
        tSamFreq[ 1]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x0310  1x 784 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioControl Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         0 Undefined
          wLockDelay              0 Undefined
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      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           1
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioStreaming Interface Descriptor:
        bLength                14
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            2 Discrete
        tSamFreq[ 0]        44100
        tSamFreq[ 1]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x00c4  1x 196 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioControl Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         0 Undefined
          wLockDelay              0 Undefined
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      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           1
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioStreaming Interface Descriptor:
        bLength                14
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             4
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            2 Discrete
        tSamFreq[ 0]        44100
        tSamFreq[ 1]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x0188  1x 392 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioControl Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         0 Undefined
          wLockDelay              0 Undefined
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              0
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           1
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioStreaming Interface Descriptor:
        bLength                14
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             6
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            2 Discrete
        tSamFreq[ 0]        44100
        tSamFreq[ 1]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x0248  1x 584 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioControl Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         0 Undefined
          wLockDelay              0 Undefined
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              0
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           1
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioStreaming Interface Descriptor:
        bLength                11
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            1 Discrete
        tSamFreq[ 0]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x0188  1x 392 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioControl Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         0 Undefined
          wLockDelay              0 Undefined
    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          10
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioStreaming Interface Descriptor:
        bLength                14
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            2 Discrete
        tSamFreq[ 0]        44100
        tSamFreq[ 1]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x00c8  1x 200 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioControl Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         0 Undefined
          wLockDelay              0 Undefined
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      50
         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     0x0003  1x 3 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)

Code: Select all

dmesg
[    0.000000] Booting Linux on physical CPU 0
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.6.11+ ([email protected]) (gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08) ) #512 PREEMPT Sat Jul 27 19:08:54 BST 2013
[    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine: BCM2708
[    0.000000] cma: CMA: reserved 16 MiB at 17000000
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 98304
[    0.000000] free_area_init_node: node 0, pgdat c053d894, node_mem_map c05e7000
[    0.000000]   Normal zone: 768 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 97536 pages, LIFO batch:31
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 97536
[    0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1600 bcm2708_fb.fbheight=1200 bcm2708.boardrev=0xe bcm2708.serial=0xbf78f372 smsc95xx.macaddr=B8:27:EB:78:F3:72 sdhci-bcm2708.emmc_clock_freq=100000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000  dwc_otg.lpm_enable=0 dwc_otg.fiq_split_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 384MB = 384MB total
[    0.000000] Memory: 367232k/367232k available, 25984k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xd8800000 - 0xff000000   ( 616 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd8000000   ( 384 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc04e74d8   (4990 kB)
[    0.000000]       .init : 0xc04e8000 - 0xc0508f44   ( 132 kB)
[    0.000000]       .data : 0xc050a000 - 0xc053e0c0   ( 209 kB)
[    0.000000]        .bss : 0xc053e0e4 - 0xc05e6d18   ( 676 kB)
[    0.000000] NR_IRQS:330
[    0.000000] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 4294967ms
[    0.000000] Console: colour dummy device 80x30
[    0.000000] console [tty1] enabled
[    0.001015] Calibrating delay loop... 697.95 BogoMIPS (lpj=3489792)
[    0.060125] pid_max: default: 32768 minimum: 301
[    0.060455] Mount-cache hash table entries: 512
[    0.061217] Initializing cgroup subsys cpuacct
[    0.061274] Initializing cgroup subsys devices
[    0.061307] Initializing cgroup subsys freezer
[    0.061336] Initializing cgroup subsys blkio
[    0.061425] CPU: Testing write buffer coherency: ok
[    0.061758] hw perfevents: enabled with v6 PMU driver, 3 counters available
[    0.061899] Setting up static identity map for 0x39e658 - 0x39e6b4
[    0.063397] devtmpfs: initialized
[    0.074141] NET: Registered protocol family 16
[    0.080630] DMA: preallocated 4096 KiB pool for atomic coherent allocations
[    0.081754] bcm2708.uart_clock = 0
[    0.083144] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
[    0.083199] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.083234] mailbox: Broadcom VideoCore Mailbox driver
[    0.083330] bcm2708_vcio: mailbox at f200b880
[    0.083430] bcm_power: Broadcom power driver
[    0.083468] bcm_power_open() -> 0
[    0.083493] bcm_power_request(0, 8)
[    0.584179] bcm_mailbox_read -> 00000080, 0
[    0.584219] bcm_power_request -> 0
[    0.584246] Serial: AMBA PL011 UART driver
[    0.584388] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83) is a PL011 rev3
[    0.910651] console [ttyAMA0] enabled
[    0.934484] bio: create slab <bio-0> at 0
[    0.939374] SCSI subsystem initialized
[    0.943460] usbcore: registered new interface driver usbfs
[    0.949040] usbcore: registered new interface driver hub
[    0.954636] usbcore: registered new device driver usb
[    0.961000] Switching to clocksource stc
[    0.965236] FS-Cache: Loaded
[    0.968368] CacheFiles: Loaded
[    0.983251] NET: Registered protocol family 2
[    0.988530] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    0.996270] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[    1.003059] TCP: Hash tables configured (established 16384 bind 16384)
[    1.009664] TCP: reno registered
[    1.012916] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    1.018815] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    1.025390] NET: Registered protocol family 1
[    1.030254] RPC: Registered named UNIX socket transport module.
[    1.036296] RPC: Registered udp transport module.
[    1.041017] RPC: Registered tcp transport module.
[    1.045762] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.052900] bcm2708_dma: DMA manager at f2007000
[    1.057686] bcm2708_gpio: bcm2708_gpio_probe c0517d98
[    1.063146] vc-mem: phys_addr:0x00000000 mem_base=0x1ec00000 mem_size:0x20000000(512 MiB)
[    1.072287] audit: initializing netlink socket (disabled)
[    1.077881] type=2000 audit(0.930:1): initialized
[    1.200192] VFS: Disk quotas dquot_6.5.2
[    1.204228] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.211288] FS-Cache: Netfs 'nfs' registered for caching
[    1.217038] NFS: Registering the id_resolver key type
[    1.222237] Key type id_resolver registered
[    1.226532] Key type id_legacy registered
[    1.230894] msgmni has been set to 749
[    1.236428] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    1.244134] io scheduler noop registered
[    1.248180] io scheduler deadline registered (default)
[    1.253362] io scheduler cfq registered
[    1.284026] Console: switching to colour frame buffer device 200x75
[    1.305834] kgdb: Registered I/O driver kgdboc.
[    1.311105] vc-cma: Videocore CMA driver
[    1.315187] vc-cma: vc_cma_base      = 0x00000000
[    1.319982] vc-cma: vc_cma_size      = 0x00000000 (0 MiB)
[    1.325505] vc-cma: vc_cma_initial   = 0x00000000 (0 MiB)
[    1.340283] brd: module loaded
[    1.348544] loop: module loaded
[    1.352150] vchiq: vchiq_init_state: slot_zero = 0xd7000000, is_master = 0
[    1.359992] Loading iSCSI transport class v2.0-870.
[    1.366043] usbcore: registered new interface driver smsc95xx
[    1.372159] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    1.583373] Core Release: 2.80a
[    1.586689] Setting default values for core params
[    1.591609] Finished setting default values for core params
[    1.802389] Using Buffer DMA mode
[    1.805822] Periodic Transfer Interrupt Enhancement - disabled
[    1.811759] Multiprocessor Interrupt Enhancement - disabled
[    1.817458] OTG VER PARAM: 0, OTG VER FLAG: 0
[    1.821901] Dedicated Tx FIFOs mode
[    1.826510] dwc_otg: Microframe scheduler enabled
[    1.826938] dwc_otg bcm2708_usb: DWC OTG Controller
[    1.831989] dwc_otg bcm2708_usb: new USB bus registered, assigned bus number 1
[    1.839484] dwc_otg bcm2708_usb: irq 32, io mem 0x00000000
[    1.845169] Init: Port Power? op_state=1
[    1.849170] Init: Power Port (0)
[    1.852558] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.859588] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.866981] usb usb1: Product: DWC OTG Controller
[    1.871777] usb usb1: Manufacturer: Linux 3.6.11+ dwc_otg_hcd
[    1.877653] usb usb1: SerialNumber: bcm2708_usb
[    1.883073] hub 1-0:1.0: USB hub found
[    1.887010] hub 1-0:1.0: 1 port detected
[    1.891367] dwc_otg: FIQ enabled
[    1.891382] dwc_otg: NAK holdoff enabled
[    1.891391] dwc_otg: FIQ split fix disabled
[    1.891411] Module dwc_common_port init
[    1.891641] Initializing USB Mass Storage driver...
[    1.896919] usbcore: registered new interface driver usb-storage
[    1.903045] USB Mass Storage support registered.
[    1.907941] usbcore: registered new interface driver libusual
[    1.914085] mousedev: PS/2 mouse device common for all mice
[    1.920568] bcm2835-cpufreq: min=700000 max=850000 cur=700000
[    1.926583] bcm2835-cpufreq: switching to governor powersave
[    1.932348] bcm2835-cpufreq: switching to governor powersave
[    1.938154] cpuidle: using governor ladder
[    1.947348] cpuidle: using governor menu
[    1.956249] sdhci: Secure Digital Host Controller Interface driver
[    1.967399] sdhci: Copyright(c) Pierre Ossman
[    1.976732] sdhci: Enable low-latency mode
[    2.025295] mmc0: SDHCI controller on BCM2708_Arasan [platform] using platform's DMA
[    2.038359] mmc0: BCM2708 SDHC host at 0x20300000 DMA 2 IRQ 77
[    2.051398] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.067905] usbcore: registered new interface driver usbhid
[    2.078568] usbhid: USB HID core driver
[    2.089631] Indeed it is in host mode hprt0 = 00021501
[    2.102603] TCP: cubic registered
[    2.125121] Initializing XFRM netlink socket
[    2.145161] NET: Registered protocol family 17
[    2.165311] Key type dns_resolver registered
[    2.187403] mmc0: read SD Status register (SSR) after 2 attempts
[    2.174926] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
[    2.225767] registered taskstats version 1
[    2.237221] mmc0: new high speed SDHC card at address 59b4
[    2.256066] Waiting for root device /dev/mmcblk0p2...
[    2.267114] mmcblk0: mmc0:59b4 SDC   7.34 GiB
[    2.278378]  mmcblk0: p1 p2
[    2.385698] usb 1-1: new high-speed USB device number 2 using dwc_otg
[    2.397987] Indeed it is in host mode hprt0 = 00001101
[    2.447618] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.475152] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    2.504120] devtmpfs: mounted
[    2.512913] Freeing init memory: 128K
[    2.635800] usb 1-1: New USB device found, idVendor=0424, idProduct=9514
[    2.648586] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.665310] hub 1-1:1.0: USB hub found
[    2.674574] hub 1-1:1.0: 5 ports detected
[    2.965468] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[    3.075841] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[    3.093691] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    3.113857] smsc95xx v1.0.4
[    3.190067] smsc95xx 1-1.1:1.0: eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:78:f3:72
[    3.305382] usb 1-1.2: new full-speed USB device number 4 using dwc_otg
[    3.418890] usb 1-1.2: New USB device found, idVendor=0d8c, idProduct=0102
[    3.431497] usb 1-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[    3.444266] usb 1-1.2: Product: USB Sound Device
[    3.467344] input: USB Sound Device         as /devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.3/input/input0
[    3.484822] hid-generic 0003:0D8C:0102.0001: input,hidraw0: USB HID v1.00 Device [USB Sound Device        ] on usb-bcm2708_usb-1.2/input3
[    4.177230] udevd[154]: starting version 175
[    5.712977] Registered led device: led0
[    7.746470] usbcore: registered new interface driver snd-usb-audio
[   11.197355] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[   11.725716] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[   20.184620] ip_tables: (C) 2000-2006 Netfilter Core Team
[   20.243793] nf_conntrack version 0.5.0 (5996 buckets, 23984 max)
[   20.368214] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   23.284505] smsc95xx 1-1.1:1.0: eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1
[   25.600043] bcm2835-cpufreq: switching to governor ondemand
[   25.600074] bcm2835-cpufreq: switching to governor ondemand
[   27.657227] Adding 102396k swap on /var/swap.  Priority:-1 extents:2 across:507900k SS
dwc_otg.fiq_split_enable=0 mitigates the problem, but it is still there. Setting USB to 1.1 fixes the problem completely.

Thanks for your continuous efforts!!!

jdb
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2152
Joined: Thu Jul 11, 2013 2:37 pm

Re: USB FIQ testing....

Tue Jul 30, 2013 11:39 pm

An update is now available via rpi-update that should mitigate several of the issues that have appeared with USB sound devices since the fiq_split branch was merged.

This should, at the very least, get audio playback to where it was before with some slight improvements.

There are known limitations to the current implementation, namely:

- It is impossible to record data reliably from a USB audio class device at a higher bitrate than 32kHz/16bit/Stereo with fiq_split enabled. This is because recording at a higher bitrate requires multiple isoc IN transactions, which the FIQ cannot currently do. If you need USB audio recording, then run with fiq_split_enable=0.

- Split isoc multi-packet transactions (in both directions) are still vulnerable to the interrupt latency of Linux. Increasing ethernet/USB loading is more likely to break higher-bandwidth use (such as 5.1 sound, HD quality audio, gspca-flavour webcams). 44.1/48k should be OK though.

It is technically possible to get perfect split transaction isochronous performance out of a real USB device using this hardware, subject to some nontrivial limitations. Modifying the driver to do this will be ... interesting.
Rockets are loud.
https://astro-pi.org

caerandir
Posts: 131
Joined: Tue Dec 18, 2012 11:26 am
Location: Bonn, Germany

Re: USB FIQ testing....

Wed Jul 31, 2013 12:27 pm

44.1/48k should be OK though.
I am afraid it is not. Using the above mentioned device, audacity via LAN-connection on a windows machine with XMING/Putty and fiq_split_enable=0 still has defects at 44.1 kHz stereo recording, although much less pronounced as compared to enabled fiq_split.
It is technically possible to get perfect split transaction isochronous performance out of a real USB device using this hardware, subject to some nontrivial limitations. Modifying the driver to do this will be ... interesting.
...meaning you will/will not do it?

jdb
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2152
Joined: Thu Jul 11, 2013 2:37 pm

Re: USB FIQ testing....

Wed Jul 31, 2013 1:45 pm

caerandir wrote: I am afraid it is not. Using the above mentioned device, audacity via LAN-connection on a windows machine with XMING/Putty and fiq_split_enable=0 still has defects at 44.1 kHz stereo recording, although much less pronounced as compared to enabled fiq_split.
That case falls under the catch-all that's always going to break split transactions - xming will use huge amounts of ethernet bandwidth and thus contribute significantly to interrupt latency.
...meaning you will/will not do it?
Implement? Yes. Will it be of practical use? Depends on how badly the limitations of the hardware affect what we can reliably achieve. Isochronous is a particularly challenging part of the spec to do "right", especially at the level we have to deal with due to the simplistic hardware support, because many applications depend on both timely transmission AND perfect transmission. Oh, and isoc devices are by far and away the largest users of USB bandwidth. Hence, nontrivial.
Rockets are loud.
https://astro-pi.org

sbp
Posts: 128
Joined: Wed Sep 26, 2012 7:54 pm

Re: USB FIQ testing....

Thu Aug 01, 2013 9:29 am

Hi
Thank you for the continued improvement on the USB audio issue. Can you please add the latest improvement done by P33M into 3.9.y version as well?

Thanks
Steen
piCorePlayer webpage: https://sites.google.com/site/picoreplayer/home

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5370
Joined: Wed Aug 17, 2011 7:41 pm
Location: Cambridge

Re: USB FIQ testing....

Thu Aug 01, 2013 1:22 pm

sbp wrote:Thank you for the continued improvement on the USB audio issue. Can you please add the latest improvement done by P33M into 3.9.y version as well?
Next branch (source and binary updated). rpi-update to get it:
https://github.com/Hexxeh/rpi-firmware/ ... 9c45dc1705

GrayShade
Posts: 39
Joined: Fri Jul 05, 2013 6:13 am

Re: USB FIQ testing....

Thu Aug 01, 2013 6:04 pm

I tried this for a few minutes and it seems a bit less choppy than before, but for me fiq_split_enable=0 is still better :).

I hope that the Pi successor will have a built-in network card...

drgeoff
Posts: 9916
Joined: Wed Jan 25, 2012 6:39 pm

Re: USB FIQ testing....

Fri Aug 02, 2013 11:26 am

GrayShade wrote:I hope that the Pi successor will have a built-in network card...
It is the USB hardware (in the SoC, not the USB/LAN chip) which is the Achilles heel of the RPi.

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5370
Joined: Wed Aug 17, 2011 7:41 pm
Location: Cambridge

Re: USB FIQ testing....

Fri Aug 02, 2013 11:41 am

drgeoff wrote:It is the USB hardware (in the SoC, not the USB/LAN chip) which is the Achilles heel of the RPi.
Yes. I'm not aware of any issues caused by the USB/LAN chip.

GrayShade
Posts: 39
Joined: Fri Jul 05, 2013 6:13 am

Re: USB FIQ testing....

Fri Aug 02, 2013 12:30 pm

Right. On the other hand, if USB wasn't needed for network or audio (as the integrated sound card is not great either), I wouldn't be complaining about USB :D.

doveman
Posts: 174
Joined: Wed Dec 07, 2011 11:52 am

Re: USB FIQ testing....

Fri Aug 02, 2013 1:28 pm

dom wrote:
drgeoff wrote:It is the USB hardware (in the SoC, not the USB/LAN chip) which is the Achilles heel of the RPi.
Yes. I'm not aware of any issues caused by the USB/LAN chip.
Not to hijack this thread but I wonder if you're aware of this issue with hubs plugged into the USB ports causing maximum current draw and if you think that might be an issue caused by the USB chip or not?

http://www.raspberrypi.org/phpBB3/viewt ... 28&t=50908

User avatar
mahjongg
Forum Moderator
Forum Moderator
Posts: 12407
Joined: Sun Mar 11, 2012 12:19 am
Location: South Holland, The Netherlands

Re: USB FIQ testing....

Fri Aug 02, 2013 1:48 pm

GrayShade wrote:Right. On the other hand, if USB wasn't needed for network or audio (as the integrated sound card is not great either), I wouldn't be complaining about USB :D.
USB actually isn't needed for audio (by that I mean alternatives for HDMI audio and the bad PWM audio stereo output, the PI doesn't have an "integrated sound card", just two simple PWM outputs).

That is because you can add a real "sound card" to the PI.
The PI has an interface for an audio codex, which can provide the same possibilities, (audio output as well as input, and mixing functions) and quality as a high end PC sound card.

This, I2S, interface is available on the new header present on all revision 2 boards.

A driver is currently available for a limited number of codec chips.
see http://www.raspberrypi.org/phpBB3/viewt ... =44&t=8496

It seems its a matter of time before someone will bring out a "daughter card" (that is, a "sound card") for the raspberry PI.

User avatar
.helge
Posts: 35
Joined: Wed Jul 25, 2012 9:14 pm

Re: USB FIQ testing....

Fri Aug 02, 2013 2:00 pm

mahjongg wrote:
GrayShade wrote:Right. On the other hand, if USB wasn't needed for network or audio (as the integrated sound card is not great either), I wouldn't be complaining about USB :D.
USB actually isn't needed for audio (by that I mean alternatives for HDMI audio and the bad PWM audio stereo output, the PI doesn't have an "integrated sound card", just two simple PWM outputs).

That is because you can add a real "sound card" to the PI.
The PI has an interface for an audio codex, which can provide the same possibilities, (audio output as well as input, and mixing functions) and quality as a high end PC sound card.

This, I2S, interface is available on the new header present on all revision 2 boards.

A driver is currently available for a limited number of codec chips.
see http://www.raspberrypi.org/phpBB3/viewt ... =44&t=8496

It seems its a matter of time before someone will bring out a "daughter card" (that is, a "sound card") for the raspberry PI.
Hi
I am not sure, but I believe the company Busware (http://www.busware.de) seems to be working on it allready, since they posted a screenshot of a shell displaying a working I2S output: http://bit.ly/18RtKmD
You can check also in their FB Profile.

brgds,
Helge

thradtke
Posts: 492
Joined: Wed May 16, 2012 5:16 am
Location: Germany / EL

Re: USB FIQ testing....

Fri Aug 09, 2013 8:17 am

Sorry for asking once again as I didn't get it: Since FIQ code is merged into the Github firmware, does fiq_split_enable as a kernel parameter enable the FIQ driver? N.B.: Having my Pi offline I can't use rpi-update and other online ressources. Instead, I'm using an offline repository and regularly try new firmware releases from Github.

Thanks!
Rocket Scientist.

gsh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 1445
Joined: Sat Sep 10, 2011 11:43 am

Re: USB FIQ testing....

Fri Aug 09, 2013 8:23 am

It is enabled by default to check if it's enabled do

dmesg | grep FIQ

you should get two lines:

dwc_otg: FIQ enabled
dwc_otg: FIQ split fix enabled
--
Gordon Hollingworth PhD
Raspberry Pi - Director of Software Engineering

jdb
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2152
Joined: Thu Jul 11, 2013 2:37 pm

Re: USB FIQ testing....

Fri Aug 09, 2013 8:27 am

There are two parameters that control the behaviour of the FIQ.

dwc_otg.fiq_fix_enable controls whether the FIQ is actually installed/set up or not. Without it you are effectively left with the standard IRQ handlers doing all the work. This is enabled by default, and using this setting is recommended.

dwc_otg.fiq_split_enable controls whether the FIQ performs split transaction completion - essential for correctly doing split transactions for some types of keyboards. This setting is enabled by default, but causes issues for certain devices such as high-bitrate or multi channel USB audio and very old USB1.1 webcams.

fiq_split_enable=1 implies fiq_fix_enable, even if you set fiq_fix_enable=0.

Three lines detailing the state appear in dmesg on boot:

Code: Select all

[    2.198829] dwc_otg: FIQ enabled
[    2.198855] dwc_otg: NAK holdoff enabled
[    2.198865] dwc_otg: FIQ split fix enabled
Rockets are loud.
https://astro-pi.org

BerryPicker
Posts: 177
Joined: Tue Oct 16, 2012 3:03 pm
Location: The East of England

Re: USB FIQ testing....

Sat Aug 17, 2013 1:36 pm

jdb wrote:... perhaps try running without fiq_split_enable - set dwc_otg.fiq_split_enable=0 in cmdline.txt.
With this my Philips SPC900NC webcam (a USB1 device) works at [email protected] Without this it only works at 160x120.

chrismakise
Posts: 2
Joined: Tue Oct 01, 2013 2:07 pm

Re: USB FIQ testing....

Tue Oct 01, 2013 2:24 pm

So even with FIQ and FIQ split fix enabled, USB audio can be corrupted if other USB devices (i.e. Ethernet) are under heavy utilization? I recently purchased Pi to use it mainly as a AirPlay machine (using ShairPort) with my USB DAC. So far the best option to avoid popping, clicking sounds when playing music via ShairPort or locally but with heavy Ethernet use is to add dwc_otg.speed=1 to the kernel command line. Should I buy another and use the current one solely as a AirPlay machine if I want to use the full speed of USB 2.0?

GrayShade
Posts: 39
Joined: Fri Jul 05, 2013 6:13 am

Re: USB FIQ testing....

Tue Oct 01, 2013 2:45 pm

I tried again a few days ago and audio is choppier on the next branch, even without network load.

This might be a regression.

thradtke
Posts: 492
Joined: Wed May 16, 2012 5:16 am
Location: Germany / EL

Re: USB FIQ testing....

Tue Oct 01, 2013 6:47 pm

If I made no mistake, audio playback is impossible when samples are accessed through LAN and *extremely' choppy when playing local files. I've used a Behringer device, which I had a thread about. Doesn't really matter, but wanted to report that. Maybe it makes a difference this device is USB1.1.
Rocket Scientist.

GrayShade
Posts: 39
Joined: Fri Jul 05, 2013 6:13 am

Re: USB FIQ testing....

Tue Oct 01, 2013 7:10 pm

thradtke wrote:If I made no mistake, audio playback is impossible when samples are accessed through LAN and *extremely' choppy when playing local files. I've used a Behringer device, which I had a thread about. Doesn't really matter, but wanted to report that. Maybe it makes a difference this device is USB1.1.
I've had "decent" success with network playback and the UCA-202, especially considering that I'm streaming uncompressed audio.

The problem I had with that DAC was ALSA using a wrong (?) sample rate; it was find when I changed it from 48 kHz to 44.1 kHz.

thradtke
Posts: 492
Joined: Wed May 16, 2012 5:16 am
Location: Germany / EL

Re: USB FIQ testing....

Tue Oct 01, 2013 7:30 pm

Ok, maybe I should have double checked that before reporting. The ALSA player shows 44kHz, 16Bit, which the device is perfectly capable of. Not sure if it's correct and no idea how to change that. It's a flac file (same results with mp3's I tried earlier). Anyway, I think the silence when streaming over the LAN is a strong indication there's still a USB problem on my system.
Rocket Scientist.

GrayShade
Posts: 39
Joined: Fri Jul 05, 2013 6:13 am

Re: USB FIQ testing....

Tue Oct 01, 2013 7:35 pm

Interesting. I have a sound card driver that streams the raw audio over the network and it works (especially over a wired connection :D).

chrismakise
Posts: 2
Joined: Tue Oct 01, 2013 2:07 pm

Re: USB FIQ testing....

Thu Oct 03, 2013 1:59 pm

After hours of searching the web and reading many posts, I decided to try more with other settings and removed speed=1 option.

Setting the sampling rate to 44100 relieved the problem a bit. I also experimented with various period_size and buffer_size values but none was satisfying, though it seems to change the crackle sounds pattern.

gsh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 1445
Joined: Sat Sep 10, 2011 11:43 am

Re: USB FIQ testing....

Fri Oct 04, 2013 6:02 am

P33M is in the process of writing a new modification to the FIQ to permanently fix this sort of thing, but it's going to take time... (Many many things to do and few people to do them!)

Gordon
--
Gordon Hollingworth PhD
Raspberry Pi - Director of Software Engineering

Return to “Troubleshooting”