All of lore.kernel.org
 help / color / mirror / Atom feed
* status of usb audio driver
@ 2002-06-04 16:57 Takashi Iwai
  2002-06-12  5:16 ` Patrick Shirkey
  0 siblings, 1 reply; 22+ messages in thread
From: Takashi Iwai @ 2002-06-04 16:57 UTC (permalink / raw)
  To: alsa-devel

Hi,

snd-usb-audio is a bit updated.
i borrowed a usb microphone and found that there was a deadlock at
exit of capture.  now it's fixed.
the source codes have more comments and readable (hopefully).

most of debug messages have been moved to snd_printdd().  that is,
to show such debug messages, you'll need to configure alsa-driver with
--with-debug=detect.  if your usb device doesn't work try this, and
send me the output of kernel messages together with the output of
lsusb.

the co-existence problem with oss audio module can be fixed by adding
an entry to /etc/hotplug/blacklist.  the file would be dependent on
the distribution, though.

18/20/24bit formats are not supported yet (if 3-byte format).


so far, i have no plan to port the usb midi driver for alsa, since
there is already a usb midi daemon (see alsa-devel archive).
not like an audio device, the access timing to a midi device is not so
critical.  in the case of audio device, we have to send continuous
packets at each 1ms, sometimes even with a sync pipe.  unfortunately,
this is fairly difficult to be implemented on the current framework of
usbdevfs.  on the contrary, midi can be relatively easily done on
usbdevfs.

however, i'm not sure about the latency over usbdevfs.  if the latency
is too bad, i have to change my mind...


btw, from tomorrow i'll be at LinuxTag at Karlsruhe.
answers will be delayed until the next week.


ciao,

Takashi

_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-04 16:57 status of usb audio driver Takashi Iwai
@ 2002-06-12  5:16 ` Patrick Shirkey
  2002-06-12 13:24   ` Takashi Iwai
  0 siblings, 1 reply; 22+ messages in thread
From: Patrick Shirkey @ 2002-06-12  5:16 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 3100 bytes --]

Takashi Iwai wrote:
> 
> most of debug messages have been moved to snd_printdd().  that is,
> to show such debug messages, you'll need to configure alsa-driver with
> --with-debug=detect.  if your usb device doesn't work try this, and
> send me the output of kernel messages together with the output of
> lsusb.
> 

Using the latest code this is all the info I can get for this card.

To refresh your memory.

It appears that the card is being correctly found and registered but 
that alsa cannot set up the pcm devices.

There are two obvious things that are possibly directly related. One is 
that the card is created in /proc/asound three times and the other is 
the  AS_GENERAL descriptor not found error.


----
#cat: /proc/asound/dev/controlC2: File descriptor in bad state
----
#more /var/log/messages

Jun 12 13:52:27 mahine kernel: usb.c: registered new driver snd-usb-audio
Jun 12 13:52:27 mahine kernel: ALSA usbaudio.c:1718: adding an output 
interface
3:0:%%j
Jun 12 13:52:27 mahine kernel: ALSA usbaudio.c:1712: adding an input 
interface 3
:0:%%j
Jun 12 13:52:27 mahine kernel: ALSA usbaudio.c:1718: adding an output 
interface
3:3:%%j
Jun 12 13:52:27 mahine kernel: ALSA usbaudio.c:1712: adding an input 
interface 3
:3:%%j
Jun 12 13:52:27 mahine kernel: ALSA usbaudio.c:1718: adding an output 
interface
3:6:%%j
Jun 12 13:52:27 mahine kernel: ALSA usbaudio.c:1712: adding an input 
interface 3
:6:%%j
-----
usb.c: registered new driver snd-usb-audio
ALSA usbaudio.c:1718: adding an output interface 3:0:%j
ALSA usbaudio.c:1712: adding an input interface 3:0:%j
ALSA usbaudio.c:1296: 3:1:1 : AS_GENERAL descriptor not found
ALSA usbaudio.c:1296: 3:2:1 : AS_GENERAL descriptor not found
devfs_register(unknown): could not append to parent, err: -17
ALSA usbaudio.c:1718: adding an output interface 3:3:%j
ALSA usbaudio.c:1712: adding an input interface 3:3:%j
ALSA usbaudio.c:1381: 3:4:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1296: 3:4:2 : AS_GENERAL descriptor not found
ALSA usbaudio.c:1381: 3:4:3 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1381: 3:5:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1296: 3:5:2 : AS_GENERAL descriptor not found
ALSA usbaudio.c:1381: 3:5:3 : non-supported sample bit 1 in 3 bytes
devfs_register(unknown): could not append to parent, err: -17
ALSA usbaudio.c:1718: adding an output interface 3:6:%j
ALSA usbaudio.c:1712: adding an input interface 3:6:%j
ALSA usbaudio.c:1381: 3:7:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1296: 3:7:2 : AS_GENERAL descriptor not found
ALSA usbaudio.c:1381: 3:7:3 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1381: 3:8:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1296: 3:8:2 : AS_GENERAL descriptor not found
ALSA usbaudio.c:1381: 3:8:3 : non-supported sample bit 1 in 3 bytes
devfs_register(unknown): could not append to parent, err: -17
----

-- 
Patrick Shirkey - Boost Hardware Ltd.
For the discerning hardware connoisseur
Http://www.boosthardware.com
Http://www.boosthardware.com/LAU/guide/
========================================

[-- Attachment #2: lsusb-120602.txt --]
[-- Type: text/plain, Size: 40970 bytes --]


Bus 002 Device 001: ID 0000:0000 Virtual Hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0000 Virtual
  idProduct          0x0000 Hub
  bcdDevice            0.00
  iManufacturer           0 
  iProduct                2 USB UHCI-alt Root Hub
  iSerial                 1 d400
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x40
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               none
        wMaxPacketSize          8
        bInterval             255
  Language IDs: (length=4)
     0000 (null)((null))

Bus 001 Device 001: ID 0000:0000 Virtual Hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0000 Virtual
  idProduct          0x0000 Hub
  bcdDevice            0.00
  iManufacturer           0 
  iProduct                2 USB UHCI-alt Root Hub
  iSerial                 1 cc00
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x40
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               none
        wMaxPacketSize          8
        bInterval             255
  Language IDs: (length=4)
     0000 (null)((null))

Bus 001 Device 002: ID 09da:0006 A4 Tech Co., Ltd. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 Interface
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x09da A4 Tech Co., Ltd.
  idProduct          0x0006 
  bcdDevice            1.00
  iManufacturer           1 A4Tech
  iProduct                2 USB Optical Mouse
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Devices
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      54
cannot get report descriptor
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               none
        wMaxPacketSize          4
        bInterval              10
  Language IDs: (length=4)
     0409 English(US)

Bus 001 Device 003: ID 0763:2001 Midiman 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 Interface
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0763 Midiman
  idProduct          0x2001 
  bcdDevice            1.01
  iManufacturer           1 M Audio
  iProduct                2 USB AudioSport Quattro (tm)
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          974
    bNumInterfaces         10
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x40
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0 
      iInterface              2 USB AudioSport Quattro (tm)
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength           52
        bInCollection           2
        baInterfaceNr( 0)       1
        baInterfaceNr( 1)       2
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             5
        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             6
        wTerminalType      0x0601 Analog Connector
        bAssocTerminal          0
        bSourceID               5
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0601 Analog Connector
        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             2
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               1
        iTerminal               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       4
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           5
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            3 Discrete
        tSamFreq[ 0]        11025
        tSamFreq[ 1]        22050
        tSamFreq[ 2]        44100
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
        wMaxPacketSize        192
        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       4
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            3 Discrete
        tSamFreq[ 0]        11025
        tSamFreq[ 1]        22050
        tSamFreq[ 2]        44100
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
        wMaxPacketSize        192
        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           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0 
      iInterface              2 USB AudioSport Quattro (tm)
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength           52
        bInCollection           2
        baInterfaceNr( 0)       4
        baInterfaceNr( 1)       5
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             5
        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             6
        wTerminalType      0x0601 Analog Connector
        bAssocTerminal          0
        bSourceID               5
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0601 Analog Connector
        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             2
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               1
        iTerminal               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           5
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl Interface Descriptor:
        bLength                14
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           3
        bBitResolution         24
        bSamFreqType            2 Discrete
        tSamFreq[ 0]        88200
        tSamFreq[ 1]        96000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
        wMaxPacketSize        576
        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        4
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           5
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl 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]        11025
        tSamFreq[ 1]        22050
        tSamFreq[ 2]        44100
        tSamFreq[ 3]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
        wMaxPacketSize        288
        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        4
      bAlternateSetting       4
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           5
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl 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]        11025
        tSamFreq[ 1]        22050
        tSamFreq[ 2]        44100
        tSamFreq[ 3]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
        wMaxPacketSize        192
        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        5
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        5
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl Interface Descriptor:
        bLength                14
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           3
        bBitResolution         24
        bSamFreqType            2 Discrete
        tSamFreq[ 0]        88200
        tSamFreq[ 1]        96000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
        wMaxPacketSize        576
        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        5
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl 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]        11025
        tSamFreq[ 1]        22050
        tSamFreq[ 2]        44100
        tSamFreq[ 3]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
        wMaxPacketSize        288
        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        5
      bAlternateSetting       4
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl 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]        11025
        tSamFreq[ 1]        22050
        tSamFreq[ 2]        44100
        tSamFreq[ 3]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
        wMaxPacketSize        192
        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        6
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0 
      iInterface              2 USB AudioSport Quattro (tm)
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength           52
        bInCollection           2
        baInterfaceNr( 0)       7
        baInterfaceNr( 1)       8
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             7
        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             8
        wTerminalType      0x0601 Analog Connector
        bAssocTerminal          0
        bSourceID               7
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0601 Analog Connector
        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             4
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               3
        iTerminal               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        7
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        7
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           7
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl Interface Descriptor:
        bLength                14
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           3
        bBitResolution         24
        bSamFreqType            2 Discrete
        tSamFreq[ 0]        88200
        tSamFreq[ 1]        96000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
        wMaxPacketSize        576
        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        7
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           7
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl 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]        11025
        tSamFreq[ 1]        22050
        tSamFreq[ 2]        44100
        tSamFreq[ 3]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
        wMaxPacketSize        288
        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        7
      bAlternateSetting       4
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           7
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl 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]        11025
        tSamFreq[ 1]        22050
        tSamFreq[ 2]        44100
        tSamFreq[ 3]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
        wMaxPacketSize        192
        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        8
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        8
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           4
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl Interface Descriptor:
        bLength                14
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           3
        bBitResolution         24
        bSamFreqType            2 Discrete
        tSamFreq[ 0]        88200
        tSamFreq[ 1]        96000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
        wMaxPacketSize        576
        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        8
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           4
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl 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]        11025
        tSamFreq[ 1]        22050
        tSamFreq[ 2]        44100
        tSamFreq[ 3]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
        wMaxPacketSize        288
        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        8
      bAlternateSetting       4
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           4
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioControl 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]        11025
        tSamFreq[ 1]        22050
        tSamFreq[ 2]        44100
        tSamFreq[ 3]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
        wMaxPacketSize        192
        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        9
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               none
        wMaxPacketSize         32
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               none
        wMaxPacketSize         32
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               none
        wMaxPacketSize         32
        bInterval               0
  Language IDs: (length=4)
     0409 English(US)

[-- Attachment #3: descr.txt --]
[-- Type: text/plain, Size: 3249 bytes --]

M Audio USB AudioSport Quattro (tm)

00: 09 02 ce 03 0a 01 00 40 00 09 04 00 00 00 01 01
10: 00 02 0a 24 01 00 01 34 00 02 01 02 0c 24 02 05
20: 01 01 00 02 03 00 00 00 09 24 03 06 01 06 00 05
30: 00 0c 24 02 01 01 06 00 02 03 00 00 00 09 24 03
40: 02 01 01 00 01 00 09 04 01 00 00 01 02 00 00 09
50: 04 01 04 01 01 02 00 00 07 24 01 05 01 01 00 11
60: 24 02 01 02 02 10 03 11 2b 00 22 56 00 44 ac 00
70: 09 05 03 09 c0 00 01 00 00 07 25 01 01 00 00 00
80: 09 04 02 00 00 01 02 00 00 09 04 02 04 01 01 02
90: 00 00 07 24 01 02 01 01 00 11 24 02 01 02 02 10
a0: 03 11 2b 00 22 56 00 44 ac 00 09 05 85 0d c0 00
b0: 01 00 00 07 25 01 01 00 00 00 09 04 03 00 00 01
c0: 01 00 02 0a 24 01 00 01 34 00 02 04 05 0c 24 02
d0: 05 01 01 00 02 03 00 00 00 09 24 03 06 01 06 00
e0: 05 00 0c 24 02 01 01 06 00 02 03 00 00 00 09 24
f0: 03 02 01 01 00 01 00 09 04 04 00 00 01 02 00 00
100: 09 04 04 01 01 01 02 00 00 07 24 01 05 01 01 00
110: 0e 24 02 01 02 03 18 02 88 58 01 00 77 01 09 05
120: 03 09 40 02 01 00 00 07 25 01 01 00 00 00 09 04
130: 04 03 01 01 02 00 00 07 24 01 05 01 01 00 14 24
140: 02 01 02 03 18 04 11 2b 00 22 56 00 44 ac 00 80
150: bb 00 09 05 03 09 20 01 01 00 00 07 25 01 01 00
160: 00 00 09 04 04 04 01 01 02 00 00 07 24 01 05 01
170: 01 00 14 24 02 01 02 02 10 04 11 2b 00 22 56 00
180: 44 ac 00 80 bb 00 09 05 03 09 c0 00 01 00 00 07
190: 25 01 01 00 00 00 09 04 05 00 00 01 02 00 00 09
1a0: 04 05 01 01 01 02 00 00 07 24 01 02 01 01 00 0e
1b0: 24 02 01 02 03 18 02 88 58 01 00 77 01 09 05 85
1c0: 0d 40 02 01 00 00 07 25 01 01 00 00 00 09 04 05
1d0: 03 01 01 02 00 00 07 24 01 02 01 01 00 14 24 02
1e0: 01 02 03 18 04 11 2b 00 22 56 00 44 ac 00 80 bb
1f0: 00 09 05 85 0d 20 01 01 00 00 07 25 01 01 00 00
200: 00 09 04 05 04 01 01 02 00 00 07 24 01 02 01 01
210: 00 14 24 02 01 02 02 10 04 11 2b 00 22 56 00 44
220: ac 00 80 bb 00 09 05 85 0d c0 00 01 00 00 07 25
230: 01 01 00 00 00 09 04 06 00 00 01 01 00 02 0a 24
240: 01 00 01 34 00 02 07 08 0c 24 02 07 01 01 00 02
250: 03 00 00 00 09 24 03 08 01 06 00 07 00 0c 24 02
260: 03 01 06 00 02 03 00 00 00 09 24 03 04 01 01 00
270: 03 00 09 04 07 00 00 01 02 00 00 09 04 07 01 01
280: 01 02 00 00 07 24 01 07 01 01 00 0e 24 02 01 02
290: 03 18 02 88 58 01 00 77 01 09 05 04 09 40 02 01
2a0: 00 00 07 25 01 01 00 00 00 09 04 07 03 01 01 02
2b0: 00 00 07 24 01 07 01 01 00 14 24 02 01 02 03 18
2c0: 04 11 2b 00 22 56 00 44 ac 00 80 bb 00 09 05 04
2d0: 09 20 01 01 00 00 07 25 01 01 00 00 00 09 04 07
2e0: 04 01 01 02 00 00 07 24 01 07 01 01 00 14 24 02
2f0: 01 02 02 10 04 11 2b 00 22 56 00 44 ac 00 80 bb
300: 00 09 05 04 09 c0 00 01 00 00 07 25 01 01 00 00
310: 00 09 04 08 00 00 01 02 00 00 09 04 08 01 01 01
320: 02 00 00 07 24 01 04 01 01 00 0e 24 02 01 02 03
330: 18 02 88 58 01 00 77 01 09 05 86 0d 40 02 01 00
340: 00 07 25 01 01 00 00 00 09 04 08 03 01 01 02 00
350: 00 07 24 01 04 01 01 00 14 24 02 01 02 03 18 04
360: 11 2b 00 22 56 00 44 ac 00 80 bb 00 09 05 86 0d
370: 20 01 01 00 00 07 25 01 01 00 00 00 09 04 08 04
380: 01 01 02 00 00 07 24 01 04 01 01 00 14 24 02 01
390: 02 02 10 04 11 2b 00 22 56 00 44 ac 00 80 bb 00
3a0: 09 05 86 0d c0 00 01 00 00 07 25 01 01 00 00 00
3b0: 09 04 09 00 03 ff 00 00 00 07 05 81 03 20 00 01
3c0: 07 05 82 02 20 00 00 07 05 02 02 20 00 00 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12  5:16 ` Patrick Shirkey
@ 2002-06-12 13:24   ` Takashi Iwai
  2002-06-12 14:10     ` Patrick Shirkey
  0 siblings, 1 reply; 22+ messages in thread
