[alsa-devel] Any CMedia CMI8788 "Oxygen" and ASUS Xonar D1 "virtuoso" documentation available?

Clemens Ladisch clemens at ladisch.de
Mon Jan 19 09:34:10 CET 2009

John L. Utz III wrote:
> I just tried to find the docs for the CMI8788 on www.cmedia.com.tw and i
> was not successful.

That website has a datasheet which doesn't contain much of interest.

There is a datasheet with register specifications, but it is only
available under NDA.

> Nor have i been able to find any virtuoso docs at www.asus.com.

The only difference between the CMI8787/CMI8788/AV100/AV200 chips is the
label on top of the chip.

> I know that Clemens wrote the driver, but I dont know if it was written
> from scratch with docs or ported from a 4front driver.

I started with an ALSA driver that was written by someone at C-Media,
but it was so incomplete and buggy that I started over from scratch.
I never signed an NDA.

> currently, there are some bugs with channel mapping on the rear channel
> in Surround40 mode that i would like to fix

In 4.0 mode, the "rear" channels go to the "surround" jack.  The
"surround" and "back" jacks behave like described in the manual.

The PCM data from the computer is organized as (up to) four two-channel
pairs.  There are four DACs that each play a two-channel pair of PCM
data.  The "play routing" register contains four two-bit fields that
specify, for each DAC, the number of the channel pair that is to be
played on this DAC.  This allows rerouting (by exchanging some fields)
or duplicating of channels pairs (by having the same source for multiple
DACs).  All this is handled in the oxygen_update_dac_routing() function.


More information about the Alsa-devel mailing list