* better
[mascara-docs.git] / i386 / linux-2.3.21 / Documentation / sound / NM256
blobedff4c1b483824b5b4195d81cca8ed3c1a0d4138
1 =======================================================
2 Documentation for the NeoMagic 256AV/256ZX sound driver
3 =======================================================
5 You're looking at version 1.0 of the driver.  (Woohoo!) It has been
6 successfully tested against the following laptop models:
8         Sony Z505S/Z505SX/Z505DX
9         Sony F150, F160, F180, F250, F270, F280, PCG-F26
10         Dell Latitude CPi, CPt (various submodels)
12 There are a few caveats, which is why you should read the entirety of
13 this document first.
15 This driver was developed without any support or assistance from
16 NeoMagic.  There is no warranty, expressed, implied, or otherwise.  It
17 is free software in the public domain; feel free to use it, sell it,
18 give it to your best friends, even claim that you wrote it (but why?!)
19 but don't come whining to me, NeoMagic, Sony, Dell, or anyone else
20 when it blows up your computer.
22 ============
23 Installation
24 ============
26 Enable the sound drivers, the OSS sound drivers, and then the NM256
27 driver.  The NM256 driver *must* be configured as a module (it won't
28 give you any other choice).
30 Next, do the usual "make modules" and "make modules_install".
31 Finally, insmod the soundcore, sound and nm256 modules.
33 When the nm256 driver module is loaded, you should see a couple of
34 confirmation messages in the kernel logfile indicating that it found
35 the device (the device does *not* use any I/O ports or DMA channels).
36 Now try playing a wav file, futz with the CD-ROM if you have one, etc.
38 The NM256 is entirely a PCI-based device, and all the necessary
39 information is automatically obtained from the card.  It can only be
40 configured as a module in a vain attempt to prevent people from
41 hurting themselves.  It works correctly if it shares an IRQ with
42 another device (it normally shares IRQ 9 with the builtin eepro100
43 ethernet on the Sony Z505 laptops). 
45 It does not run the card in any sort of compatibility mode. Thus it
46 almost certainly will not work on laptops that have the
47 SB16-compatible codec/mixer; you will want to use the standard SB16
48 OSS driver with these chipsets.  I cannot provide any assistance with
49 machines using the SB-16 compatible version.
51 The sound support is very basic, but it does include simultaneous
52 playback and record capability.  The mixer support is also quite
53 simple, although this is in keeping with the rather limited
54 functionality of the chipset.  
56 There is no hardware synthesizer available, as the Losedows OPL-3 and
57 MIDI support is done via hardware emulation.
59 Only three recording devices are available on the Sony: the
60 microphone, the CD-ROM input, and the volume device (which corresponds
61 to the stereo output).  (Other devices may be available on other
62 models of laptops.)  The Z505 series does not have a builtin CD-ROM,
63 so of course the CD-ROM input doesn't work.  It does work on laptops
64 with a builtin CD-ROM drive.
66 Recording is mono 8-bit only.
68 The mixer device does not appear to have any tone controls, at least
69 on the Z505 series.  The mixer module checks for tone controls in the
70 AC97 mixer, and will enable them if they are available.
72 ==============
73 Known problems
74 ==============
76   * There are known problems with PCMCIA cards and the eepro100 ethernet 
77     driver on the Z505S/Z505SX/Z505DX.  Keep reading.
79   * There are also potential problems with using a virtual X display, and
80     also problems loading the module after the X server has been started. 
81     Keep reading.
83   * The volume control isn't anywhere near linear.  Sorry.  This will be
84     fixed eventually, when I get sufficiently annoyed with it.  (I doubt
85     it will ever be fixed now, since I've never gotten sufficiently
86     annoyed with it and nobody else seems to care.)
88   * There are reports that the CD-ROM volume is very low.  Since I do not
89     have a CD-ROM equipped laptop, I cannot test this (it's kinda hard to
90     do remotely).
92   * Only 8 fixed-rate speeds are supported.  This is mainly a chipset
93     limitation.  It may be possible to support other speeds in the future.
95   * There is no support for the telephone mixer/codec.  There is support
96     for a phonein/phoneout device if your mixer program supports it;
97     whether or not it does anything is anyone's guess.  (Reports on this
98     would be appreciated.)
99   
100   * This driver was not written with any cooperation or support from
101     NeoMagic.  If you have any questions about this, see their website
102     for their official stance on supporting open source drivers.
104 ============
105 Video memory
106 ============
108 The NeoMagic sound engine uses a portion of the display memory to hold
109 the sound buffer.  (Crazy, eh?)  The NeoMagic video BIOS sets up a
110 special pointer at the top of video RAM to indicate where the top of
111 the audio buffer should be placed.
113 At the present time XFree86 is apparently not aware of this.  It will
114 thus write over either the pointer or the sound buffer with abandon.
115 (Accelerated-X seems to do a better job here.)
117 This implies a few things:
119   * Sometimes the NM256 driver has to guess at where the buffer 
120     should be placed, especially if the module is loaded after the
121     X server is started.  It's usually correct, but it will fail on
122     the Sony F250.
124   * Virtual screens greater than 1024x768x16 under XFree86 are
125     problematic on laptops with only 2.5MB of screen RAM. This
126     includes all of the 256AV-equipped laptops.  (Virtual displays
127     may or may not work on the 256ZX, which has at least 4MB of
128     video RAM.)
130 If you start having problems with random noise being output either
131 constantly (this is the usual symptom on the F250), or when windows
132 are moved around (this is the usual symptom when using a virtual
133 screen), the best fix is to
135   * Don't use a virtual frame buffer.
136   * Make sure you load the NM256 module before the X server is
137     started.
139 On the F250, it is possible to force the driver to load properly even
140 after the XFree86 server is started by doing:
142         insmod nm256.o buffertop=0x25a800
144 This forces the audio buffers to the correct offset in screen RAM.
146 =================
147 Official WWW site
148 =================
150 The official site for the NM256 driver is:
152         http://www.uglx.org/sony.html
154 You should always be able to get the latest version of the driver there,
155 and the driver will be supported for the foreseeable future.
157 ==============================
158 Z505S/Z505SX on-board Ethernet
159 ==============================
161 If you're using the on-board Ethernet Pro/100 ethernet support on the Z505
162 series, I strongly encourage you to download the latest eepro100 driver from
163 Donald Becker's site:
165         ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/test/eepro100.c
167 There was a reported problem on the Z505SX that if the ethernet
168 interface is disabled and reenabled while the sound driver is loaded,
169 the machine would lock up.  I have included a workaround that is
170 working satisfactorily.  However, you may occasionally see a message
171 about "Releasing interrupts, over 1000 bad interrupts" which indicates
172 that the workaround is doing its job.
174 ==================================
175 PCMCIA and the Z505S/Z505SX/Z505DX
176 ==================================
178 There is also a known problem with the Sony Z505S and Z505SX hanging
179 if a PCMCIA card is inserted while the ethernet driver is loaded.
180 This is caused by tons of spurious IRQ 9s, probably generated from the
181 PCMCIA or ACPI bridges.  There is currently no fix for the problem,
182 and the only known workaround is to disable the ethernet interface
183 before inserting or removing a PCMCIA card.
185 ======
186 Thanks
187 ======
189 First, I want to thank everyone (except NeoMagic of course) for their
190 generous support and encouragement.  I'd like to list everyone's name
191 here that replied during the development phase, but the list is
192 amazingly long.
194 I will be rather unfair and single out a few people, however:
196         Justin Maurer, for being the first random net.person to try it,
197         and for letting me login to his Z505SX to get it working there
199         Edi Weitz for trying out several different versions, and giving
200         me a lot of useful feedback
202         Greg Rumple for letting me login remotely to get the driver 
203         functional on the 256ZX, for his assistance on tracking
204         down all sorts of random stuff, and for trying out Accel-X
206         Zach Brown, for the initial AC97 mixer interface design
208         Jeff Garzik, for various helpful suggestions on the AC97
209         interface
211 =================
212 Previous versions
213 =================
215 Versions prior to 0.3 (aka `noname') had problems with weird artifacts
216 in the output and failed to set the recording rate properly.  These
217 problems have long since been fixed.
219 Versions prior to 0.5 had problems with clicks in the output when
220 anything other than 16-bit stereo sound was being played, and also had
221 periodic clicks when recording.
223 Version 0.7 first incorporated support for the NM256ZX chipset, which
224 is found on some Dell Latitude laptops (the CPt, and apparently
225 some CPi models as well).  It also included the generic AC97
226 mixer module.
228 Version 0.75 renamed all the functions and files with slightly more
229 generic names.