From: Takashi Iwai @ 2002-06-12 13:24 UTC (permalink / raw)
  To: Patrick Shirkey; +Cc: alsa-devel

At Wed, 12 Jun 2002 14:16:13 +0900,
Patrick Shirkey wrote:
> 
> Takashi Iwai wrote:
> > 
> > most of debug messages have been moved to snd_printdd().  that is,
> > to show such debug messages, you'll need to configure alsa-driver with
> > --with-debug=detect.  if your usb device doesn't work try this, and
> > send me the output of kernel messages together with the output of
> > lsusb.
> > 
> 
> Using the latest code this is all the info I can get for this card.
> 
> To refresh your memory.
> 
> It appears that the card is being correctly found and registered but 
> that alsa cannot set up the pcm devices.
> 
> There are two obvious things that are possibly directly related. One is 
> that the card is created in /proc/asound three times and the other is 
> the  AS_GENERAL descriptor not found error.

it seems that this device has discontinuous alternate setting
numbers.  the bAlternateSetting jumps from 0 to 4 or 3, while usual
devices have the suceeding numbers from 0.

> 
> 
> ----
> #cat: /proc/asound/dev/controlC2: File descriptor in bad state

that's not wrong.  your device has apparently no mixer controls...

together with the problem above, i fixed / improved the usb audio
driver.
now all interfaces on the same usb device will be merged into one
card, so you'll get only one card now.

