M-Audio Revolution 5.1 Linux Support
By Jochen Voss, last updated .
This page summarises the Linux hardware support for the M-Audio Revolution 5.1 sound card. If you have questions or additional hints, feel free to contact me.
Summary
The M-Audio Revolution 5.1 sound card is reasonably well supported under Linux with ALSA version 1.0.12 or newer. Support was poor with earlier ALSA versions.
Sound quality is very good and, if you do not need the headphone output (it does not yet work), the M-Audio Revolution 5.1 is a nice sound card for use under Linux.
| action | status | |
|---|---|---|
| analog playback | works good sound quality | |
| analog recording | works | |
| headphone output | works (since Linux kernel 2.6.29?) | |
| ALSA controls | functional (but some strange labels) | |
| digital I/O (via S/PDIF) | not tried |
Table 1. This table summarises the Linux support status for the M-Audio Revolution 5.1 sound card.
ALSA support
The following data corresponds to ALSA version 1.0.13. Hints on how to set up and use ALSA can, for example, be found on my ALSA web page.
The card is supported by the ice1724 ALSA driver. The
entry in /proc/asound/cards is
0 [Revolution51 ]: ICE1724 - M Audio Revolution-5.1
M Audio Revolution-5.1 at 0xb800, irq 16
Mixer Settings
Alsamixer
shows the following controls for the card.
Figure 2 helps to understand the effect of the
different mixer controls. Note that the string IEC958
in the
control names refers to the digital S/PDIF port.
Figure 2. A schematic representation of
(my best guess about) the data flow inside the Revolution 5.1 sound card.
V
denotes volume controls, M
denotes the possibility to mute
a stream. The digital loop-back allows to replace each of the eight DMA
output channels with an arbitray one of the four input signals.
Playback
- PCM
- stereo slider: volume for the two front channels
- PCM Center
- mono slider: volume for the centre channel are silent)
- PCM LFE
- mono slider: volume for the
low frequence effects
(LFE) channel - PCM Rear
- stereo slider: volume for the two rear channels
- Line Loopback
- stereo slider: volume for the analog loopback of line-in
- Mic Loopback
- stereo slider: volume for the analog loopback of the microphone input
- CD Loopback
- stereo slider: volume for the analog loopback of the built-in analog CD connector.
- Loopback
- Toggle the analog loopback. Possible values: mute/unmute.
- Capture Channel
- Select the analog capture source. Possible values:
Mic
,Line
,CD
- H/W
- Digital loopback selector for the front left output channel. Possible
values:
PCM Out
,H/W In 0
,H/W In 1
,IEC958 In L
,IEC958 In R
. - H/W 1
- Digital loopback selector for the front right output channel. possible
values:
PCM Out
,H/W In 0
,H/W In 1
,IEC958 In L
,IEC958 In R
. - H/W 2
- possible values:
PCM Out
,H/W In 0
,H/W In 1
,IEC958 In L
,IEC958 In R
. - H/W 3
- possible values:
PCM Out
,H/W In 0
,H/W In 1
,IEC958 In L
,IEC958 In R
. - H/W 4
- possible values:
PCM Out
,H/W In 0
,H/W In 1
,IEC958 In L
,IEC958 In R
. - H/W 5
- possible values:
PCM Out
,H/W In 0
,H/W In 1
,IEC958 In L
,IEC958 In R
. - IEC958
- Digital loopback selector for the left (?) S/PDIF output channel.
Possible values:
PCM Out
,H/W In 0
,H/W In 1
,IEC958 In L
,IEC958 In R
. - IEC958 1
- Digital loopback selector for the right (?) S/PDIF output channel.
Possible values:
PCM Out
,H/W In 0
,H/W In 1
,IEC958 In L
,IEC958 In R
. - IEC958 Output
- possible values: mute/unmute.
- Deemphasis
- possible values:
44.1kHz
,Off
,48kHz
,32kHz
. These numbers seem to reflect the digital de-emphasis parameter settings of the AK4358 D/A converter. No idea what this is good for. - Multi Track Internal Clock
- possible values:
8000
,9600
,11025
,12000
,16000
,22050
,24000
,32000
,44100
,48000
,64000
,88200
,96000
,176400
,192000
,IEC958 Input
. - Multi Track Peak
- stereo slider: When I enter alsamixer this seems to be set to the peak volume of the previous few seconds for the two stereo channels. I can adjust this but this seems to have no effect.
- Multi Track Peak
- stereo slider. Yes, the name is the same as above.
- Multi Track Peak
- mono slider. Yes, the name is the same as above.
- Multi Track Peak
- mono slider. Again.
- Multi Track Rate Locking
- mute/unmute
- Multi Track Rate Reset
- mute/unmute. No idea what this could be.
Capture
- PCM
- stereo slider (with mute/unmute): control the analog capture volume
- Multi Track Peak
- stereo slider
Bugs
There are still some buglets and annoyances left for this card. In this section I list and describe some of them with the aim of getting the problems fixed eventually.
- The headphone output does not work. This is ALSA bug #1754.
- The left stereo channel is always muted on boot. This is already reported as ALSA bug #321. This bug is also present in alsa release 1.0.12rc2.
- The volume controls for the left and right channel of the analog capture source seem to be swapped. This needs further investigation.
Technical Information
This section describes technical details of the inner working of the card. I collected this information to help with improving ALSA support for the card. Now, since most things are working, this information is no longer so useful, but I leave it here for reference.
Access from Linux
The sound card is connected to the computer via the PCI bus. The
lspci output for the card is as follows:
Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT]\ PCI Multi-Channel Audio Controller (rev 01) Subsystem: VIA Technologies Inc. M-Audio Revolution 5.1 Flags: bus master, medium devsel, latency 64, IRQ 16 I/O ports at b800 [size=32] I/O ports at b400 [size=128] Capabilities: [80] Power Management version 1
Chipset
The card is driven by a Via Envy24GT audio-controller. Other names for this chip are ICE1722 or VT1722. According to the product description the card should be able to do 24-bit/192kHz playback on 6 channels and 24-bit/96kHz stereo recording.
Figure 1. A photo of the M-Audio Revolution 5.1 board. Click on the picture for a higher resolution version.
By visual instection of the card (see figure 1) I was able to identify the following chips:
- VT1722
- This is the Envy24GT audio processor. It handles communication with the PCI bus and connects to all the other chips using some serial protocol.
- AK4358
- This is a digital-to-analog converter (DAC). According to the data sheet (see the references section) it has 8 channels with a resolution of 24 bit at sampling rates ranging from 8kHz to 192kHz.
- AK5365
- This is an analog-to-digital converter (ADC). According to the data sheet it has 2 channels with a resolution of 24 bit at sampling rates ranging from 32kHz to 96kHz.
- PT2258
- This is an electronic volume controller.
- 24LC01B
- A serial EEPROM with 1kb capacity.
VT1722 controller
The VT1722 controller provides 23 general purpose input/output (GPIO) lines for use by the board maker. I did not find any documentation how these are connected for the Revolution 5.1 card.
I tried to find out where each GPIO line leads. Originally I did this just by visual inspection of the board, but recently I got a very nice multimeter which helped considerably. My current best guess is the following.
Table 2 lists the known GPIO connections. The GPIOs not listed (1, 3, 4, and 8-20) seem to be unconnected.
| pin | name | connects to |
|---|---|---|
| 50 | GPIO0 | looks connected, no idea where it goes |
| 52 | GPIO2 | looks connected, no idea where it goes |
| 56 | GPIO4 | AK 4358, pin 21 (CSN) |
| 57 | GPIO5 | AK 5365, pin 33 (CSN) |
| 58 | GPIO6 | PT 2258, pin 7 (SDA) |
| 59 | GPIO7 | PT 2258, pin 6 (SCL) |
| 103 | GPIO21 | hard to see whether it is connected or not |
| 104 | GPIO22 | 0 = all mute, 1 = normal operation |
AK4358 DAC
Some things I learned about the AK4358 DAC (don't trust this information too much):
- The chip operates in 3-wire serial mode (pin 18 is pulled to ground)
AK5365 ADC
Some things I learned about the AK5365 ADC (don't trust this information too much):
- The chip probably operates in 3-wire serial mode
- The 3-wire chip select line is maybe connecte to GPIO7
- The input select lines SEL0, SEL1, and SEL2 are all pulled to GND, the input channel is selected using the corresponding bits in register 0x01. At least inputs 1 and 2 seem to be used (1=Microphone, 2=LineIn?).
PT2258 Volume Controller
This chip is a six-channel volume controller.
- It seems to be related to the input lines. This chip allows to loop back the analog input signal directly to the output channels.
- It is controlled via the VT1722 GPIO pins 6 and 7. Currently the ALSA driver has no way of accessing this chip. The chip address is 0x80.
- All six channels seem to be used
Table 3 lists the known pin connections.
| pin | name | connects to | |
|---|---|---|---|
| 1 | IN1 | direction of line-in? | |
| 2 | IN2 | ||
| 3 | IN3 | ||
| 4 | CODE2 | GND | |
| 6 | SCL | VT1722, pin 59 (GPIO 7) | |
| 7 | SDA | VT1722, pin 58 (GPIO 6) | |
| 8 | IN4 | ||
| 9 | IN5 | ||
| 10 | IN6 | ||
| 17 | CODE1 | GND |
Table 3. This table lists the known connections of the PT2258 volume controller on the M-Audio Revolution 5.1 sound card. The information was found by inspection of the board and might not be 100% accurate.
References
- The Revolution 5.1 product page on the M-Audio web page.
- The ALSA driver page for the card and the Alsa Opensrc Org driver page.
- Via's Envy24GT audio-controller page.
- Data sheets: audio processor (the wrong one!) Envy24HT, DAC AK4358, ADC AK5365, volume controller PT2258-S, serial EEPROM 24LC01B
- The FreeBSD Envy24 Audio Driver Coordination Page