| Analog Joystick Support on ALSA Drivers | 
 | ======================================= | 
 |                           Oct. 14, 2003 | 
 |            Takashi Iwai <tiwai@suse.de> | 
 |  | 
 | General | 
 | ------- | 
 |  | 
 | First of all, you need to enable GAMEPORT support on Linux kernel for | 
 | using a joystick with the ALSA driver.  For the details of gameport | 
 | support, refer to Documentation/input/joystick.txt. | 
 |  | 
 | The joystick support of ALSA drivers is different between ISA and PCI | 
 | cards.  In the case of ISA (PnP) cards, it's usually handled by the | 
 | independent module (ns558).  Meanwhile, the ALSA PCI drivers have the | 
 | built-in gameport support.  Hence, when the ALSA PCI driver is built | 
 | in the kernel, CONFIG_GAMEPORT must be 'y', too.  Otherwise, the | 
 | gameport support on that card will be (silently) disabled. | 
 |  | 
 | Some adapter modules probe the physical connection of the device at | 
 | the load time.  It'd be safer to plug in the joystick device before | 
 | loading the module. | 
 |  | 
 |  | 
 | PCI Cards | 
 | --------- | 
 |  | 
 | For PCI cards, the joystick is enabled when the appropriate module | 
 | option is specified.  Some drivers don't need options, and the | 
 | joystick support is always enabled.  In the former ALSA version, there | 
 | was a dynamic control API for the joystick activation.  It was | 
 | changed, however, to the static module options because of the system | 
 | stability and the resource management. | 
 |  | 
 | The following PCI drivers support the joystick natively. | 
 |  | 
 |     Driver	Module Option	Available Values | 
 |     --------------------------------------------------------------------------- | 
 |     als4000	joystick_port	0 = disable (default), 1 = auto-detect, | 
 |                                 manual: any address (e.g. 0x200) | 
 |     au88x0	N/A		N/A | 
 |     azf3328	joystick	0 = disable, 1 = enable, -1 = auto (default) | 
 |     ens1370	joystick	0 = disable (default), 1 = enable | 
 |     ens1371	joystick_port	0 = disable (default), 1 = auto-detect, | 
 |                                 manual: 0x200, 0x208, 0x210, 0x218 | 
 |     cmipci	joystick_port	0 = disable (default), 1 = auto-detect, | 
 |                                 manual: any address (e.g. 0x200) | 
 |     cs4281	N/A		N/A | 
 |     cs46xx	N/A		N/A | 
 |     es1938	N/A		N/A | 
 |     es1968	joystick	0 = disable (default), 1 = enable | 
 |     sonicvibes	N/A		N/A | 
 |     trident	N/A		N/A | 
 |     via82xx(*1)	joystick	0 = disable (default), 1 = enable | 
 |     ymfpci	joystick_port	0 = disable (default), 1 = auto-detect, | 
 |                                 manual: 0x201, 0x202, 0x204, 0x205(*2) | 
 |     --------------------------------------------------------------------------- | 
 |  | 
 |     *1)  VIA686A/B only | 
 |     *2)  With YMF744/754 chips, the port address can be chosen arbitrarily | 
 |  | 
 | The following drivers don't support gameport natively, but there are | 
 | additional modules.  Load the corresponding module to add the gameport | 
 | support. | 
 |  | 
 |     Driver	Additional Module | 
 |     ----------------------------- | 
 |     emu10k1	emu10k1-gp | 
 |     fm801	fm801-gp | 
 |     ----------------------------- | 
 |  | 
 | Note: the "pcigame" and "cs461x" modules are for the OSS drivers only. | 
 |       These ALSA drivers (cs46xx, trident and au88x0) have the | 
 |       built-in gameport support. | 
 |  | 
 | As mentioned above, ALSA PCI drivers have the built-in gameport | 
 | support, so you don't have to load ns558 module.  Just load "joydev" | 
 | and the appropriate adapter module (e.g. "analog"). | 
 |  | 
 |  | 
 | ISA Cards | 
 | --------- | 
 |  | 
 | ALSA ISA drivers don't have the built-in gameport support. | 
 | Instead, you need to load "ns558" module in addition to "joydev" and | 
 | the adapter module (e.g. "analog"). |