it's on cvs.  please give a try.
btw, now descriptor proc was removed (one can use lsusb anyway).
instead you'll see formats supported on each stream.


Takashi

_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12 13:24   ` Takashi Iwai
@ 2002-06-12 14:10     ` Patrick Shirkey
  2002-06-12 14:13       ` Takashi Iwai
  0 siblings, 1 reply; 22+ messages in thread
From: Patrick Shirkey @ 2002-06-12 14:10 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Takashi Iwai wrote:
> it's on cvs.  please give a try.
> btw, now descriptor proc was removed (one can use lsusb anyway).
> instead you'll see formats supported on each stream.
> 

Excellent work. I haven't tested the output yet but will soon. One thing 
that isn't correct is that this card has 4 channels. Is it me or does 
the following only find 3?

---
# cat /proc/asound/card
card0  card1  card2  cards
# cat /proc/asound/card2/
id       pcm0p    pcm1p    pcm2p    stream1
pcm0c    pcm1c    pcm2c    stream0  stream2
# cat /proc/asound/card2/id
card2
# cat /proc/asound/cards
0 [first          ]: CMI8738 - C-Media PCI CMI8738
                      C-Media PCI CMI8738 (model 37) at 0xa800, irq 5
1 [second         ]: ICH - Intel 82801BA-ICH2
                      Intel 82801BA-ICH2 at 0xdc00, irq 3
2 [card2          ]: USB-Audio - USB Audio Driver
                      M Audio USB AudioSport Quattro (tm)
# cat /proc/asound/card2/stream0
M Audio USB AudioSport Quattro (tm) : USB Audio

Playback:
   Format: S16_LE
   Channels: 2
   Rates: 11025, 22050, 44100

Capture:
   Format: S16_LE
   Channels: 2
   Rates: 11025, 22050, 44100
# cat /proc/asound/card2/stream1
M Audio USB AudioSport Quattro (tm) : USB Audio #1

Playback:
   Format: S16_LE
   Channels: 2
   Rates: 11025, 22050, 44100, 48000

Capture:
   Format: S16_LE
   Channels: 2
   Rates: 11025, 22050, 44100, 48000
# cat /proc/asound/card2/stream2
M Audio USB AudioSport Quattro (tm) : USB Audio #2

Playback:
   Format: S16_LE
   Channels: 2
   Rates: 11025, 22050, 44100, 48000

Capture:
   Format: S16_LE
   Channels: 2
   Rates: 11025, 22050, 44100, 48000

---


-- 
Patrick Shirkey - Boost Hardware Ltd.
For the discerning hardware connoisseur
Http://www.boosthardware.com
Http://www.boosthardware.com/LAU/guide/
========================================


_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12 14:10     ` Patrick Shirkey
@ 2002-06-12 14:13       ` Takashi Iwai
  2002-06-12 14:19         ` Niklas Werner
  2002-06-12 14:55         ` Patrick Shirkey
  0 siblings, 2 replies; 22+ messages in thread
From: Takashi Iwai @ 2002-06-12 14:13 UTC (permalink / raw)
  To: Patrick Shirkey; +Cc: alsa-devel

At Wed, 12 Jun 2002 23:10:19 +0900,
Patrick Shirkey wrote:
> 
> Takashi Iwai wrote:
> > it's on cvs.  please give a try.
> > btw, now descriptor proc was removed (one can use lsusb anyway).
> > instead you'll see formats supported on each stream.
> > 
> 
> Excellent work. I haven't tested the output yet but will soon. One thing 
> that isn't correct is that this card has 4 channels. Is it me or does 
> the following only find 3?

can you check kernel debug (detection) messages?
perhaps it skipps an audio stream by some reason.


Takashi

_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12 14:13       ` Takashi Iwai
@ 2002-06-12 14:19         ` Niklas Werner
  2002-06-12 14:36           ` Takashi Iwai
  2002-06-12 14:55         ` Patrick Shirkey
  1 sibling, 1 reply; 22+ messages in thread
From: Niklas Werner @ 2002-06-12 14:19 UTC (permalink / raw)
  To: alsa-devel

Am Wednesday, 12. June 2002 16:13, wurde geschrieben:
> At Wed, 12 Jun 2002 23:10:19 +0900,
>
> Patrick Shirkey wrote:
> > Takashi Iwai wrote:
> > > it's on cvs.  please give a try.
> > > btw, now descriptor proc was removed (one can use lsusb anyway).
> > > instead you'll see formats supported on each stream.


OK, in stream0 now my emi26 is recognised as being capable of 6 outs @ 
44.1 or 48 k and 2 out @ 96 kHz, but still I only get /proc/asound/card0/:
id       pcm0p       pcm0c       stream0

so I still cant' access the other 4 outs. Or is there a way to use 
stream0 directly ?

Have fun*

Niklas

_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12 14:19         ` Niklas Werner
@ 2002-06-12 14:36           ` Takashi Iwai
  2002-06-12 16:00             ` Niklas Werner
  0 siblings, 1 reply; 22+ messages in thread
From: Takashi Iwai @ 2002-06-12 14:36 UTC (permalink / raw)
  To: Niklas Werner; +Cc: alsa-devel

At Wed, 12 Jun 2002 16:19:57 +0200,
Niklas Werner wrote:
> 
> Am Wednesday, 12. June 2002 16:13, wurde geschrieben:
> > At Wed, 12 Jun 2002 23:10:19 +0900,
> >
> > Patrick Shirkey wrote:
> > > Takashi Iwai wrote:
> > > > it's on cvs.  please give a try.
> > > > btw, now descriptor proc was removed (one can use lsusb anyway).
> > > > instead you'll see formats supported on each stream.
> 
> 
> OK, in stream0 now my emi26 is recognised as being capable of 6 outs @ 
> 44.1 or 48 k and 2 out @ 96 kHz, but still I only get /proc/asound/card0/:
> id       pcm0p       pcm0c       stream0

it's ok.  a stream can support different formats and channels.
if you find "Channels: 6" in stream0 proc file, then it means that the
pcm device 'hw:0,0' (or hw:X,0 where X is the card number) can accept
6 channels playback/capture.  if so, you can just feed 6-channels
interleaved data to the device.
well, this means also, that you have to access all 6 channels at the
same time.


Takashi

_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12 14:13       ` Takashi Iwai
  2002-06-12 14:19         ` Niklas Werner
@ 2002-06-12 14:55         ` Patrick Shirkey
  2002-06-12 16:12           ` Patrick Shirkey
  1 sibling, 1 reply; 22+ messages in thread
From: Patrick Shirkey @ 2002-06-12 14:55 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Takashi Iwai wrote:
> At Wed, 12 Jun 2002 23:10:19 +0900,
> Patrick Shirkey wrote:
> 
>>Takashi Iwai wrote:
>>
>>>it's on cvs.  please give a try.
>>>btw, now descriptor proc was removed (one can use lsusb anyway).
>>>instead you'll see formats supported on each stream.
>>>
>>
>>Excellent work. I haven't tested the output yet but will soon. One thing 
>>that isn't correct is that this card has 4 channels. Is it me or does 
>>the following only find 3?
> 
> 
> can you check kernel debug (detection) messages?
> perhaps it skipps an audio stream by some reason.
> 
> 

i have been testing the sound and I am getting playback although at this 
point I can get sound out of hw:2,0 and hw:2,2 they are both the left 
channels. The sound is scratchy but it is there :)

This is from the kernel. It seems to be loading the devices unusually.

-----
#dmesg
devfs_register(unknown): could not append to parent, err: -17
devfs_register(unknown): could not append to parent, err: -17
usb.c: registered new driver snd-usb-audio
ALSA usbaudio.c:1756: adding an output interface 3:0:1
ALSA usbaudio.c:1750: adding an input interface 3:0:2
devfs_register(unknown): could not append to parent, err: -17
devfs_register(unknown): could not append to parent, err: -17
devfs_register(unknown): could not append to parent, err: -17
ALSA usbaudio.c:1756: adding an output interface 3:3:4
ALSA usbaudio.c:1750: adding an input interface 3:3:5
ALSA usbaudio.c:1391: 3:4:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1391: 3:4:3 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1391: 3:5:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1391: 3:5:3 : non-supported sample bit 1 in 3 bytes
devfs_register(unknown): could not append to parent, err: -17
ALSA usbaudio.c:1756: adding an output interface 3:6:7
ALSA usbaudio.c:1750: adding an input interface 3:6:8
ALSA usbaudio.c:1391: 3:7:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1391: 3:7:3 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1391: 3:8:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1391: 3:8:3 : non-supported sample bit 1 in 3 bytes
-----
/var/log/messages

Jun 12 23:44:24 mahine kernel: usb.c: registered new driver snd-usb-audio
Jun 12 23:44:24 mahine kernel: ALSA usbaudio.c:1756: adding an output 
interface 3:0:1
Jun 12 23:44:24 mahine kernel: ALSA usbaudio.c:1750: adding an input 
interface 3:0:2
Jun 12 23:44:24 mahine kernel: ALSA usbaudio.c:1756: adding an output 
interface 3:3:4
Jun 12 23:44:24 mahine kernel: ALSA usbaudio.c:1750: adding an input 
interface 3:3:5
Jun 12 23:44:24 mahine kernel: ALSA usbaudio.c:1756: adding an output 
interface 3:6:7
Jun 12 23:44:24 mahine kernel: ALSA usbaudio.c:1750: adding an input 
interface 3:6:8
-----

