Status of VIA Envy24 audio controller

Konstantin Dimitrov kosio.dimitrov at gmail.com
Fri Aug 11 09:58:41 UTC 2006


i have done some work on the Envy24HT code, the initial (experimental)
Envy24HT code was for Terratec Aureon 7.1 Space only, as i announced two
months ago:

http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-June/004347.html

now i have merged wm8770.c (my WM8770 code for use with Terratec
Aureon 7.1Space) and
ak452x.c (Katsurajima Naoto's code for AK4524/AK4528) and the new module
supports not only AK4524/AK4528 and WM8770 codecs, but i also have added
support for AK4358 and AK4381. the name of the new module is spicds (comes
from spi = Serial Peripheral Interface used for codecs (cds) control)

also i have made new site: http://envy24.svobodno.com - it is all-in-one
Envy24 resource, i collect there all information for Envy24-based cards that
i have - datasheets, wiring, code, e2prom dumps, etc. so it can save a lot
of time especially for future developers.

what's new (exept spicds.c) from the initial (experimental) Envy24HT code:
- a lot of cosmetic and no so cosmetic changes
- fix "interrupt storm" bug in the Envy24HT(172x) interrupt hadling
- spicds.c allow me to add easily support for many Envy24HT-based cards:

0) Terratec Aureon 7.1 Space
1) Terratec Aureon 5.1 Sky
2) Terratec PHASE 28
3) Terratec Aureon 7.1 Universe
4) Audiotrak Prodigy 7.1

all these cards use Envy24HT + WM8770 and have the same wiring between
Envy24HT and WM8770 like Terratec Aureon 7.1 Space, so they should be 100%
working, i am testing the code on my Terratec Aureon 7.1 Space and from
driver development point of view they all are the same card as Terratec
Aureon 7.1 Space.

5) Audiotrak Prodigy 7.1 LT : need to be tested by someone, chances to work
without additional code are very high (WM8770_RESETB <-> Envy24HT GPIO ?
wiring is unknown)

6) Terratec PHASE 22 : uses Envy24HT-S and AK4524, need to be tested by
someone, chances to work without additional code are medium (AK4524 <->
Envy24HT PSDOUT_? wiring is unknown)

7) M-Audio Revolution 7.1 : need to be tested by someone, chances to work
without additional code are very high

8) M-Audio Revolution 5.1 : need to be tested by someone, chances to work
without additional code is low (uses Envy24GT, no datasheet, also uses
PT2258)

9) M-Audio Audiophile 192 : Damian Gerow (dgerow at afflictions dot org )
made E2PROM dump using my envy24-e2prom-dump kernel module and Noel Ambrose
and his friend with a little help from me, managed to reverse the wiring of
the Audiophile 192 (AP192). however the AP192 support need to be tested by
someone, chances to work without additional code are very high.

for all supported cards the volume can be change only with "mixer vol ..."

because i reuse big part of the old Katsurajima Naoto's code for Envy24, the
Envy24HT driver has some known problems: no vchans and 172x hasn't hardware
mixing, so it is serious limitation - only one stereo file can be played at
a same time, interrupt storm when module is loaded before the start of KDE
(that apply for envy24.c also, for the moment workaround is to kldload the
module after KDE is started), maybe there are also other problems.

the new Envy24HT code is here:

http://envy24.svobodno.com/driver/envy24ht/

so new architecture is:
- envy24.c for Envy24(1712)-based cards
- envy24ht.c for Envy24HT(1724)-based cards (in some cases it can be used
also for 172x-based(Envy24HT-S, Envy24GT, etc.) cards)
- spicds.c is used by both envy24.c and envy24ht.c (ak452x.c is no needed
anymore)

here is the patch to allow envy24.c to use spicds.c:

http://envy24.svobodno.com/driver/envy24/envy24.c.ml2_cds.diff

before apply the patch apply:

http://envy24.svobodno.com/driver/envy24/envy24.c.spicds.diff

which fixes two bugs in envy24.c that i noticed accidentally - memory leak,
when "number of adcs" != "number of dacs" and multiple inicialization of the
first codec.

maybe Alexander will commit the envy24ht.c and spicds.c to the CVS and the
two patches above for envy24.c and after that ak452x.c is no needed and can
be removed from the CVS.

i will be away from computer for the next several weeks, but if someone test
the code, let me know the result ...


More information about the freebsd-multimedia mailing list