1 An OSS/Lite Driver for the ESS Maestro3 family of sound chips 2 3 Zach Brown, January 2001 4 5Driver Status and Availability 6------------------------------ 7 8The most recent version of this driver will hopefully always be available at 9 http://www.zabbo.net/maestro3/ 10 11I will try and maintain the most recent stable version of the driver 12in both the stable and development kernel lines. 13 14Historically I've sucked pretty hard at actually doing that, however. 15 16ESS Maestro3 Chip Family 17----------------------- 18 19The 'Maestro3' is much like the Maestro2 chip. The noted improvement 20is the removal of the silicon in the '2' that did PCM mixing. All that 21work is now done through a custom DSP called the ASSP, the Asynchronus 22Specific Signal Processor. 23 24The 'Allegro' is a baby version of the Maestro3. I'm not entirely clear 25on the extent of the differences, but the driver supports them both :) 26 27The 'Allegro' shows up as PCI ID 0x1988 and the Maestro3 as 0x1998, 28both under ESS's vendor ID of 0x125D. The Maestro3 can also show up as 290x199a when hardware strapping is used. 30 31The chip can also act as a multi function device. The modem IDs follow 32the audio multimedia device IDs. (so the modem part of an Allegro shows 33up as 0x1989) 34 35Driver OSS Behavior 36-------------------- 37 38This OSS driver exports /dev/mixer and /dev/dsp to applications, which 39mostly adhere to the OSS spec. This driver doesn't register itself 40with /dev/sndstat, so don't expect information to appear there. 41 42The /dev/dsp device exported behaves as expected. Playback is 43supported in all the various lovely formats. 8/16bit stereo/mono from 448khz to 48khz, with both read()/write(), and mmap(). 45 46/dev/mixer is an interface to the AC'97 codec on the Maestro3. It is 47worth noting that there are a variety of AC'97s that can be wired to 48the Maestro3. Which is used is entirely up to the hardware implementor. 49This should only be visible to the user by the presence, or lack, of 50'Bass' and 'Treble' sliders in the mixer. Not all AC'97s have them. 51The Allegro has an onchip AC'97. 52 53The driver doesn't support MIDI or FM playback at the moment. 54 55Compiling and Installing 56------------------------ 57 58With the drivers inclusion into the kernel, compiling and installing 59is the same as most OSS/Lite modular sound drivers. Compilation 60of the driver is enabled through the CONFIG_SOUND_MAESTRO3 variable 61in the config system. 62 63It may be modular or statically linked. If it is modular it should be 64installed with the rest of the modules for the kernel on the system. 65Typically this will be in /lib/modules/ somewhere. 'alias sound-slot-0 66maestro3' should also be added to your module configs (typically 67/etc/modules.conf) if you're using modular OSS/Lite sound and want to 68default to using a maestro3 chip. 69 70There are very few options to the driver. One is 'debug' which will 71tell the driver to print minimal debugging information as it runs. This 72can be collected with 'dmesg' or through the klogd daemon. 73 74One is 'external_amp', which tells the driver to attempt to enable 75an external amplifier. This defaults to '1', you can tell the driver 76not to bother enabling such an amplifier by setting it to '0'. 77 78And the last is 'gpio_pin', which tells the driver which GPIO pin number 79the external amp uses (0-15), The Allegro uses 8 by default, all others 1. 80If everything loads correctly and seems to be working but you get no sound, 81try tweaking this value. 82 83Systems known to need a different value 84 Panasonic ToughBook CF-72: gpio_pin=13 85 86Power Management 87---------------- 88 89This driver has a minimal understanding of PCI Power Management. It will 90try and power down the chip when the system is suspended, and power 91it up with it is resumed. It will also try and power down the chip 92when the machine is shut down. 93