> Takashi
> 
> 



-- 
Patrick Shirkey - Boost Hardware Ltd.
For the discerning hardware connoisseur
Http://www.boosthardware.com
Http://www.boosthardware.com/LAU/guide/
========================================


_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12 14:36           ` Takashi Iwai
@ 2002-06-12 16:00             ` Niklas Werner
  0 siblings, 0 replies; 22+ messages in thread
From: Niklas Werner @ 2002-06-12 16:00 UTC (permalink / raw)
  To: alsa-devel

> > OK, in stream0 now my emi26 is recognised as being capable of 6 outs
> > @ 44.1 or 48 k and 2 out @ 96 kHz, but still I only get
> > /proc/asound/card0/: id       pcm0p       pcm0c       stream0
>
> it's ok.  a stream can support different formats and channels.
> if you find "Channels: 6" in stream0 proc file, then it means that the
> pcm device 'hw:0,0' (or hw:X,0 where X is the card number) can accept
> 6 channels playback/capture.  if so, you can just feed 6-channels
> interleaved data to the device.
> well, this means also, that you have to access all 6 channels at the
> same time.

bugger!
Well, OK, at least that gives me an idea... but the much discussed 
("multiple cards"-thread on jackit-devel) .asoundrc-fiddling for getting 
more than one app to do the playback should work ok then, shouldn't it?

I'll give it a try :-)

Have fun*

Niklas

_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12 14:55         ` Patrick Shirkey
@ 2002-06-12 16:12           ` Patrick Shirkey
  2002-06-12 16:48             ` Patrick Shirkey
  0 siblings, 1 reply; 22+ messages in thread
From: Patrick Shirkey @ 2002-06-12 16:12 UTC (permalink / raw)
  Cc: Takashi Iwai, alsa-devel

Patrick Shirkey wrote:

> 
> i have been testing the sound and I am getting playback although at this 
> point I can get sound out of hw:2,0 and hw:2,2 they are both the left 
> channels. The sound is scratchy but it is there :)
> 

The sound is actually coming through output 2 and 4 on the sound card 
even though I'm using hw:2,0 or hw:2,2.



-- 
Patrick Shirkey - Boost Hardware Ltd.
For the discerning hardware connoisseur
Http://www.boosthardware.com
Http://www.boosthardware.com/LAU/guide/
========================================


_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12 16:12           ` Patrick Shirkey
@ 2002-06-12 16:48             ` Patrick Shirkey
  2002-06-12 16:59               ` Takashi Iwai
  0 siblings, 1 reply; 22+ messages in thread
From: Patrick Shirkey @ 2002-06-12 16:48 UTC (permalink / raw)
  Cc: Takashi Iwai, alsa-devel

Patrick Shirkey wrote:
> Patrick Shirkey wrote:
> 
>>
>> i have been testing the sound and I am getting playback although at 
>> this point I can get sound out of hw:2,0 and hw:2,2 they are both the 
>> left channels. The sound is scratchy but it is there :)
>>
> 
> The sound is actually coming through output 2 and 4 on the sound card 
> even though I'm using hw:2,0 or hw:2,2.
> 

When I use the first two pcm devices the sound is sent through output 2 
on the card and when I use the third the sound is sent through output 4.

I have also tested capture and the card is not working with that yet.

It will attempt to record for a few seconds but will not write to a file 
or produce any noise either with direct monitoring enabled or not. Also 
  recording locks the mouse until either it has finished or is ctrl+c'd.





-- 
Patrick Shirkey - Boost Hardware Ltd.
For the discerning hardware connoisseur
Http://www.boosthardware.com
Http://www.boosthardware.com/LAU/guide/
========================================


_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12 16:48             ` Patrick Shirkey
@ 2002-06-12 16:59               ` Takashi Iwai
  2002-06-12 17:31                 ` Patrick Shirkey
  0 siblings, 1 reply; 22+ messages in thread
From: Takashi Iwai @ 2002-06-12 16:59 UTC (permalink / raw)
  To: Patrick Shirkey; +Cc: alsa-devel

At Thu, 13 Jun 2002 01:48:33 +0900,
Patrick Shirkey wrote:
> 
> Patrick Shirkey wrote:
> > Patrick Shirkey wrote:
> > 
> >>
> >> i have been testing the sound and I am getting playback although at 
> >> this point I can get sound out of hw:2,0 and hw:2,2 they are both the 
> >> left channels. The sound is scratchy but it is there :)
> >>
> > 
> > The sound is actually coming through output 2 and 4 on the sound card 
> > even though I'm using hw:2,0 or hw:2,2.
> > 
> 
> When I use the first two pcm devices the sound is sent through output 2 
> on the card and when I use the third the sound is sent through output 4.

i committed a minor change to cvs.
now endpoints will be shown in each proc file.
could you apply and send me the output of each proc file?
i'd like to know whether really endpoints are parsed correctly.


> I have also tested capture and the card is not working with that yet.
> 
> It will attempt to record for a few seconds but will not write to a file 
> or produce any noise either with direct monitoring enabled or not. Also 
>   recording locks the mouse until either it has finished or is ctrl+c'd.

hmm, this sounds bad.
i'm not sure whether this is a general capture problem on usb audio.
i'll borrow a usb mic tomorrow and test with it.


ciao,

Takashi

_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12 16:59               ` Takashi Iwai
@ 2002-06-12 17:31                 ` Patrick Shirkey
  2002-06-13 10:39                   ` Takashi Iwai
  0 siblings, 1 reply; 22+ messages in thread
From: Patrick Shirkey @ 2002-06-12 17:31 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Takashi Iwai wrote:
> At Thu, 13 Jun 2002 01:48:33 +0900,
> Patrick Shirkey wrote:
> 
>>Patrick Shirkey wrote:
>>
>>>Patrick Shirkey wrote:
>>>
>>>
>>>>i have been testing the sound and I am getting playback although at 
>>>>this point I can get sound out of hw:2,0 and hw:2,2 they are both the 
>>>>left channels. The sound is scratchy but it is there :)
>>>>
>>>
>>>The sound is actually coming through output 2 and 4 on the sound card 
>>>even though I'm using hw:2,0 or hw:2,2.
>>>
>>
>>When I use the first two pcm devices the sound is sent through output 2 
>>on the card and when I use the third the sound is sent through output 4.
> 
> 
> i committed a minor change to cvs.
> now endpoints will be shown in each proc file.
> could you apply and send me the output of each proc file?
> i'd like to know whether really endpoints are parsed correctly.
> 
> 

 From the looks of things they are not.

------
# cat /proc/asound/card2/stream0
M Audio USB AudioSport Quattro (tm) : USB Audio

Playback:
   Format: S16_LE
   Channels: 2
   Endpoint: 3 OUT
   Rates: 11025, 22050, 44100

Capture:
   Format: S16_LE
   Channels: 2
   Endpoint: 5 IN
   Rates: 11025, 22050, 44100

# cat /proc/asound/card2/stream1
M Audio USB AudioSport Quattro (tm) : USB Audio #1

Playback:
   Format: S16_LE
   Channels: 2
   Endpoint: 3 OUT
   Rates: 11025, 22050, 44100, 48000

Capture:
   Format: S16_LE
   Channels: 2
   Endpoint: 5 IN
   Rates: 11025, 22050, 44100, 48000

# cat /proc/asound/card2/stream2
M Audio USB AudioSport Quattro (tm) : USB Audio #2

Playback:
   Format: S16_LE
   Channels: 2
   Endpoint: 4 OUT
   Rates: 11025, 22050, 44100, 48000

Capture:
   Format: S16_LE
   Channels: 2
   Endpoint: 6 IN
   Rates: 11025, 22050, 44100, 48000

------



> 
>>I have also tested capture and the card is not working with that yet.
>>
>>It will attempt to record for a few seconds but will not write to a file 
>>or produce any noise either with direct monitoring enabled or not. Also 
>>  recording locks the mouse until either it has finished or is ctrl+c'd.
> 
> 
> hmm, this sounds bad.
> i'm not sure whether this is a general capture problem on usb audio.
> i'll borrow a usb mic tomorrow and test with it.
> 
> 
> ciao,
> 
> Takashi
> 
> 



-- 
Patrick Shirkey - Boost Hardware Ltd.
For the discerning hardware connoisseur
Http://www.boosthardware.com
Http://www.boosthardware.com/LAU/guide/
========================================


