1 |
62 |
marcus.erl |
Analog Joystick Support on ALSA Drivers
|
2 |
|
|
=======================================
|
3 |
|
|
Oct. 14, 2003
|
4 |
|
|
Takashi Iwai
|
5 |
|
|
|
6 |
|
|
General
|
7 |
|
|
-------
|
8 |
|
|
|
9 |
|
|
First of all, you need to enable GAMEPORT support on Linux kernel for
|
10 |
|
|
using a joystick with the ALSA driver. For the details of gameport
|
11 |
|
|
support, refer to Documentation/input/joystick.txt.
|
12 |
|
|
|
13 |
|
|
The joystick support of ALSA drivers is different between ISA and PCI
|
14 |
|
|
cards. In the case of ISA (PnP) cards, it's usually handled by the
|
15 |
|
|
independent module (ns558). Meanwhile, the ALSA PCI drivers have the
|
16 |
|
|
built-in gameport support. Hence, when the ALSA PCI driver is built
|
17 |
|
|
in the kernel, CONFIG_GAMEPORT must be 'y', too. Otherwise, the
|
18 |
|
|
gameport support on that card will be (silently) disabled.
|
19 |
|
|
|
20 |
|
|
Some adapter modules probe the physical connection of the device at
|
21 |
|
|
the load time. It'd be safer to plug in the joystick device before
|
22 |
|
|
loading the module.
|
23 |
|
|
|
24 |
|
|
|
25 |
|
|
PCI Cards
|
26 |
|
|
---------
|
27 |
|
|
|
28 |
|
|
For PCI cards, the joystick is enabled when the appropriate module
|
29 |
|
|
option is specified. Some drivers don't need options, and the
|
30 |
|
|
joystick support is always enabled. In the former ALSA version, there
|
31 |
|
|
was a dynamic control API for the joystick activation. It was
|
32 |
|
|
changed, however, to the static module options because of the system
|
33 |
|
|
stability and the resource management.
|
34 |
|
|
|
35 |
|
|
The following PCI drivers support the joystick natively.
|
36 |
|
|
|
37 |
|
|
Driver Module Option Available Values
|
38 |
|
|
---------------------------------------------------------------------------
|
39 |
|
|
als4000 joystick_port 0 = disable (default), 1 = auto-detect,
|
40 |
|
|
manual: any address (e.g. 0x200)
|
41 |
|
|
au88x0 N/A N/A
|
42 |
|
|
azf3328 joystick 0 = disable, 1 = enable, -1 = auto (default)
|
43 |
|
|
ens1370 joystick 0 = disable (default), 1 = enable
|
44 |
|
|
ens1371 joystick_port 0 = disable (default), 1 = auto-detect,
|
45 |
|
|
manual: 0x200, 0x208, 0x210, 0x218
|
46 |
|
|
cmipci joystick_port 0 = disable (default), 1 = auto-detect,
|
47 |
|
|
manual: any address (e.g. 0x200)
|
48 |
|
|
cs4281 N/A N/A
|
49 |
|
|
cs46xx N/A N/A
|
50 |
|
|
es1938 N/A N/A
|
51 |
|
|
es1968 joystick 0 = disable (default), 1 = enable
|
52 |
|
|
sonicvibes N/A N/A
|
53 |
|
|
trident N/A N/A
|
54 |
|
|
via82xx(*1) joystick 0 = disable (default), 1 = enable
|
55 |
|
|
ymfpci joystick_port 0 = disable (default), 1 = auto-detect,
|
56 |
|
|
manual: 0x201, 0x202, 0x204, 0x205(*2)
|
57 |
|
|
---------------------------------------------------------------------------
|
58 |
|
|
|
59 |
|
|
*1) VIA686A/B only
|
60 |
|
|
*2) With YMF744/754 chips, the port address can be chosen arbitrarily
|
61 |
|
|
|
62 |
|
|
The following drivers don't support gameport natively, but there are
|
63 |
|
|
additional modules. Load the corresponding module to add the gameport
|
64 |
|
|
support.
|
65 |
|
|
|
66 |
|
|
Driver Additional Module
|
67 |
|
|
-----------------------------
|
68 |
|
|
emu10k1 emu10k1-gp
|
69 |
|
|
fm801 fm801-gp
|
70 |
|
|
-----------------------------
|
71 |
|
|
|
72 |
|
|
Note: the "pcigame" and "cs461x" modules are for the OSS drivers only.
|
73 |
|
|
These ALSA drivers (cs46xx, trident and au88x0) have the
|
74 |
|
|
built-in gameport support.
|
75 |
|
|
|
76 |
|
|
As mentioned above, ALSA PCI drivers have the built-in gameport
|
77 |
|
|
support, so you don't have to load ns558 module. Just load "joydev"
|
78 |
|
|
and the appropriate adapter module (e.g. "analog").
|
79 |
|
|
|
80 |
|
|
|
81 |
|
|
ISA Cards
|
82 |
|
|
---------
|
83 |
|
|
|
84 |
|
|
ALSA ISA drivers don't have the built-in gameport support.
|
85 |
|
|
Instead, you need to load "ns558" module in addition to "joydev" and
|
86 |
|
|
the adapter module (e.g. "analog").
|