Maestro
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:6k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. An OSS/Lite Driver for the ESS Maestro family of sound cards
  2. Zach Brown, December 1999
  3. Driver Status and Availability
  4. ------------------------------
  5. The most recent version of this driver will hopefully always be available at
  6. http://www.zabbo.net/maestro/
  7. I will try and maintain the most recent stable version of the driver
  8. in both the stable and development kernel lines.
  9. ESS Maestro Chip Family
  10. -----------------------
  11. There are 3 main variants of the ESS Maestro PCI sound chip.  The first
  12. is the Maestro 1.  It was originally produced by Platform Tech as the
  13. 'AGOGO'.  It can be recognized by Platform Tech's PCI ID 0x1285 with
  14. 0x0100 as the device ID.  It was put on some sound boards and a few laptops.  
  15. ESS bought the design and cleaned it up as the Maestro 2.  This starts
  16. their marking with the ESS vendor ID 0x125D and the 'year' device IDs.
  17. The Maestro 2 claims 0x1968 while the Maestro 2e has 0x1978.
  18. The various families of Maestro are mostly identical as far as this 
  19. driver is concerned.  It doesn't touch the DSP parts that differ (though
  20. it could for FM synthesis).
  21. Driver OSS Behavior
  22. --------------------
  23. This OSS driver exports /dev/mixer and /dev/dsp to applications, which
  24. mostly adhere to the OSS spec.   This driver doesn't register itself
  25. with /dev/sndstat, so don't expect information to appear there.
  26. The /dev/dsp device exported behaves almost as expected.  Playback is
  27. supported in all the various lovely formats.  8/16bit stereo/mono from
  28. 8khz to 48khz, and mmap()ing for playback behaves.  Capture/recording
  29. is limited due to oddities with the Maestro hardware.  One can only
  30. record in 16bit stereo.  For recording the maestro uses non interleaved
  31. stereo buffers so that mmap()ing the incoming data does not result in
  32. a ring buffer of LRLR data.  mmap()ing of the read buffers is therefore
  33. disallowed until this can be cleaned up.
  34. /dev/mixer is an interface to the AC'97 codec on the Maestro.  It is
  35. worth noting that there are a variety of AC'97s that can be wired to
  36. the Maestro.  Which is used is entirely up to the hardware implementor.
  37. This should only be visible to the user by the presence, or lack, of
  38. 'Bass' and 'Treble' sliders in the mixer.  Not all AC'97s have them.
  39. The driver doesn't support MIDI or FM playback at the moment.  Typically
  40. the Maestro is wired to an MPU MIDI chip, but some hardware implementations
  41. don't.  We need to assemble a white list of hardware implementations that
  42. have MIDI wired properly before we can claim to support it safely.
  43. Compiling and Installing
  44. ------------------------
  45. With the drivers inclusion into the kernel, compiling and installing
  46. is the same as most OSS/Lite modular sound drivers.  Compilation
  47. of the driver is enabled through the CONFIG_SOUND_MAESTRO variable
  48. in the config system.  
  49. It may be modular or statically linked.  If it is modular it should be
  50. installed with the rest of the modules for the kernel on the system.
  51. Typically this will be in /lib/modules/ somewhere.  'alias sound maestro'
  52. should also be added to your module configs (typically /etc/conf.modules)
  53. if you're using modular OSS/Lite sound and want to default to using a
  54. maestro chip.
  55. As this is a PCI device, the module does not need to be informed of
  56. any IO or IRQ resources it should use, it devines these from the
  57. system.  Sometimes, on sucky PCs, the BIOS fails to allocated resources
  58. for the maestro.  This will result in a message like:
  59. maestro: PCI subsystem reports IRQ 0, this might not be correct.
  60. from the kernel.  Should this happen the sound chip most likely will
  61. not operate correctly.  To solve this one has to dig through their BIOS
  62. (typically entered by hitting a hot key at boot time) and figure out
  63. what magic needs to happen so that the BIOS will reward the maestro with
  64. an IRQ.  This operation is incredibly system specific, so you're on your
  65. own.  Sometimes the magic lies in 'PNP Capable Operating System' settings.
  66. There are very few options to the driver.  One is 'debug' which will 
  67. tell the driver to print minimal debugging information as it runs.  This
  68. can be collected with 'dmesg' or through the klogd daemon.
  69. The other, more interesting option, is 'dsps_order'.  Typically at
  70. install time the driver will only register one available /dev/dsp device
  71. for its use.  The 'dsps_order' module parameter allows for more devices
  72. to be allocated, as a power of two.  Up to 4 devices can be registered
  73. ( dsps_order=2 ).  These devices act as fully distinct units and use
  74. separate channels in the maestro.
  75. Power Management
  76. ----------------
  77. As of version 0.14, this driver has a minimal understanding of PCI
  78. Power Management.  If it finds a valid power management capability
  79. on the PCI device it will attempt to use the power management
  80. functions of the maestro.  It will only do this on Maestro 2Es and
  81. only on machines that are known to function well.  You can
  82. force the use of power management by setting the 'use_pm' module
  83. option to 1, or can disable it entirely by setting it to 0.
  84. When using power management, the driver does a few things
  85. differently.  It will keep the chip in a lower power mode
  86. when the module is inserted but /dev/dsp is not open.  This
  87. allows the mixer to function but turns off the clocks
  88. on other parts of the chip.  When /dev/dsp is opened the chip
  89. is brought into full power mode, and brought back down
  90. when it is closed.  It also powers down the chip entirely
  91. when the module is removed or the machine is shutdown.  This
  92. can have nonobvious consequences.  CD audio may not work
  93. after a power managing driver is removed.  Also, software that
  94. doesn't understand power management may not be able to talk
  95. to the powered down chip until the machine goes through a hard
  96. reboot to bring it back.
  97. .. more details ..
  98. ------------------
  99. drivers/sound/maestro.c contains comments that hopefully explain
  100. the maestro implementation.