_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-12 17:31                 ` Patrick Shirkey
@ 2002-06-13 10:39                   ` Takashi Iwai
  2002-06-13 12:54                     ` Patrick Shirkey
  0 siblings, 1 reply; 22+ messages in thread
From: Takashi Iwai @ 2002-06-13 10:39 UTC (permalink / raw)
  To: Patrick Shirkey; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 2126 bytes --]

At Thu, 13 Jun 2002 02:31:12 +0900,
Patrick Shirkey wrote:
> 
> Takashi Iwai wrote:
> > At Thu, 13 Jun 2002 01:48:33 +0900,
> > Patrick Shirkey wrote:
> > 
> >>Patrick Shirkey wrote:
> >>
> >>>Patrick Shirkey wrote:
> >>>
> >>>
> >>>>i have been testing the sound and I am getting playback although at 
> >>>>this point I can get sound out of hw:2,0 and hw:2,2 they are both the 
> >>>>left channels. The sound is scratchy but it is there :)
> >>>>
> >>>
> >>>The sound is actually coming through output 2 and 4 on the sound card 
> >>>even though I'm using hw:2,0 or hw:2,2.
> >>>
> >>
> >>When I use the first two pcm devices the sound is sent through output 2 
> >>on the card and when I use the third the sound is sent through output 4.

actually the endpoints of the first two pcm streams are identical.
is the sound only mono?
on the description, it's defined as stereo streams.
so i guess quattro has two stereo streams, corresponding #0 (or #1)
and #2.
it seems that the stream #0 has only 16bit 44.1kHz at most, while the
stream #1 supports 16/24bit 48kHz (although 24bit-3bytes format is not
supported on alsa yet).


> > i committed a minor change to cvs.
> > now endpoints will be shown in each proc file.
> > could you apply and send me the output of each proc file?
> > i'd like to know whether really endpoints are parsed correctly.
> > 
> > 
> 
>  From the looks of things they are not.

well, it looks ok.  the stream corresponds correctly to the
description.

> 
> > 
> >>I have also tested capture and the card is not working with that yet.
> >>
> >>It will attempt to record for a few seconds but will not write to a file 
> >>or produce any noise either with direct monitoring enabled or not. Also 
> >>  recording locks the mouse until either it has finished or is ctrl+c'd.
> > 
> > 
> > hmm, this sounds bad.
> > i'm not sure whether this is a general capture problem on usb audio.
> > i'll borrow a usb mic tomorrow and test with it.

i've tested usb mic from Labtec, and it works.
so the problem is specific to the hardware, or multi-channels...


anyway, could you try the attached patch?


Takashi

[-- Attachment #2: usb-fix2.dif --]
[-- Type: application/octet-stream, Size: 10786 bytes --]

Index: alsa-driver/usb/usbaudio.c
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-driver/usb/usbaudio.c,v
retrieving revision 1.11
diff -u -r1.11 usbaudio.c
--- alsa-driver/usb/usbaudio.c	12 Jun 2002 16:56:40 -0000	1.11
+++ alsa-driver/usb/usbaudio.c	13 Jun 2002 10:36:04 -0000
@@ -42,7 +42,7 @@
 #include "usbaudio.h"
 
 
-EXPORT_NO_SYMBOLS;
+EXPORT_NO_SYMBOLS; /* for kernels < 2.5 */
 
 MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("USB Audio");
@@ -84,6 +84,7 @@
 	unsigned char altset_idx;	/* array index of altenate setting */
 	unsigned char attributes;	/* corresponding attributes of cs endpoint */
 	unsigned char endpoint;		/* endpoint */
+	unsigned char ep_attr;		/* endpoint attributes */
 	unsigned int rates;		/* rate bitmasks */
 	int rate_min, rate_max;		/* min/max rates */
 	int nr_rates;			/* number of rate table entries */
@@ -257,7 +258,7 @@
 {
 	unsigned long flags;
 	unsigned char *cp;
-	int stride, i, len;
+	int stride, i, len, oldptr;
 
 	stride = runtime->frame_bits >> 3;
 
@@ -268,20 +269,25 @@
 		len = urb->iso_frame_desc[i].actual_length / stride;
 		if (! len)
 			continue;
+		/* update the current pointer */
 		spin_lock_irqsave(&subs->lock, flags);
+		oldptr = subs->hwptr_done;
+		subs->hwptr_done += len;
+		if (subs->hwptr_done >= runtime->buffer_size)
+			subs->hwptr_done -= runtime->buffer_size;
+		subs->transfer_done += len;
+		spin_unlock_irqrestore(&subs->lock, flags);
 		/* copy a data chunk */
-		if (subs->hwptr_done + len >= runtime->buffer_size) {
-			int cnt = runtime->buffer_size - subs->hwptr_done;
+		if (oldptr + len >= runtime->buffer_size) {
+			int cnt = runtime->buffer_size - oldptr;
 			int blen = cnt * stride;
-			memcpy(runtime->dma_area + subs->hwptr_done * stride, cp, blen);
+			memcpy(runtime->dma_area + oldptr * stride, cp, blen);
 			memcpy(runtime->dma_area, cp + blen, len * stride - blen);
-			subs->hwptr_done = len - cnt;
 		} else {
 			memcpy(runtime->dma_area + subs->hwptr_done * stride, cp, len * stride);
-			subs->hwptr_done += len;
 		}
 		/* update the pointer, call callback if necessary */
-		subs->transfer_done += len;
+		spin_lock_irqsave(&subs->lock, flags);
 		if (subs->transfer_done >= runtime->period_size) {
 			subs->transfer_done -= runtime->period_size;
 			spin_unlock_irqrestore(&subs->lock, flags);
@@ -727,8 +733,8 @@
 	/* calculate the max. size of packet */
 	maxsize = ((subs->freqmax + 0x3fff) * (runtime->frame_bits >> 3)) >> 14;
 	if (subs->maxpacksize && maxsize > subs->maxpacksize) {
-		snd_printd(KERN_DEBUG "maxsize %d is greater than defined size %d\n",
-			   maxsize, subs->maxpacksize);
+		//snd_printd(KERN_DEBUG "maxsize %d is greater than defined size %d\n",
+		//	   maxsize, subs->maxpacksize);
 		maxsize = subs->maxpacksize;
 	}
 
@@ -851,6 +857,63 @@
 	return NULL;
 }
 
+
+/* FIXME: stolen from usb/message.c
+ *    alternate setting value doesn't match always with the array index.
+ *    let's see whether this works...
+ */
+static void hack_usb_set_maxpacket(struct usb_device *dev)
+{
+	int i, b;
+
+	for (i=0; i<dev->actconfig->bNumInterfaces; i++) {
+		struct usb_interface *ifp = dev->actconfig->interface + i;
+		struct usb_interface_descriptor *as = ifp->altsetting + ifp->act_altsetting;
+		struct usb_endpoint_descriptor *ep = as->endpoint;
+		int e;
+
+		for (e=0; e<as->bNumEndpoints; e++) {
+			b = ep[e].bEndpointAddress & USB_ENDPOINT_NUMBER_MASK;
+			if (usb_endpoint_out(ep[e].bEndpointAddress)) {
+				if (ep[e].wMaxPacketSize > dev->epmaxpacketout[b])
+					dev->epmaxpacketout[b] = ep[e].wMaxPacketSize;
+			}
+			else {
+				if (ep[e].wMaxPacketSize > dev->epmaxpacketin [b])
+					dev->epmaxpacketin [b] = ep[e].wMaxPacketSize;
+			}
+		}
+	}
+}
+
+static int hack_usb_set_interface(struct usb_device *dev, int interface, int alt_idx, int alternate)
+{
+	struct usb_interface *iface;
+	struct usb_interface_descriptor *iface_as;
+	int i, ret;
+
+	iface = usb_ifnum_to_if(dev, interface);
+	if (!iface)
+		return -EINVAL;
+	if (iface->num_altsetting == 1)
+		return 0;
+
+	if ((ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
+				   USB_REQ_SET_INTERFACE, USB_RECIP_INTERFACE,
+				   alternate,
+				   interface, NULL, 0, HZ * 5)) < 0)
+		return ret;
+
+	iface->act_altsetting = alt_idx;
+	iface_as = &iface->altsetting[alt_idx];
+	for (i = 0; i < iface_as->bNumEndpoints; i++) {
+		u8 ep = iface_as->endpoint[i].bEndpointAddress;
+		usb_settoggle(dev, ep&USB_ENDPOINT_NUMBER_MASK, usb_endpoint_out(ep), 0);
+	}
+	hack_usb_set_maxpacket(dev);
+	return 0;
+}
+
 /*
  * find a matching format and set up the interface
  */
@@ -868,8 +931,8 @@
 
 	fmt = find_format(subs, runtime);
 	if (! fmt) {
-		snd_printd(KERN_DEBUG "cannot set format: format = %d, rate = %d, channels = %d\n",
-			   runtime->format, runtime->rate, runtime->channels);
+		snd_printd(KERN_DEBUG "cannot set format: format = %s, rate = %d, channels = %d\n",
+			   snd_pcm_format_name(runtime->format), runtime->rate, runtime->channels);
 		return -EINVAL;
 	}
 
@@ -916,7 +979,7 @@
 	}
 
 	/* set interface */
-	if (usb_set_interface(dev, iface->altsetting->bInterfaceNumber, fmt->altset_idx) < 0) {
+	if (hack_usb_set_interface(dev, subs->interface, fmt->altset_idx, fmt->altsetting) < 0) {
 		snd_printk(KERN_ERR "%d:%d:%d: usb_set_interface failed\n",
 			   dev->devnum, subs->interface, fmt->altsetting);
 		return -EIO;
@@ -926,7 +989,8 @@
 	/* if endpoint has pitch control, enable it */
 	if (fmt->attributes & EP_CS_ATTR_PITCH_CONTROL) {
 		data[0] = 1;
-		if ((err = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), SET_CUR, USB_TYPE_CLASS|USB_RECIP_ENDPOINT|USB_DIR_OUT, 
+		if ((err = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), SET_CUR,
+					   USB_TYPE_CLASS|USB_RECIP_ENDPOINT|USB_DIR_OUT, 
 					   PITCH_CONTROL << 8, ep, data, 1, HZ)) < 0) {
 			snd_printk(KERN_ERR "%d:%d:%d: cannot set enable PITCH\n",
 				   dev->devnum, subs->interface, ep);
@@ -938,16 +1002,18 @@
 		data[0] = runtime->rate;
 		data[1] = runtime->rate >> 8;
 		data[2] = runtime->rate >> 16;
-		if ((err = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), SET_CUR, USB_TYPE_CLASS|USB_RECIP_ENDPOINT|USB_DIR_OUT, 
+		if ((err = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), SET_CUR,
+					   USB_TYPE_CLASS|USB_RECIP_ENDPOINT|USB_DIR_OUT, 
 					   SAMPLING_FREQ_CONTROL << 8, ep, data, 3, HZ)) < 0) {
-			snd_printk(KERN_ERR "%d:%d:%d: cannot set freq %d\n",
-				   dev->devnum, subs->interface, ep, runtime->rate);
+			snd_printk(KERN_ERR "%d:%d:%d: cannot set freq %d to ep 0x%x\n",
+				   dev->devnum, subs->interface, fmt->altsetting, runtime->rate, ep);
 			return err;
 		}
-		if ((err = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), GET_CUR, USB_TYPE_CLASS|USB_RECIP_ENDPOINT|USB_DIR_IN,
+		if ((err = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), GET_CUR,
+					   USB_TYPE_CLASS|USB_RECIP_ENDPOINT|USB_DIR_IN,
 					   SAMPLING_FREQ_CONTROL << 8, ep, data, 3, HZ)) < 0) {
-			snd_printk(KERN_ERR "%d:%d:%d: cannot get freq\n",
-				   dev->devnum, subs->interface, ep);
+			snd_printk(KERN_ERR "%d:%d:%d: cannot get freq at ep 0x%x\n",
+				   dev->devnum, subs->interface, fmt->altsetting, ep);
 			return err;
 		}
 		runtime->rate = data[0] | (data[1] << 8) | (data[2] << 16);
@@ -1091,9 +1157,7 @@
 {
 	snd_usb_stream_t *as = snd_pcm_substream_chip(substream);
 	snd_usb_substream_t *subs = &as->substream[direction];
-	struct usb_interface *iface;	
-	iface = &subs->dev->actconfig->interface[subs->interface];
-	usb_set_interface(subs->dev, iface->altsetting->bInterfaceNumber, 0);
+	usb_set_interface(subs->dev, subs->interface, 0);
 	release_substream_urbs(subs);
 	subs->pcm_substream = NULL;
 	return 0;
@@ -1223,7 +1287,8 @@
 
 static struct usb_device_id usb_audio_ids [] = {
     { match_flags: (USB_DEVICE_ID_MATCH_INT_CLASS | USB_DEVICE_ID_MATCH_INT_SUBCLASS),
-      bInterfaceClass: USB_CLASS_AUDIO, bInterfaceSubClass: 1},
+      bInterfaceClass: USB_CLASS_AUDIO,
+      bInterfaceSubClass: USB_SUBCLASS_AUDIO_CONTROL },
     { }						/* Terminating entry */
 };
 
@@ -1284,7 +1349,7 @@
 		alts = &iface->altsetting[i];
 		/* skip invalid one */
 		if (alts->bInterfaceClass != USB_CLASS_AUDIO ||
-		    alts->bInterfaceSubClass != 2 ||
+		    alts->bInterfaceSubClass != USB_SUBCLASS_AUDIO_STREAMING ||
 		    alts->bNumEndpoints < 1)
 			continue;
 		/* must be isochronous */
@@ -1460,6 +1525,7 @@
 		fp->altsetting = altno;
 		fp->altset_idx = i;
 		fp->endpoint = alts->endpoint[0].bEndpointAddress;
+		fp->ep_attr = alts->endpoint[0].bmAttributes;
 		fp->channels = channels;
 		fp->attributes = csep[3];
 
@@ -1538,15 +1604,19 @@
 static void proc_dump_substream_formats(snd_usb_substream_t *subs, snd_info_buffer_t *buffer)
 {
 	struct list_head *p;
+	static char *sync_types[4] = {
+		"NONE", "ASYNC", "ADAPTIVE", "SYNC"
+	};
 
 	list_for_each(p, &subs->fmt_list) {
 		struct audioformat *fp;
 		fp = list_entry(p, struct audioformat, list);
 		snd_iprintf(buffer, "  Format: %s\n", snd_pcm_format_name(fp->format));
 		snd_iprintf(buffer, "  Channels: %d\n", fp->channels);
-		snd_iprintf(buffer, "  Endpoint: %d %s\n",
+		snd_iprintf(buffer, "  Endpoint: %d %s (%s)\n",
 			    fp->endpoint & USB_ENDPOINT_NUMBER_MASK,
-			    fp->endpoint & USB_DIR_IN ? "IN" : "OUT");
+			    fp->endpoint & USB_DIR_IN ? "IN" : "OUT",
+			    sync_types[(fp->ep_attr & EP_ATTR_MASK) >> 2]);
 		if (fp->rates & SNDRV_PCM_RATE_CONTINUOUS) {
 			snd_iprintf(buffer, "  Rates: %d - %d (continous)\n",
 				    fp->rate_min, fp->rate_max);
@@ -1724,7 +1794,7 @@
 		}
 		iface = &config->interface[j];
 		if (iface->altsetting[0].bInterfaceClass != USB_CLASS_AUDIO ||
-		    iface->altsetting[0].bInterfaceSubClass != 2) {
+		    iface->altsetting[0].bInterfaceSubClass != USB_SUBCLASS_AUDIO_STREAMING) {
 			snd_printdd(KERN_ERR "%d:%u:%d: skipping non-supported interface %d\n", dev->devnum, ctrlif, j, iface->altsetting[0].bInterfaceClass);
 			/* skip non-supported classes */
 			continue;
@@ -1787,7 +1857,6 @@
 
 static int snd_usb_audio_free(snd_usb_audio_t *chip)
 {
-	//snd_usb_proc_done(chip);
 	down(&register_mutex);
 	usb_chip[chip->index] = NULL;
 	up(&register_mutex);
Index: alsa-driver/usb/usbaudio.h
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-driver/usb/usbaudio.h,v
retrieving revision 1.6
diff -u -r1.6 usbaudio.h
--- alsa-driver/usb/usbaudio.h	12 Jun 2002 12:56:14 -0000	1.6
+++ alsa-driver/usb/usbaudio.h	13 Jun 2002 09:31:24 -0000
@@ -27,6 +27,9 @@
 /*
  */
 
+#define USB_SUBCLASS_AUDIO_CONTROL	0x01
+#define USB_SUBCLASS_AUDIO_STREAMING	0x02
+
 #define USB_DT_CS_DEVICE                0x21
 #define USB_DT_CS_CONFIG                0x22
 #define USB_DT_CS_STRING                0x23

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-13 10:39                   ` Takashi Iwai
@ 2002-06-13 12:54                     ` Patrick Shirkey
  2002-06-13 13:05                       ` Takashi Iwai
  0 siblings, 1 reply; 22+ messages in thread
