freebsd-dev/sys/i386/isa/snd/CARDS
Luigi Rizzo 2bd69c5d34 Bring in ad1816 patches from German Tischler.
Fix 'device not configured' problem that people were experiencing
when only PCI devices are present.
1999-01-04 10:40:14 +00:00

357 lines
12 KiB
Plaintext

In this file I will try to build a database of cards supported by
this driver. I also include the command to use for manual configuration
of the card in case your BIOS is not PnP-aware. Of course it is
your responsibility to pick up free port ranges and irq and drq
channels.
For PnP cards, I also include the vendor_id and serial numbers of
cards I have encountered. Underscores in the PnP id mean that
(I believe) there is a large variety of values in those positions,
and the code in the audio driver generally masks those bits.
Finally, where available, I have put the URL where you can find the
data sheets of the chip.
To my knowledge, there are the following families of audio cards:
* WSS (also called MSS) and clones:
these are true full duplex cards, have a very nice architecture and
are well documented. Chipsets implementing these functionalities
are made from Crystal, Analog Devices, Yamaha, OPTI.
* SB16 and clones:
these cards have a higly asymmetric architecture, and are not very
well suited to full duplex operation. Made by Creative, Realtek.
There is no documentation on the newer codecs (Vibra16X and ALS100+),
so they are not fully working.
* ESS
ESS builds cards that implement a superset of SB16. They are
often capable of full duplex, but my driver does not support them
other than in full duplex emulation. My fault, since documentation
on these cards _is_ available.
* PCI cards.
There are a quite few PCI audio cards around based on a number of
different chipsets. Some of them are documented (e.g. S3 Sonic
Vibes, Ensoniq ES1370), some are not (e.g. Yamaha YMF724),
work is in progress to support such cards. See the notes below.
Note that CreativeLabs has recently (fall'97) acquired Ensoniq
and the audio division of OPTI, both of which had a PCI audio
chipset. I don't know if there are other manufacturers of PCI
audio cards.
Finally, some people wrote patches for the following chips:
AD1816
MAD16
ESS
--------------------------
CHIPSET:
CS4235: PnP id 0x25__630e
CS4236: PnP id 0x36__630e 0x35__630e
CS4237: PnP id 0x37__630e
MANUFACTURER:
A/Open (or AcerOpen) AW32, AW35, AW37
Also, integrated on the motherboard on some machines.
DATA SHEETS:
http://www.crystal.com/ 4237full.pdf
PNP CONFIG:
pnp 1 0 os enable port0 0x534 port2 0x220 irq0 5 drq0 1 drq1 3
COMMENTS:
Work like a charm. All modes, including full duplex, supported in
MSS mode.
Cards based on the 4237, and possibly the 4236 as well, connect
the CD to AUX2. When used in MODE1/2 (as this driver does)
there is no route in the input mixer from AUX2 to the ADC. So,
to record directly from the CD, the only way is to set the
input to SOUND_MASK_IMIX.
Some machines with the cs4235 in non-pnp mode map the codec at 0x530
instead of 0x534. For those machines you need an unusual config line
device pcm0 at isa ? port 0x52C ...
--------------------------
CHIPSET:
CS4232: PnP id 0x3242630e
MANUFACTURER:
???
DATA SHEETS:
http://www.crystal.com/
PNP CONFIG:
pnp 1 0 os enable port0 0x534 port2 0x220 irq0 5 drq0 1 drq1 3
COMMENTS:
This chip is reported as broken in the OSS documentation. As a
matter of fact, on my Intel Zappa motherboard, I have problems in
make it use the secondary DMA channel. I have it working in
half duplex (both capture and playback) in SB3.2 emulation,
and working in playback mode in MSS emulation.
Also have reports from some user that it works ok.
--------------------------
CHIPSET:
AD1815/1816
MANUFACTURER:
Analog Devices
DOCUMENTATION:
http://www.analog.com
COMMENTS:
This is a chip for ISA-PnP cards, and so should be configured
using the PnP interface. For full function configure port2,
irq0, drq0 and drq1 of ldn0.
The driver is contributed by German Tischler
FORMATS:
ALAW/ULAW/8bit/16bit(le)/16bit(be),8kHz-55.2kHz,full duplex
--------------------------
CHIPSET:
OPTi931: PnP id 0x3109143e
OPTi933: PnP id 0x3109143e (yes, it's the same)
MANUFACTURER:
ExpertColor MED931 (europe)
Shuttle HOT-247 (uses the 933, $15 retail in the US)
DATA SHEETS:
http://www.opti.com/ opti931_21.pdf
PNP CONFIG:
pnp 1 1 os enable port0 0x534 port2 0x220 port3 0xe0d irq0 10 drq0 1 drq1 6
COMMENTS:
The data sheets of this chip are very cryptic and do not match
what the cards I have seem to do. I have it working
in WSS emulation, in full duplex and all modes.
In SB emulation mode the driver does not work yet (maybe I do
not initialize it the right way). It is not a major concern
anyways.
I am strongly convinced of a couple of bugs in the chip. I have
sent email to OPTI but got no reply so far. The bugs are:
- you cannot set both playback and capture format to use
a companded mode (ULAW, ALAW). If you do, the card will screw
up on the capture section.
The driver has a partial fix in software: when using ULAW, it
programs ULAW on the playback section, U8 on the capture, and
does a conversion in software (much like the SBPro). Of course
you lose 4-5 bits of dynamic range in the process.
- in full duplex (and single DMA mode), the card occasionally
misses interrupts, or generates spurious ones, or generates
interrupts before setting the status bits in the registers.
Spurious ints are not problematic since they can be easily
ignored, but missing interrupts are a nightmare to handle...
The only way to have this card work semi-reliably is to use
auto-dma mode (which is the default mode of operation in the
driver).
In any case, these cards are very cheap and widely available and
are a reasonable solution if you cannot find some other decent WSS
device.
-------------------------------
CHIPSET:
SB16: PnP id 0x__008c0e
Vibra16X: PnP id 0xf0008c0e
MANUFACTURER:
CreativeLabs
DATA SHEETS:
http://www.creative.com sbhwpg.pdf or SBHWPG.EXE
ftp://www.creaf.com/pub/creative/devinfo/ctsbhwpg.exe
PNP CONFIG:
pnp 1 0 os enable port0 0x220 irq0 5 drq0 1 drq1 5
COMMENTS:
SB16 really refers to a large number of different cards, starting
from the original, non-PnP SB16, to more modern cards (SB16PnP,
Vibra16C) and other including Wavetable Synthesis (AWE32, AWE64,
etc.). All these cards have different PnP ID. They have
different synthesis devices, which we do not support, so we
are not affected by these differences. Don't worry if the driver
identifies the card as a different SB16 than the one you have.
BEWARE -- all recent (1998 ?) SB16 use a new codec, Vibra16X,
which is sufficiently different from the old one to not work with
this driver in capture mode or in full duplex. Documentation is
not available from Creative. I suggest to stay away from these
cards (and from SB16 in general).
Full duplex support of this card is tricky since one channel can
work in 16-bit and the other in 8-bit mode. You will need to use
the new set of ioctl to use separate data formats on the two
channels (the vat driver does this). Of course, quality in 8-bit
is much lower than in 16-bit.
Full duplex operation is unsupported by Creative. It seems to
work, although on my Vibra16C the command to stop DMA transfer
seems to erroneously affect both channels instead of the one
they are issued for. The driver has a workaround, but I cannot
guarantee that it works for everybody. I have had several
positive reports.
Some docs on how to use this card with the voxware driver
are at http://multiverse.com/~rhh/awedrv
--------------------------
CHIPSET:
ALS100, ALS110, ...
Avance Asound 100: PnP id 0x01009305
MANUFACTURER:
Realtek (also Avance Asound and possibly other names)
DOCUMENTATION:
http://www.realtek.com.tw/cp/cp.html
but not very useful or detailed.
COMMENTS:
These card should be recognised as SB16 clones. Some of them
emulate the Vibra16X, so the comments above apply.
------------------------------
CHIPSET:
Yamaha SA2/SA3 . Both PnP and non-PnP versions.
OPL3-SA2 Sound Chip: PnP id 0x2000a865
OPL/SA3 : PnP id 0x3000a865
MANUFACTURER:
no-name cards, and also used in various laptops, e.g. Toshiba
Libretto and others. I
DATA SHEETS:
http://www.yamaha.com ? YM711.pdf
ftp://ftp.yamahayst.com/pub/Fax_Back_Doc/Sound
http://www.imail.net.tw/qtronix/qumax_product_yamaha.htm
This is a huge file containing a few pages scanned and converted
to pdf. Not very detailed. Luckily, this chipset appears to do a
good (i.e. bug-free) emulation of the WSS, so it is fully
supported by the driver.
pnp 1 0 os enable port0 0x220 port1 0x530 port2 0x388 port3 0x370 irq0 5 drq0 1 drq1 0
this card emulates a WSS or SB. Have reports that it works, although
it has incomplete mixer support (Yamaha defines an additional set
of registers to control some mixer functions, such as the master
output volume -- this is at 0x370 or 0x310). Currently we set
the master volume to 100% for the PnP card. Will put in code to do the
same for the non PnP card as soon as I find out how to tell
the Yamaha from other cards.
Driver reported to work also on
Toshiba DynaBook Portege 300CT with OPL3SA-3(non-PNP), and on the
Libretto50CT (has the non-PnP device).
------------------------
CHIPSET:
ENSONIQ SoundscapeVIVO ENS4081: PnP id 0x8140d315
MANUFACTURER:
Ensoniq Soundscape VIVO
PNP CONFIG:
pnp 1 0 os enable port0 0x220 port1 0x530 irq0 5 drq0 1 drq1 5
COMMENTS:
this card emulates a WSS or SB. Have reports that it works.
-------------------------
CHIPSET:
AMD...
MANUFACTURER:
GusPnP: PnP id 0x0100561e
PNP CONFIG:
pnp 1 0 os enable port0 0x220 port1 0x320 port2 0x32c irq0 5 drq0 7 drq1 5
COMMENTS:
It works in U8 and S16 mode, ulaw support still not working.
The Gus has been discontinued, so support for this card is only
there for historical reasons (the Gus used to be the only card
well supported in full duplex mode).
---- THE FOLLOWING CARDS ARE NOT FULLY SUPPORTED: ----
CHIPSET:
OPTI925: PnP id 0x2509143e
COMMENTS:
there is code to recognize it as a SB clone. I have reports that
it probes ok, but not sure if it works.
-------------------------
CHIPSET:
OPTI924: PnP
COMMENT:
I have this card but it is still unsupported.
-------------------------
CHIPSET:
OPTI930:
should work as an MSS clone, but support for it is not implemented
yet.
CHIPSET:
ESS1868
ESS688
http://www.esstech.com
pnp 1 1 os enable irq0 7 drq0 1 port0 0x220
There used to be documentation for the 1868 on the ESS site
(files ds1868b1.pdf and ds1868b2.pdf) but I am unable to find
it now (980122). I have asked ESS but no reply so far.
partly supported in SB emulation.
(the ESS688 is used on many notebooks. It is probably able to do 8
and 16-bit, half duplex).
-------------------------
CHIPSET:
es1370 (ensoniq)
es1371 (ensoniq)
used on SB64 PCI, Shuttle HOT-255, and maybe others
A driver for this is in the works.
see http://www.ensoniq.com/multimedia/semi_html/index.htm
for documentation. See also http://alsa.jcu.cz/alsa/ for a Linux
driver.
-------------------------
CHIPSET:
YMF724
used on various Yamaha (WaveForce) and other cards.
NOT SUPPORTED.
There is no public docs on this card, the closest thing being
http://www.imail.net.tw/qtronix/driver/qumax/yamaha/ds1e1110.pdf
http://www.imail.net.tw/qtronix/qumax_product_yamaha.htm
which however does not document how the card works in non-legacy
mode and how to make it talk to the AC97 codec.
--------------------------------------------------------------------