freebsd-dev/sys/i386/isa/snd
John-Mark Gurney 60dc9be97b update of Luigi's sound drivers...
this updates to 971117 plus a small sb change that was after that release..
1997-11-23 07:03:21 +00:00
..
ad1848.c update of Luigi's sound drivers... 1997-11-23 07:03:21 +00:00
clones.c update of Luigi's sound drivers... 1997-11-23 07:03:21 +00:00
dmabuf.c update of Luigi's sound drivers... 1997-11-23 07:03:21 +00:00
mss.h This updates Luigi's sound code to the basic code in snd971023... 1997-10-31 12:24:28 +00:00
README This updates Luigi's sound code to the basic code in snd971023... 1997-10-31 12:24:28 +00:00
sb_dsp.c update of Luigi's sound drivers... 1997-11-23 07:03:21 +00:00
sbcard.h update of Luigi's sound drivers... 1997-11-23 07:03:21 +00:00
sound.c update of Luigi's sound drivers... 1997-11-23 07:03:21 +00:00
sound.h update of Luigi's sound drivers... 1997-11-23 07:03:21 +00:00
soundcard.h update of Luigi's sound drivers... 1997-11-23 07:03:21 +00:00
ulaw.h Import of Luigi Rizzo's sound code. For more information about the driver 1997-09-14 21:42:12 +00:00

	    --- A new  FreeBSD audio driver ---
	    by Luigi Rizzo (luigi@iet.unipi.it)


This is an experimental version of the audio driver for FreeBSD.
I have almost completely rewritten the main parts of the code,
starting from the Voxware 3.5-alpha release with patches from
Amancio Hasty. The only file which is largely similar to the original
ones is "soundcard.h" (for compatibility reasons, since it contains
the definition of all the ioctls).

Visit http://www.iet.unipi.it/~luigi/FreeBSD.html for the latest
information on the drivers.  There you can obtain the latest source
package that includes documentation on the design of the driver.


CARD SUPPORT INFORMATION:

For PnP cards, I also include the vendor_id and serial numbers of
cards I have encountered.

CS4236: PnP id 0x3642630e
CS4237: PnP id 0x3742630e

    works like a charm. All modes, including full duplex, supported in
    MSS mode.

CS4232: PnP id 0x3242630e

    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.

OPTi931: PnP id 0x3109143e

    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. Spurious ints are
      not problematic since they can be ignored, but missed ones are
      as you can imagine... This is fixed by auto-dma mode.

SB16 PnP: PnP id 0xXX008c0e

    There are many such cards (plain SB16 PnP, AWE32, AWE64, Vibra16,
    etc.) all differing in the 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.

    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 Vibra16 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.

Yamaha SA2

    this card emulates a WSS or SB. Have reports that it works, although
    it has mixer problems (maybe the driver has the wrong set of
    parameters).

Ensoniq Soundscape VIVO

    this card emulates a WSS or SB. Have reports that it works.

GusPnP: PnP id 0x0100561e

    I have code to recognize the board as MSS, but some initializations
    of the IW chip is still missing, so the card is not supported yet.
    I am working on this problem...

OPTI924: PnP

    I have this card but it is still unsupported.

OPTI925: PnP id 0x2509143e

    there is code to recognize it as a SB clone. I have reports that
    it probes ok, but not sure if it works.

OPTI930:

    should work as an MSS clone, but support for it is not implemented
    yet.

ESS1868

    this card is not supported yet. It might work in SB emulation but
    am not sure.

ESS688

    this card is used on many notebook. I don't have docs on this card
    so I cannot support it. Pointers to the data sheets are welcome.

PCI cards:

    some vendors have PCI cards. This code _cannot_ work on these
    cards as it is now, since they cannot obviously use the ISA DMA
    controller. As there are no data sheets available for these PCI
    cards, none of them is supported at the moment, although support
    should be easy as soon as I can put my hands on the data sheets
    and cards.