From: Patrick Shirkey @ 2002-06-13 12:54 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Takashi Iwai wrote:
> 
> actually the endpoints of the first two pcm streams are identical.
> is the sound only mono?

Yes it *was* just through output 2 or 4 on the card.

> on the description, it's defined as stereo streams.
> so i guess quattro has two stereo streams, corresponding #0 (or #1)
> and #2.
> it seems that the stream #0 has only 16bit 44.1kHz at most, while the
> stream #1 supports 16/24bit 48kHz (although 24bit-3bytes format is not
> supported on alsa yet).
> 

This card is supposed to be 24bit/96Khz. In windows it works like this:

4 i/o channels(2 in, 2 out) at 16bit/48Khz or less
3 i/o channels(2 in, 1 out or 1 in, 2 out) at 24bit/48Khz or less
1 channel at 24bit/96Khz

I understand why the 24 bit is not being registered, is that also the 
probable reason why 96Khz is not being found?


> 
> i've tested usb mic from Labtec, and it works.
> so the problem is specific to the hardware, or multi-channels...
> 

I just remembered that my mouse is a usb mouse too so that is not 
unexpected.

> 
> anyway, could you try the attached patch?
> 

Excellent work. That has enabled stereo playback in hw:2,0 hw:2,1 and 
hw:2,2. I am unsure about a couple of things though. hw:2,0 and hw 2,1 
seem to be doing the same thing.


#dmesg
---
usb.c: registered new driver snd-usb-audio
ALSA usbaudio.c:1833: adding an output interface 3:0:1
ALSA usbaudio.c:1827: adding an input interface 3:0:2
devfs_register(unknown): could not append to parent, err: -17
devfs_register(unknown): could not append to parent, err: -17
devfs_register(unknown): could not append to parent, err: -17
ALSA usbaudio.c:1833: adding an output interface 3:3:4
ALSA usbaudio.c:1827: adding an input interface 3:3:5
ALSA usbaudio.c:1459: 3:4:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1459: 3:4:3 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1459: 3:5:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1459: 3:5:3 : non-supported sample bit 1 in 3 bytes
devfs_register(unknown): could not append to parent, err: -17
ALSA usbaudio.c:1833: adding an output interface 3:6:7
ALSA usbaudio.c:1827: adding an input interface 3:6:8
ALSA usbaudio.c:1459: 3:7:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1459: 3:7:3 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1459: 3:8:1 : non-supported sample bit 1 in 3 bytes
ALSA usbaudio.c:1459: 3:8:3 : non-supported sample bit 1 in 3 bytes
---




