Hello Clemens and Ewald,

Bought this card the other week, been looking into making it work on my
linux box. I am not a coder, so what follows is speculative.

I have both the UA-25EX and the UA-55, so made some lsusb -v comparisons
and deductions:

(In the next mail (because of  mailing list limitation):
Main specifications of the UA-55 from the manual.
lsusb -v outputs for the following:
UA-55
UA-25EX standard mode
UA-25EX advanced 44.1 mode
UA-25EX advanced 48 mode
UA-25EX advanced 96 playback mode
UA-25EX advanced 96 record mode. )

The UA-55 does not have an advanced mode switch. Comparing lsusb -v for
UA-25Ex and UA-55, it looks like the UA-55 is always in advanced mode.

The UA-25EX in normal mode is standards compliant, so lsusb -v knows how to
interpret all the data. We get values for bNrChannels, bBitResolution,
bSamFreq and wFormatTag (e.g. 2 channels, 16bit, 44100Hz, PCM).

Both the UA-25EX and UA-55 in advanced mode give UNRECOGNIZED values in
lsusb -v, examples:

UA-25EX advanced mode 44.1kHz sample rate:
** UNRECOGNIZED:  07 24 01 07 00 01 00
** UNRECOGNIZED:  0b 24 02 01 02 03 18 01 44 ac 00

UA-55:
** UNRECOGNIZED:  07 24 01 01 00 01 01
** UNRECOGNIZED:  0b 24 02 01 04 04 18 01 80 bb 00

The comment for create_uaxx_quirk in quirks.c says that the only way to
detect samplerate is to look at wMaxPacketSize, but it is not true. The
device does tell us:

44 ac 00 -> 0x00ac44 = 44100
80 bb 00 -> 0x00bb80 = 48000

So I attempt to interpret the data structure of these UNRECOGNIZED values
with the help of "frmts10.pdf", "Frmts20 final.pdf" and correlations
between UA-25EX standard and advanced modes. Example:

Audio class-specific stream interface
07      bLength = 7
24      bDescriptorType = CS_INTERFACE
01      bDescriptorSubtype = AS_GENERAL
01      bTerminalLink = 1
00      bDelay = 0 frames
01      wFormatTag (1) = PCM
01      wFormatTag (2) = PCM
          (  or WAVE_FORMAT_IRAT BeCubed Software Inc 0x0101
            or IBM_FORMAT_MULAW  0x0101 ? )
Audio class-specific type I format
0b      bLength = 11
24      bDescriptorType = CS_INTERFACE
02      bDescriptorSubtype = FORMAT_TYPE
01      bFormatType = TYPE_I
04      bNrChannels = 4 channels
04      bSubFrameSize = 4
18      bBitResolution = 0x18 = 24 bits
01      bSamFreqType = 1 (1 sampling frequency only)
80 bb 00        tSamFreq = 0x00bb80 = 48000 Hz sample rate

Seems straightforward enough. Trying to put this into the drivers, I fail
miserably because I can't code. I try to make a copy in quirks.c of
create_uaxx_quirk called create_ua55_quirk and just put the UA-55 values in
it, but it doesn't fit.

The UA-55 has many combinations of channels and samplerates and
wMaxPacketSize (and even the same wMaxPacketSize for 44.1kHz and 48kHz
samplerates), so wMaxPacketSize is unsuitable for determining samplerate.

I don't know how to make the driver read the info from those UNRECOGNIZED
values, even if it's clearly there. I don't know if the driver needs to be
told about the 4 and 6 channel outputs. I don't know how the double
wFormatTag relates to the channels. I don't know where to begin to find out
about these things. Phew.

(The manual hints that you should be able to stream 2channel audio as is.
There is no mention of 6 channels in the manual.)

Parsing the unrecognized data with the above interpretation yields:

UA-55 interface 0 altsetting 0:  ** UNRECOGNIZED:  06 24 f1 01 00 00
UA-55 interface 0 altsetting 1: 4channel 24bit 44100Hz wMaxPacketSize 0x070
UA-55 interface 0 altsetting 2: 4channel 24bit 48000Hz wMaxPacketSize 0x070
UA-55 interface 0 altsetting 3: 4channel 24bit 96000hz wMaxPacketSize 0x0d0
UA-55 interface 0 altsetting 4: 2channel 24bit 192000hz wMaxPacketSize 0x0c8
UA-55 interface 1 altsetting 0:
UA-55 interface 1 altsetting 1: 6channel 24bit 44100Hz wMaxPacketSize 0x0a8
UA-55 interface 1 altsetting 2: 6channel 24bit 48000Hz wMaxPacketSize 0x0a8
UA-55 interface 1 altsetting 3: 6channel 24bit 96000Hz wMaxPacketSize 0x138
UA-55 interface 1 altsetting 4: 2channel 24bit 192000Hz wMaxPacketSize 0x0c8
UA-55 interface 2 altsetting 0: ** UNRECOGNIZED:  06 24 f1 02 01 01
UA-55 interface 2 altsetting 1:
UA-55 interface 3 altsetting 0:
UA-55 interface 3 altsetting 1:
UA-55 interface 4 altsetting 0:
UA-55 interface 4 altsetting 1:
UA-55 interface 4 altsetting 2:
UA-55 interface 4 altsetting 3:
UA-55 interface 4 altsetting 4:

UA-25EX stdrd int 0 alt 0: Audio Control Device
UA-25EX stdrd int 1 alt 0: Audio Streaming
UA-25EX stdrd int 1 alt 1: 2ch 16bit 44100Hz wMaxPacketSize 0x0c0
UA-25EX stdrd int 2 alt 0: Audio Streaming
UA-25EX stdrd int 2 alt 1: 2ch 16bit 44100Hz wMaxPacketSize 0x0c0
UA-25EX adv 44.1 mode int 0 alt 0:
UA-25EX adv 44.1 mode int 0 alt 1: 2ch 24bit 44100Hz wMaxPacketSize 0x120
UA-25EX adv 44.1 mode int 1 alt 0:
UA-25EX adv 44.1 mode int 1 alt 1: 2ch 24bit 44100Hz wMaxPacketSize 0x120
UA-25EX adv 44.1 mode int 2 alt 0:
UA-25EX adv 44.1 mode int 2 alt 1:
UA-25EX adv 48 mode int 0 alt 0:
UA-25EX adv 48 mode int 0 alt 1: 2ch 24bit 48000Hz wMaxPacketSize 0x140
UA-25EX adv 48 mode int 1 alt 0:
UA-25EX adv 48 mode int 1 alt 1: 2ch 24bit 48000Hz wMaxPacketSize 0x140
UA-25EX adv 48 mode int 2 alt 0:
UA-25EX adv 48 mode int 2 alt 1:
UA-25EX adv 96 playback int0 alt 0:
UA-25EX adv 96 playback int0 alt 1: 2ch 24bit 96000Hz wMaxPacketSize 0x260
UA-25EX adv 96 playback int1 alt 0:
UA-25EX adv 96 playback int1 alt 1:
UA-25EX adv 96 record int0 alt 0:
UA-25EX adv 96 record int0 alt 1: 2ch 24bit 96000Hz wMaxPacketSize 0x260
UA-25EX adv 96 record int1 alt 0:
UA-25EX adv 96 record int1 alt 1:


Any hints on how to hack up a driver for this?

Cheers,

Aleks
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Alsa-user mailing list
Alsa-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to