NM256
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:11k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. =======================================================
  2. Documentation for the NeoMagic 256AV/256ZX sound driver
  3. =======================================================
  4. You're looking at version 1.1 of the driver.  (Woohoo!) It has been
  5. successfully tested against the following laptop models:
  6. Sony Z505S/Z505SX/Z505DX/Z505RX
  7. Sony F150, F160, F180, F250, F270, F280, PCG-F26
  8. Dell Latitude CPi, CPt (various submodels)
  9. There are a few caveats, which is why you should read the entirety of
  10. this document first.
  11. This driver was developed without any support or assistance from
  12. NeoMagic.  There is no warranty, expressed, implied, or otherwise.  It
  13. is free software in the public domain; feel free to use it, sell it,
  14. give it to your best friends, even claim that you wrote it (but why?!)
  15. but don't go whining to me, NeoMagic, Sony, Dell, or anyone else
  16. when it blows up your computer.
  17. Version 1.1 contains a change to try and detect non-AC97 versions of
  18. the hardware, and not install itself appropriately.  It should also
  19. reinitialize the hardware on an APM resume event, assuming that APM
  20. was configured into your kernel.
  21. ============
  22. Installation
  23. ============
  24. Enable the sound drivers, the OSS sound drivers, and then the NM256
  25. driver.  The NM256 driver *must* be configured as a module (it won't
  26. give you any other choice).
  27. Next, do the usual "make modules" and "make modules_install".
  28. Finally, insmod the soundcore, sound and nm256 modules.
  29. When the nm256 driver module is loaded, you should see a couple of
  30. confirmation messages in the kernel logfile indicating that it found
  31. the device (the device does *not* use any I/O ports or DMA channels).
  32. Now try playing a wav file, futz with the CD-ROM if you have one, etc.
  33. The NM256 is entirely a PCI-based device, and all the necessary
  34. information is automatically obtained from the card.  It can only be
  35. configured as a module in a vain attempt to prevent people from
  36. hurting themselves.  It works correctly if it shares an IRQ with
  37. another device (it normally shares IRQ 9 with the builtin eepro100
  38. ethernet on the Sony Z505 laptops). 
  39. It does not run the card in any sort of compatibility mode. It will
  40. not work on laptops that have the SB16-compatible, AD1848-compatible
  41. or CS4232-compatible codec/mixer; you will want to use the appropriate
  42. compatible OSS driver with these chipsets.  I cannot provide any
  43. assistance with machines using the SB16, AD1848 or CS4232 compatible
  44. versions.  (The driver now attempts to detect the mixer version, and
  45. will refuse to load if it believes the hardware is not
  46. AC97-compatible.)
  47. The sound support is very basic, but it does include simultaneous
  48. playback and record capability.  The mixer support is also quite
  49. simple, although this is in keeping with the rather limited
  50. functionality of the chipset.
  51. There is no hardware synthesizer available, as the Losedows OPL-3 and
  52. MIDI support is done via hardware emulation.
  53. Only three recording devices are available on the Sony: the
  54. microphone, the CD-ROM input, and the volume device (which corresponds
  55. to the stereo output).  (Other devices may be available on other
  56. models of laptops.)  The Z505 series does not have a builtin CD-ROM,
  57. so of course the CD-ROM input doesn't work.  It does work on laptops
  58. with a builtin CD-ROM drive.
  59. The mixer device does not appear to have any tone controls, at least
  60. on the Z505 series.  The mixer module checks for tone controls in the
  61. AC97 mixer, and will enable them if they are available.
  62. ==============
  63. Known problems
  64. ==============
  65.   * There are known problems with PCMCIA cards and the eepro100 ethernet 
  66.     driver on the Z505S/Z505SX/Z505DX.  Keep reading.
  67.   * There are also potential problems with using a virtual X display, and
  68.     also problems loading the module after the X server has been started. 
  69.     Keep reading.
  70.   * The volume control isn't anywhere near linear.  Sorry.  This will be
  71.     fixed eventually, when I get sufficiently annoyed with it.  (I doubt
  72.     it will ever be fixed now, since I've never gotten sufficiently
  73.     annoyed with it and nobody else seems to care.)
  74.   * There are reports that the CD-ROM volume is very low.  Since I do not
  75.     have a CD-ROM equipped laptop, I cannot test this (it's kinda hard to
  76.     do remotely).
  77.   * Only 8 fixed-rate speeds are supported.  This is mainly a chipset
  78.     limitation.  It may be possible to support other speeds in the future.
  79.   * There is no support for the telephone mixer/codec.  There is support
  80.     for a phonein/phoneout device in the mixer driver;  whether or not 
  81.     it does anything is anyone's guess.  (Reports on this would be
  82.     appreciated.  You'll have to figure out how to get the phone to
  83.     go off-hook before it'll work, tho.)
  84.   * This driver was not written with any cooperation or support from
  85.     NeoMagic.  If you have any questions about this, see their website
  86.     for their official stance on supporting open source drivers.
  87. ============
  88. Video memory
  89. ============
  90. The NeoMagic sound engine uses a portion of the display memory to hold
  91. the sound buffer.  (Crazy, eh?)  The NeoMagic video BIOS sets up a
  92. special pointer at the top of video RAM to indicate where the top of
  93. the audio buffer should be placed.
  94. At the present time XFree86 is apparently not aware of this.  It will
  95. thus write over either the pointer or the sound buffer with abandon.
  96. (Accelerated-X seems to do a better job here.)
  97. This implies a few things:
  98.   * Sometimes the NM256 driver has to guess at where the buffer 
  99.     should be placed, especially if the module is loaded after the
  100.     X server is started.  It's usually correct, but it will consistently
  101.     fail on the Sony F250.
  102.   * Virtual screens greater than 1024x768x16 under XFree86 are
  103.     problematic on laptops with only 2.5MB of screen RAM. This
  104.     includes all of the 256AV-equipped laptops.  (Virtual displays
  105.     may or may not work on the 256ZX, which has at least 4MB of
  106.     video RAM.)
  107. If you start having problems with random noise being output either
  108. constantly (this is the usual symptom on the F250), or when windows
  109. are moved around (this is the usual symptom when using a virtual
  110. screen), the best fix is to
  111.   * Don't use a virtual frame buffer.
  112.   * Make sure you load the NM256 module before the X server is
  113.     started.
  114. On the F250, it is possible to force the driver to load properly even
  115. after the XFree86 server is started by doing:
  116. insmod nm256 buffertop=0x25a800
  117. This forces the audio buffers to the correct offset in screen RAM.
  118. One user has reported a similar problem on the Sony F270, although
  119. others apparently aren't seeing any problems.  His suggested command
  120. is
  121. insmod nm256 buffertop=0x272800
  122. =================
  123. Official WWW site
  124. =================
  125. The official site for the NM256 driver is:
  126. http://www.uglx.org/sony.html
  127. You should always be able to get the latest version of the driver there,
  128. and the driver will be supported for the foreseeable future.
  129. ==============
  130. Z505RX and IDE
  131. ==============
  132. There appears to be a problem with the IDE chipset on the Z505RX; one
  133. of the symptoms is that sound playback periodically hangs (when the
  134. disk is accessed).  The user reporting the problem also reported that
  135. enabling all of the IDE chipset workarounds in the kernel solved the
  136. problem, tho obviously only one of them should be needed--if someone
  137. can give me more details I would appreciate it.
  138. ==============================
  139. Z505S/Z505SX on-board Ethernet
  140. ==============================
  141. If you're using the on-board Ethernet Pro/100 ethernet support on the Z505
  142. series, I strongly encourage you to download the latest eepro100 driver from
  143. Donald Becker's site:
  144. ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/test/eepro100.c
  145. There was a reported problem on the Z505SX that if the ethernet
  146. interface is disabled and reenabled while the sound driver is loaded,
  147. the machine would lock up.  I have included a workaround that is
  148. working satisfactorily.  However, you may occasionally see a message
  149. about "Releasing interrupts, over 1000 bad interrupts" which indicates
  150. that the workaround is doing its job.
  151. ==================================
  152. PCMCIA and the Z505S/Z505SX/Z505DX
  153. ==================================
  154. There is also a known problem with the Sony Z505S and Z505SX hanging
  155. if a PCMCIA card is inserted while the ethernet driver is loaded, or
  156. in some cases if the laptop is suspended.  This is caused by tons of
  157. spurious IRQ 9s, probably generated from the PCMCIA or ACPI bridges.
  158. There is currently no fix for the problem that works in every case.
  159. The only known workarounds are to disable the ethernet interface
  160. before inserting or removing a PCMCIA card, or with some cards
  161. disabling the PCMCIA card before ejecting it will also help the
  162. problem with the laptop hanging when the card is ejected.
  163. One user has reported that setting the tcic's cs_irq to some value
  164. other than 9 (like 11) fixed the problem.  This doesn't work on my
  165. Z505S, however--changing the value causes the cardmgr to stop seeing
  166. card insertions and removals, cards don't seem to work correctly, and
  167. I still get hangs if a card is inserted when the kernel is booted.
  168. Using the latest ethernet driver and pcmcia package allows me to
  169. insert an Adaptec 1480A SlimScsi card without the laptop hanging,
  170. although I still have to shut down the card before ejecting or
  171. powering down the laptop.  However, similar experiments with a DE-660
  172. ethernet card still result in hangs when the card is inserted.  I am
  173. beginning to think that the interrupts are CardBus-related, since the
  174. Adaptec card is a CardBus card, and the DE-660 is not; however, I
  175. don't have any other CardBus cards to test with.
  176. ======
  177. Thanks
  178. ======
  179. First, I want to thank everyone (except NeoMagic of course) for their
  180. generous support and encouragement.  I'd like to list everyone's name
  181. here that replied during the development phase, but the list is
  182. amazingly long.
  183. I will be rather unfair and single out a few people, however:
  184. Justin Maurer, for being the first random net.person to try it,
  185. and for letting me login to his Z505SX to get it working there
  186. Edi Weitz for trying out several different versions, and giving
  187. me a lot of useful feedback
  188. Greg Rumple for letting me login remotely to get the driver 
  189. functional on the 256ZX, for his assistance on tracking
  190. down all sorts of random stuff, and for trying out Accel-X
  191. Zach Brown, for the initial AC97 mixer interface design
  192. Jeff Garzik, for various helpful suggestions on the AC97
  193. interface
  194. "Mr. Bumpy" for feedback on the Z505RX
  195. Bill Nottingham, for generous assistance in getting the mixer ID
  196. code working
  197. =================
  198. Previous versions
  199. =================
  200. Versions prior to 0.3 (aka `noname') had problems with weird artifacts
  201. in the output and failed to set the recording rate properly.  These
  202. problems have long since been fixed.
  203. Versions prior to 0.5 had problems with clicks in the output when
  204. anything other than 16-bit stereo sound was being played, and also had
  205. periodic clicks when recording.
  206. Version 0.7 first incorporated support for the NM256ZX chipset, which
  207. is found on some Dell Latitude laptops (the CPt, and apparently
  208. some CPi models as well).  It also included the generic AC97
  209. mixer module.
  210. Version 0.75 renamed all the functions and files with slightly more
  211. generic names.
  212. Note that previous versions of this document claimed that recording was
  213. 8-bit only; it actually has been working for 16-bits all along.