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.
HTH Clemens