fe854067c7
add support for Vibra16X, OPTi925, and bring in several assorted fixes to the code and documentation. Also present here are apm hooks so that laptops can properly reconfigure the hardware after suspend (tested on the Libretto50). Reviewed by: jordan
257 lines
8.7 KiB
Plaintext
257 lines
8.7 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 prot 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 there is
|
|
a large variety of values in those positions.
|
|
|
|
Finally, where available, I have put the URL where you can find the
|
|
data sheets of the chip.
|
|
|
|
|
|
CS4236B: PnP id 0x35__630e
|
|
CS4236: PnP id 0x36__630e
|
|
CS4237: PnP id 0x37__630e
|
|
|
|
http://www.crystal.com/ 4237full.pdf
|
|
|
|
pnp 1 0 os enable port0 0x534 port2 0x220 irq0 5 drq0 1 drq1 3
|
|
|
|
work like a charm. All modes, including full duplex, supported in
|
|
MSS mode.
|
|
|
|
NOTE: 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.
|
|
|
|
CS4232: PnP id 0x3242630e
|
|
|
|
pnp 1 0 os enable port0 0x534 port2 0x220 irq0 5 drq0 1 drq1 3
|
|
|
|
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:
|
|
OPTi931: PnP id 0x3109143e
|
|
|
|
MANUFACTURER:
|
|
ExpertColor MED931 (europe)
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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:
|
|
various PCI cards from Ensoniq, OPTI, CreativeLabs.
|
|
|
|
This code _cannot_ work on these cards as it is now, since I
|
|
don't think they can use the ISA DMA controller. As there are
|
|
no data sheets available for these PCI cards, none of them is
|
|
supported at the moment.
|
|
|
|
--------------------------------------------------------------------
|