 1da177e4c3
			
		
	
	
	1da177e4c3
	
	
	
		
			
			Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
		
			
				
	
	
		
			92 lines
		
	
	
	
		
			3.7 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
	
		
			3.7 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
| 	An OSS/Lite Driver for the ESS Maestro3 family of sound chips
 | |
| 
 | |
| 			Zach Brown, January 2001
 | |
| 
 | |
| Driver Status and Availability
 | |
| ------------------------------
 | |
| 
 | |
| The most recent version of this driver will hopefully always be available at
 | |
| 	http://www.zabbo.net/maestro3/
 | |
| 
 | |
| I will try and maintain the most recent stable version of the driver
 | |
| in both the stable and development kernel lines.
 | |
| 
 | |
| Historically I've sucked pretty hard at actually doing that, however.
 | |
| 
 | |
| ESS Maestro3 Chip Family
 | |
| -----------------------
 | |
| 
 | |
| The 'Maestro3' is much like the Maestro2 chip.  The noted improvement
 | |
| is the removal of the silicon in the '2' that did PCM mixing.  All that
 | |
| work is now done through a custom DSP called the ASSP, the Asynchronus
 | |
| Specific Signal Processor.
 | |
| 
 | |
| The 'Allegro' is a baby version of the Maestro3.  I'm not entirely clear
 | |
| on the extent of the differences, but the driver supports them both :)
 | |
| 
 | |
| The 'Allegro' shows up as PCI ID 0x1988 and the Maestro3 as 0x1998,
 | |
| both under ESS's vendor ID of 0x125D.  The Maestro3 can also show up as
 | |
| 0x199a when hardware strapping is used.
 | |
| 
 | |
| The chip can also act as a multi function device.  The modem IDs follow
 | |
| the audio multimedia device IDs.  (so the modem part of an Allegro shows
 | |
| up as 0x1989)
 | |
| 
 | |
| Driver OSS Behavior
 | |
| --------------------
 | |
| 
 | |
| This OSS driver exports /dev/mixer and /dev/dsp to applications, which
 | |
| mostly adhere to the OSS spec.   This driver doesn't register itself
 | |
| with /dev/sndstat, so don't expect information to appear there.
 | |
| 
 | |
| The /dev/dsp device exported behaves as expected.  Playback is
 | |
| supported in all the various lovely formats.  8/16bit stereo/mono from
 | |
| 8khz to 48khz, with both read()/write(), and mmap().
 | |
| 
 | |
| /dev/mixer is an interface to the AC'97 codec on the Maestro3.  It is
 | |
| worth noting that there are a variety of AC'97s that can be wired to
 | |
| the Maestro3.  Which is used is entirely up to the hardware implementor.
 | |
| This should only be visible to the user by the presence, or lack, of
 | |
| 'Bass' and 'Treble' sliders in the mixer.  Not all AC'97s have them.
 | |
| The Allegro has an onchip AC'97.
 | |
| 
 | |
| The driver doesn't support MIDI or FM playback at the moment.
 | |
| 
 | |
| Compiling and Installing
 | |
| ------------------------
 | |
| 
 | |
| With the drivers inclusion into the kernel, compiling and installing
 | |
| is the same as most OSS/Lite modular sound drivers.  Compilation
 | |
| of the driver is enabled through the CONFIG_SOUND_MAESTRO3 variable
 | |
| in the config system.  
 | |
| 
 | |
| It may be modular or statically linked.  If it is modular it should be
 | |
| installed with the rest of the modules for the kernel on the system.
 | |
| Typically this will be in /lib/modules/ somewhere.  'alias sound-slot-0
 | |
| maestro3' should also be added to your module configs (typically
 | |
| /etc/modprobe.conf) if you're using modular OSS/Lite sound and want to
 | |
| default to using a maestro3 chip.
 | |
| 
 | |
| There are very few options to the driver.  One is 'debug' which will 
 | |
| tell the driver to print minimal debugging information as it runs.  This
 | |
| can be collected with 'dmesg' or through the klogd daemon.
 | |
| 
 | |
| One is 'external_amp', which tells the driver to attempt to enable
 | |
| an external amplifier.  This defaults to '1', you can tell the driver
 | |
| not to bother enabling such an amplifier by setting it to '0'.
 | |
| 
 | |
| And the last is 'gpio_pin', which tells the driver which GPIO pin number
 | |
| the external amp uses (0-15), The Allegro uses 8 by default, all others 1.
 | |
| If everything loads correctly and seems to be working but you get no sound, 
 | |
| try tweaking this value. 
 | |
| 
 | |
| Systems known to need a different value
 | |
|         Panasonic ToughBook CF-72: gpio_pin=13 
 | |
| 
 | |
| Power Management
 | |
| ----------------
 | |
| 
 | |
| This driver has a minimal understanding of PCI Power Management.  It will
 | |
| try and power down the chip when the system is suspended, and power
 | |
| it up with it is resumed.  It will also try and power down the chip
 | |
| when the machine is shut down.
 |