-- 
Patrick Shirkey - Boost Hardware Ltd.
For the discerning hardware connoisseur
Http://www.boosthardware.com
Http://www.boosthardware.com/LAU/guide/
========================================


_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-13 12:54                     ` Patrick Shirkey
@ 2002-06-13 13:05                       ` Takashi Iwai
  2002-06-13 13:21                         ` Niklas Werner
  2002-06-13 13:35                         ` Patrick Shirkey
  0 siblings, 2 replies; 22+ messages in thread
From: Takashi Iwai @ 2002-06-13 13:05 UTC (permalink / raw)
  To: Patrick Shirkey; +Cc: alsa-devel

At Thu, 13 Jun 2002 21:54:08 +0900,
Patrick Shirkey wrote:
> 
> Takashi Iwai wrote:
> > 
> > actually the endpoints of the first two pcm streams are identical.
> > is the sound only mono?
> 
> Yes it *was* just through output 2 or 4 on the card.
> 
> > on the description, it's defined as stereo streams.
> > so i guess quattro has two stereo streams, corresponding #0 (or #1)
> > and #2.
> > it seems that the stream #0 has only 16bit 44.1kHz at most, while the
> > stream #1 supports 16/24bit 48kHz (although 24bit-3bytes format is not
> > supported on alsa yet).
> > 
> 
> This card is supposed to be 24bit/96Khz. In windows it works like this:
> 
> 4 i/o channels(2 in, 2 out) at 16bit/48Khz or less
> 3 i/o channels(2 in, 1 out or 1 in, 2 out) at 24bit/48Khz or less
> 1 channel at 24bit/96Khz
 
interesting.  i don't find any mono channel on the descriptions.
well, more investigations are necessary.


> I understand why the 24 bit is not being registered, is that also the 
> probable reason why 96Khz is not being found?
 
yes, it's because 88.2 and 96kHz are supported only with 24bit
format.
i'll work on the extension of more formats, so that 24bit on usb can
work.

 
> > 
> > i've tested usb mic from Labtec, and it works.
> > so the problem is specific to the hardware, or multi-channels...
> > 
> 
> I just remembered that my mouse is a usb mouse too so that is not 
> unexpected.

too much bandwidth?


> > 
> > anyway, could you try the attached patch?
> > 
> 
> Excellent work. That has enabled stereo playback in hw:2,0 hw:2,1 and 
> hw:2,2.

good!

then it was a bug of linux usb core stuff.
well, we may call it a bug of hardware :)
the quattro has insuccessive alternate settings, jumping from 0 to 4.
and linux usb core implicitly assumes the successive numbers.

anyway i'll commit this version to cvs now.


> I am unsure about a couple of things though. hw:2,0 and hw 2,1 
> seem to be doing the same thing.

that's also a question to me :)
as written in my previous mail, hw:2,1 supports 24bit, while hw:2,0
doesn't.  perhaps this is only difference.


Takashi

_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-13 13:05                       ` Takashi Iwai
@ 2002-06-13 13:21                         ` Niklas Werner
  2002-06-13 14:05                           ` Takashi Iwai
  2002-06-13 13:35                         ` Patrick Shirkey
  1 sibling, 1 reply; 22+ messages in thread
From: Niklas Werner @ 2002-06-13 13:21 UTC (permalink / raw)
  To: alsa-devel

<SNIP>

Well, now comes the ugly things:

Using the usb-audio-driver leads to system-lockups:

