~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/Documentation/sound/OPL3-SA2

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 Documentation for the OPL3-SA2, SA3, and SAx driver (opl3sa2.o)
  2 ---------------------------------------------------------------
  3 
  4 Scott Murray, scott@spiteful.org
  5 January 5, 1999
  6 
  7 NOTE: All trade-marked terms mentioned below are properties of their
  8       respective owners.
  9 
 10 This driver is for PnP soundcards based on the following Yamaha audio
 11 controller chipsets:
 12 
 13 YMF711 aka OPL3-SA2
 14 YMF715 aka OPL3-SA3
 15 YMF719 aka OPL3-SAx (?)
 16 
 17 I'm a little fuzzy on what exactly is classified a SAx, as I've seen
 18 the label used to refer to the whole 7xx family and as a specific
 19 identifier for the 719 on my no-name soundcard.  To make matters
 20 worse, there seem to be several revisions of the 715 chipset.
 21 
 22 Anyways, all of these chipsets implement the following devices:
 23 
 24 OPL3 FM synthesizer
 25 Soundblaster Pro
 26 Microsoft/Windows Sound System
 27 MPU401 MIDI interface
 28 
 29 Note that this driver uses the MSS device, and to my knowledge these
 30 chipsets enforce an either/or situation with the Soundblaster Pro
 31 device and the MSS device.  Since the MSS device has better
 32 capabilities, I have implemented the driver to use it.
 33 
 34 Being PnP cards, some configuration is required.  There are two ways
 35 of doing this.  The most common is to use the isapnptools package to
 36 initialize the card, and use the kernel module form of the sound
 37 subsystem and sound drivers.  Alternatively, some BIOS's allow manual
 38 configuration of installed PnP devices in a BIOS menu, which should
 39 allow using the non-modular sound drivers, i.e. built into the kernel.
 40 
 41 I personally use isapnp and modules, and do not have access to a PnP
 42 BIOS machine to test.  If you have such a beast, try building both the
 43 MSS driver and this driver into the kernel (appropriately configured,
 44 of course).  I have received reports of this working, so it should be
 45 possible for most people with PnP BIOS.  If it does not work for you,
 46 then email me if you are willing to experiment in an effort to make it
 47 work.
 48 
 49 ************************************************************************
 50 * I have now had two such machines, and I have fixed this to work
 51 * properly when built into the kernel.  The Toshiba Libretto series, or
 52 * at least models 70CT and 110CT which I have owned, use a Yamaha
 53 * OPL3-SAx (OPL3-SA3 according to documentation) sound chip, IRQ 5,
 54 * IO addresses 220/530/388/330/370 and DMA 1,0 (_not_ 0,1).  All these
 55 * configuration settings can be gathered by booting another OS which
 56 * recognizes the card already.
 57 *
 58 * I have made things 'just work' for the non-modular case on such
 59 * machines when configured properly.
 60 *
 61 * David Luyer <luyer@ucs.uwa.edu.au>
 62 ************************************************************************
 63 
 64 If you are using isapnp, follow the directions in its documentation to
 65 produce a configuration file.  Here is the relevant excerpt I use for
 66 my SAx card from my isapnp.conf:
 67 
 68 (CONFIGURE YMH0800/-1 (LD 0
 69 
 70 # Instead of (IO 0 (BASE 0x0220)), disable SB:
 71 (IO 0 (BASE 0x0000))
 72 (IO 1 (BASE 0x0530))
 73 (IO 2 (BASE 0x0388))
 74 (IO 3 (BASE 0x0330))
 75 (IO 4 (BASE 0x0370))
 76 (INT 0 (IRQ 7 (MODE +E)))
 77 (DMA 0 (CHANNEL 0))
 78 (DMA 1 (CHANNEL 3))
 79 
 80 Here, note that:
 81 
 82 Port  Acceptable Range  Purpose
 83 ----  ----------------  -------
 84 IO 0  0x0220 - 0x0280   SB base address, I set to 0 just to be safe.
 85 IO 1  0x0530 - 0x0F48   MSS base address
 86 IO 2  0x0388 - 0x03F8   OPL3 base address
 87 IO 3  0x0300 - 0x0334   MPU base address
 88 IO 4  0x0100 - 0x0FFE   card's own base address for its control I/O ports
 89 
 90 The IRQ and DMA values can be any that considered acceptable for a
 91 MSS.  Assuming you've got isapnp all happy, then you should be able to
 92 do something like the following (which matches up with the isapnp
 93 configuration above):
 94 
 95 insmod mpu401
 96 insmod ad1848
 97 insmod opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=7 dma=0 dma2=3
 98 insmod opl3 io=0x388
 99 
100 Remember that the opl3sa2 module's io argument is for it's own control
101 port, which handles the card's master mixer for volume (on all cards),
102 and bass and treble (on SA3 and SAx cards).
103 
104 If all goes well and you see no error messages, you should be able to
105 start using the sound capabilities of your system.  If you get an
106 error message while trying to insert the opl3sa2 module, then make
107 sure that the values of the various arguments match what you specified
108 in your isapnp configuration file, and that there is no conflict with
109 another device for an I/O port or interrupt.  Checking the contents of
110 /proc/ioports and /proc/interrupts can be useful to see if you're
111 butting heads with another device.
112 
113 If you still cannot get the module to load, look at the contents of
114 your system log file, usually /var/log/messages.  If you see the
115 message "Unknown Yamaha audio controller version", then you have a
116 different chipset than I've encountered so far.  Look for a line in
117 the log file that says "opl3sa2.c: chipset version = <some number>".
118 If you want me to add support for your card, send me the number from
119 this line and any information you have on the make and chipset of your
120 sound card, and I should be able to work up a permanent fix.
121 
122 If you do not see the chipset version message, and none of the other
123 messages present in the system log are helpful, email me some details
124 and I'll try my best to help.
125 
126 Lastly, if you're using modules and want to set up automatic module
127 loading with kmod, the kernel module loader, here is the section I
128 currently use in my modules.conf file:
129 
130 # Sound
131 alias char-major-14 opl3sa2
132 pre-install opl3sa2 modprobe "-k" "ad1848"
133 post-install opl3sa2 modprobe "-k" "opl3"
134 options opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=7 dma=0 dma2=3
135 options opl3 io=0x388
136 
137 That's all it currently takes to get an OPL3-SAx card working on my
138 system.  Once again, if you have any other problems, email me at the
139 address listed above.
140 
141 Scott

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.