snd_envy24(4) and snd_envy24ht(4) MFC

Konstantin Dimitrov kosio.dimitrov at gmail.com
Sat Jan 20 13:09:07 UTC 2007


maybe i should comment on the current status of the snd_envy24(4),
snd_envy24ht(4) and snd_spicds(4) too, but to be honest i don't know
from where exactly to start and where exactly to finish, because there
are so many aspects of that question, so the mail will probably be
very long, but hope it will contains valuable information for the
current status and the future of the envy24 drivers under FreeBSD.

in short i agree with all previous opinions - from user point of view
the behaviour of snd_envy24(4) and snd_envy24ht(4) (and snd_spicds(4))
is stable enough, however they are highly experimental drivers and
need serious cleaning up, but at this stage, that should be the last
concern. last, but not least, the lack of more people working on the
envy24 drivers, i'm still the only one who is working on them, is very
serious problem, that tremendously slows down the progress and i will
try to explain below why.

every Envy24-based card has unique hardware design, that is why adding
support for an Envy24-based card requires as first step, reverse
engineering the card hardware design and that step took huge part of
the time, that i have spend working on the envy24 drivers till now.
for example, for the last 3-4 months, i have spend the whole time,
that i can afford to work on the envy24 drivers, reverse engineering
ONKYO SE-90PCI board and before that reverse engineering of M-Audio
Audiophile 192 took about 2 months. it's so hard for several reasons,
but mainly because i haven't physical access to those boards, for
comparison - reverse engineering of a card, that i have physical
access to, usually takes only several days and in case the card use
Envy24 chip, without datasheet in the public domain, like SE-90PCI,
which is Envy24MT-based, and nothing is known about it, then the
things are even more complex.

however, the time, that i spend on reverse engineering boards with
unknown hardware design and/or based on Envy24 chip, without datasheet
in the public domain (in short Envy24-based cards, that are not
supported by ALSA), is far from being wasted, because the results from
that are very important -  knowledge about how Envy24MT works, support
for new, previously not supported in open-source Envy24-based cards:
M-Audio Audiophile 192 and ONKYO SE-90PCI (SE-90PCI is still running
only under FreeBSD, recently thanks to my documentation about
Audiophile 192 support under ALSA was added for that card), but most
significant result is that the Envy24HT (VT1724) code initially
intended for use with my Envy24HT-based card - "Terratec Aureon 7.1
Space" actually prove itself to work with all other VT172x chips:
Envy24PT (VT1720), Envy24MT (VT1720T), Envy24HT-S (VT1721), Envy24GT
(VT1722), Envy24DT (VT1723 aka Tremor) with minor or no Envy24-related
changes at all and that will affect the future of snd_envy24ht(4),
because now looks like more correct name is "snd_vt172x(4)". although,
maybe we will need new more flexible design for the driver to be able
to add support for all VT172x-based card at the same code, because of
their different designs, and maybe that will be "snd_vt172x(4)".

i'm very glad that Pyun is planning to work on the snd_envy24ht(4),
because he has more experience with and knowledge about driver
development under FreeBSD than me and that will add "fresh blood" to
the project.

currently i've done some work and code, that will allow to add support
for cards that use I2C-to-GPIO expanders wired between control line of
the codec and Envy24 chip and that work will affect mainly
snd_envy24(4). at the moment snd_envy24(4) supports only 3 cards and
after i found time to finish the rest of that work, we will have
support for all VT1712-based cards made by Terratec and M-Audio and
probably then snd_envy24(4) will support maybe about 10 cards.

snd_envy24ht(4) already has support for more than 10 cards, including
all cards made by Terratec and M-Audio, that are based on VT172x.
however, support for cards, that are made by the third major
manufacturer of Envy24-based cards -  ESI and their consumer division
Audiotrak is fell behind, because their cards are hard to find outside
Korea and Japan, which is sad, because IMHO they made the best
Envy24-based cards out there.

maybe if we ask Terratec, M-Audio and ESI/Audiotrak they will provide
hardware to FreeBSD project, but anyway i don't how to do that. any
ideas/experience in such direction?

maybe the next update to snd_envy24ht(4) will support: "Philips PSC724
Ultimate Edge", "Hercules Fortissimo4" and the very new "Audiotrak
Prodigy 7.1 HiFi",  they all are VT172x-based cards, that use
WM8766+WM8776 and share the same hardware design and now i know enough
about it.

also Pyun has access to ONKYO SE-150PCI, which has
WM8716+WM8766+WM8776 and i believe it has hardware design, which is
mixture between the designs used in ONKYO SE-90PCI and "Audiotrak
Prodigy 7.1 HiFi" and if i'm right the code for ONKYO SE-90PCI:
http://envy24.svobodno.com/driver/onkyo_se90/
will work with the WM8716 part of ONKYO SE-150PCI (RCA output of the
SE-150PCI), maybe Pyun will try the code and report the result. if
ONKYO SE-150PCI has the hardware design, that i'm expecting, it will
be the best card for development, because it will has codecs, that use
all possible control interfaces - SPI, I2C and "hardware".

i'm trying to keep all information, that i know here:
http://envy24.svobodno.com , including source code and documents, that
i wrote about different hardware designs, but it is far from being
full and up-to-date, because lack of spare time for that.

and the whole different stories are things for which there is still
nothing or almost nothing done like support for Digital Interface
Transceivers (DITs) used on Envy24-based cards, recording, full
support for VT1712 hardware mixer, sound routing, control utility for
control of all those things and their parameters, etc ... in other
words full support for only one Envy24-based audio card is really
serious task, not to mention for all of them, but at least looks like
soon we will have at least analog playback support for most of them.


More information about the freebsd-multimedia mailing list