No matter whether I access my emi26 via aplay or via oss-emulation, after 
some time or (more probable) some amount of data my System locks up (hard 
reset ;-() or at least the usb-bus locks absoulety thight up.
I can't reload the driver, not even reconnecting the device helps it 
always gives a timeout message:

Jun 13 12:26:19 Schlumpfine kernel:   0: [cd2c01e0] link (0d2c0210) e0 
Stalled CRC/Timeo Length=7 MaxLen=7 DT0 EndPt=0 Dev=2, PID=2d(SETUP) 
(buf=0d0222c0)
Jun 13 12:26:19 Schlumpfine kernel:   1: [cd2c0210] link (0d2c0240) e3 
SPD Active Length=0 MaxLen=11 DT1 EndPt=0 Dev=2, PID=69(IN) (buf=08a9c000)
Jun 13 12:26:19 Schlumpfine kernel:   2: [cd2c0240] link (00000001) e3 
IOC Active Length=0 MaxLen=7ff DT1 EndPt=0 Dev=2, PID=e1(OUT) 
(buf=00000000)
Jun 13 12:25:03 Schlumpfine kernel: usb_control/bulk_msg: timeout
Jun 13 12:25:03 Schlumpfine kernel: emi26_load_firmware - error loading 
firmware
: error = -110<6>IPv6 v0.8 for NET4.0
Jun 13 12:25:28 Schlumpfine kernel: usb_control/bulk_msg: timeout
Jun 13 12:25:43 Schlumpfine last message repeated 149 times   
Jun 13 12:26:06 Schlumpfine kernel: emi26: set_reset (1) 
failed<3>emi26_load_fir
mware - error loading firmware: error = -110<7>uhci.c: root-hub INT 
complete: po
rt1: 580 port2: 48a data: 4

This doesn't happen with the kernel module (audio).
Unfortunately I can't find any clues in the logfiles, maybe you can...

At least I can reproduce this easily using xmms to playback some 7 
minutes or so of 48kHz mp3s....

Using aplay and waves this effect tends to appear later.
Using xmms' alsa-plugin crashes the sound-driver at once...

right, have fun*

Niklas

_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-13 13:05                       ` Takashi Iwai
  2002-06-13 13:21                         ` Niklas Werner
@ 2002-06-13 13:35                         ` Patrick Shirkey
  2002-06-13 13:43                           ` Takashi Iwai
  1 sibling, 1 reply; 22+ messages in thread
From: Patrick Shirkey @ 2002-06-13 13:35 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Takashi Iwai wrote:
>>This card is supposed to be 24bit/96Khz. In windows it works like this:
>>
>>4 i/o channels(2 in, 2 out) at 16bit/48Khz or less
>>3 i/o channels(2 in, 1 out or 1 in, 2 out) at 24bit/48Khz or less
>>1 channel at 24bit/96Khz
> 
>  
> interesting.  i don't find any mono channel on the descriptions.
> well, more investigations are necessary.
> 

It is confusing to me also. From reading their docs I thought that the 
card was all seperate mono channels lsusb has changed my opinion. I now 
belive that Quattro stands for 2 stereo i/o devices not 4 mono i/o devices.

By saying in the docs that it supports 1 channel at 24bit/96Khz I guess 
they mean 1 stereo in or 1 stereo out. that is good news to me becasue I 
was under the impression that I had bought a turkey with only one mono 
i/o channel at 24/96.

>>>i've tested usb mic from Labtec, and it works.
>>>so the problem is specific to the hardware, or multi-channels...
>>>
>>
>>I just remembered that my mouse is a usb mouse too so that is not 
>>unexpected.
> 
> 
> too much bandwidth?
> 

Testing again with the new code didn't lock up my mouse and this time 
the file actually recorded data although I still cannot capture noise. 
Do you have any ideas on how I can adjust the input levels internally 
seeing as the card has no apparent internal mixer?

Is this a case of having to write our own mixer device?

Does this part of lsusb have anything to do with mixer controls?

----
  wChannelConfig     0x0003
           Left Front (L)
           Right Front (R)
         iChannelNames           0
         iTerminal               0
----





-- 
Patrick Shirkey - Boost Hardware Ltd.
For the discerning hardware connoisseur
Http://www.boosthardware.com
Http://www.boosthardware.com/LAU/guide/
========================================


_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-13 13:35                         ` Patrick Shirkey
@ 2002-06-13 13:43                           ` Takashi Iwai
  2002-06-13 14:58                             ` Patrick Shirkey
  0 siblings, 1 reply; 22+ messages in thread
From: Takashi Iwai @ 2002-06-13 13:43 UTC (permalink / raw)
  To: Patrick Shirkey; +Cc: alsa-devel

At Thu, 13 Jun 2002 22:35:44 +0900,
Patrick Shirkey wrote:
> 
> Takashi Iwai wrote:
> >>This card is supposed to be 24bit/96Khz. In windows it works like this:
> >>
> >>4 i/o channels(2 in, 2 out) at 16bit/48Khz or less
> >>3 i/o channels(2 in, 1 out or 1 in, 2 out) at 24bit/48Khz or less
> >>1 channel at 24bit/96Khz
> > 
> >  
> > interesting.  i don't find any mono channel on the descriptions.
> > well, more investigations are necessary.
> > 
> 
> It is confusing to me also. From reading their docs I thought that the 
> card was all seperate mono channels lsusb has changed my opinion. I now 
> belive that Quattro stands for 2 stereo i/o devices not 4 mono i/o devices.
> 
> By saying in the docs that it supports 1 channel at 24bit/96Khz I guess 
> they mean 1 stereo in or 1 stereo out. that is good news to me becasue I 
> was under the impression that I had bought a turkey with only one mono 
> i/o channel at 24/96.
 
i remember a guy from midiman told me that they support two channels
24/96 i/o.  well, we have to try whether he's right :)

> >>>i've tested usb mic from Labtec, and it works.
> >>>so the problem is specific to the hardware, or multi-channels...
> >>>
> >>
> >>I just remembered that my mouse is a usb mouse too so that is not 
> >>unexpected.
> > 
> > 
> > too much bandwidth?
> > 
> 
> Testing again with the new code didn't lock up my mouse and this time 
> the file actually recorded data although I still cannot capture noise. 
> Do you have any ideas on how I can adjust the input levels internally 
> seeing as the card has no apparent internal mixer?
 
how is the windows driver?  do they have such one?

> Is this a case of having to write our own mixer device?
> 
> Does this part of lsusb have anything to do with mixer controls?
> 
> ----
>   wChannelConfig     0x0003
>            Left Front (L)
>            Right Front (R)
>          iChannelNames           0
>          iTerminal               0
> ----

no, this defines only the configuration of speaker positions.
apparently on all streams, the input terminal is directly connected to
the output terminal.  there is no volume/switch control found at all
(at least on usb device descriptions).

about the capture, it might be a problem of usb audio driver.
right now i cannot test the capture again, because usb mic was already
returned to the owner.  possibly i can test tomorrow...


BTW, the new version is already on cvs.
i again modified (clean up) a bit since the version you have, so
please check whether it still works for you (i believe it must do,
though).


Takashi

_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-13 13:21                         ` Niklas Werner
@ 2002-06-13 14:05                           ` Takashi Iwai
  2002-06-14  8:58                             ` Niklas Werner
  0 siblings, 1 reply; 22+ messages in thread
From: Takashi Iwai @ 2002-06-13 14:05 UTC (permalink / raw)
  To: Niklas Werner; +Cc: alsa-devel

At Thu, 13 Jun 2002 15:21:05 +0200,
Niklas Werner wrote:
> 
> Well, now comes the ugly things:
> 
> Using the usb-audio-driver leads to system-lockups:
> 
> No matter whether I access my emi26 via aplay or via oss-emulation, after 
> some time or (more probable) some amount of data my System locks up (hard 
> reset ;-() or at least the usb-bus locks absoulety thight up.
> I can't reload the driver, not even reconnecting the device helps it 
> always gives a timeout message:
> 
> Jun 13 12:26:19 Schlumpfine kernel:   0: [cd2c01e0] link (0d2c0210) e0 
> Stalled CRC/Timeo Length=7 MaxLen=7 DT0 EndPt=0 Dev=2, PID=2d(SETUP) 
> (buf=0d0222c0)
> Jun 13 12:26:19 Schlumpfine kernel:   1: [cd2c0210] link (0d2c0240) e3 
> SPD Active Length=0 MaxLen=11 DT1 EndPt=0 Dev=2, PID=69(IN) (buf=08a9c000)
> Jun 13 12:26:19 Schlumpfine kernel:   2: [cd2c0240] link (00000001) e3 
> IOC Active Length=0 MaxLen=7ff DT1 EndPt=0 Dev=2, PID=e1(OUT) 
> (buf=00000000)
> Jun 13 12:25:03 Schlumpfine kernel: usb_control/bulk_msg: timeout
> Jun 13 12:25:03 Schlumpfine kernel: emi26_load_firmware - error loading 
> firmware
> : error = -110<6>IPv6 v0.8 for NET4.0
> Jun 13 12:25:28 Schlumpfine kernel: usb_control/bulk_msg: timeout
> Jun 13 12:25:43 Schlumpfine last message repeated 149 times   
> Jun 13 12:26:06 Schlumpfine kernel: emi26: set_reset (1) 
> failed<3>emi26_load_fir
> mware - error loading firmware: error = -110<7>uhci.c: root-hub INT 
> complete: po
> rt1: 580 port2: 48a data: 4
> 
> This doesn't happen with the kernel module (audio).
> Unfortunately I can't find any clues in the logfiles, maybe you can...

which kernel version are you using?
i can see the error of firmware downloading above.  can it be related
with the lock-up of alsa driver?


> At least I can reproduce this easily using xmms to playback some 7 
> minutes or so of 48kHz mp3s....
> 
> Using aplay and waves this effect tends to appear later.
> Using xmms' alsa-plugin crashes the sound-driver at once...

then perhps difference is the period / buffer size.
my driver allows very small period size up to 1msec, while oss driver
uses always 10msec (5ms x 2).

could you check the files under /proc/asound/cardX/pcm0p/sub0
directory during playback?  they show the running set-up of pcm.


Takashi

_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-13 13:43                           ` Takashi Iwai
@ 2002-06-13 14:58                             ` Patrick Shirkey
  0 siblings, 0 replies; 22+ messages in thread
From: Patrick Shirkey @ 2002-06-13 14:58 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Takashi Iwai wrote:

> BTW, the new version is already on cvs.
> i again modified (clean up) a bit since the version you have, so
> please check whether it still works for you (i believe it must do,
> though).
> 

Yes it does.


-- 
Patrick Shirkey - Boost Hardware Ltd.
For the discerning hardware connoisseur
Http://www.boosthardware.com
Http://www.boosthardware.com/LAU/guide/
========================================


_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: status of usb audio driver
  2002-06-13 14:05                           ` Takashi Iwai
@ 2002-06-14  8:58                             ` Niklas Werner
  0 siblings, 0 replies; 22+ messages in thread
From: Niklas Werner @ 2002-06-14  8:58 UTC (permalink / raw)
  To: alsa-devel

Am Thursday, 13. June 2002 16:05, wurde geschrieben:
>
> which kernel version are you using?
> i can see the error of firmware downloading above.  can it be related
> with the lock-up of alsa driver?

2.4.18 vanilla with emi26-patch
Well, using the oss-driver this doesn't happen (Well, the firmware-error 
remains, but nevertheless, after reconnecting the device all is fine and 
the firmware gets loaded)

>
> > At least I can reproduce this easily using xmms to playback some 7
> > minutes or so of 48kHz mp3s....
> >
> > Using aplay and waves this effect tends to appear later.
> > Using xmms' alsa-plugin crashes the sound-driver at once...
>
> then perhps difference is the period / buffer size.
> my driver allows very small period size up to 1msec, while oss driver
> uses always 10msec (5ms x 2).
>
> could you check the files under /proc/asound/cardX/pcm0p/sub0
> directory during playback?  they show the running set-up of pcm.

aplay:

Schlumpfine:~ # cat /proc/asound/card0/pcm0p/sub0/hw_params 
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 4096
buffer_size: 16384
tick_time: 10000

play (ie sox->/dev/dsp):
Schlumpfine:~ # cat /proc/asound/card0/pcm0p/sub0/hw_params 
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 5638
buffer_size: 11276
tick_time: 10000
OSS format: U8
OSS channels: 1
OSS rate: 8000
OSS period bytes: 1024
OSS periods: 2

xmms:

Schlumpfine:~ # cat /proc/asound/card0/pcm0p/sub0/hw_params 
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1024
buffer_size: 16384
tick_time: 10000
OSS format: S16_LE
OSS channels: 2
OSS rate: 48000
OSS period bytes: 4096
OSS periods: 16

aplay 96KHz:
Schlumpfine:~ # cat /proc/asound/card0/pcm0p/sub0/hw_params 
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 96000 (96000/1)
period_size: 4096
buffer_size: 16384
tick_time: 10000

obviously, I now can't get the system to lock up,... demonstration 
effect...

I'll get back to you, when I find other hints (the odd buffer/period size 
when accessing /dev/dsp directly seems strange...)

Have fun*

Niklas

BTW.: regarding the powermac-driver: I think I didn't answer your 
question with mic-sliders:
It doesn't matter where to put the value of the mic-slider to get the 
sound, simply moving it gets the sound out of the screamer.

_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2002-06-14  8:58 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-06-04 16:57 status of usb audio driver Takashi Iwai
2002-06-12  5:16 ` Patrick Shirkey
2002-06-12 13:24   ` Takashi Iwai
2002-06-12 14:10     ` Patrick Shirkey
2002-06-12 14:13       ` Takashi Iwai
2002-06-12 14:19         ` Niklas Werner
2002-06-12 14:36           ` Takashi Iwai
2002-06-12 16:00             ` Niklas Werner
2002-06-12 14:55         ` Patrick Shirkey
2002-06-12 16:12           ` Patrick Shirkey
2002-06-12 16:48             ` Patrick Shirkey
2002-06-12 16:59               ` Takashi Iwai
2002-06-12 17:31                 ` Patrick Shirkey
2002-06-13 10:39                   ` Takashi Iwai
2002-06-13 12:54                     ` Patrick Shirkey
2002-06-13 13:05                       ` Takashi Iwai
2002-06-13 13:21                         ` Niklas Werner
2002-06-13 14:05                           ` Takashi Iwai
2002-06-14  8:58                             ` Niklas Werner
2002-06-13 13:35                         ` Patrick Shirkey
2002-06-13 13:43                           ` Takashi Iwai
2002-06-13 14:58                             ` Patrick Shirkey

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.