* [PATCH 0/9] New set of input patches
@ 2004-02-29 6:53 Dmitry Torokhov
2004-02-29 6:55 ` [PATCH 1/9] atkbd whitespace fixes Dmitry Torokhov
2004-03-02 13:02 ` [PATCH 0/9] New set of input patches Vojtech Pavlik
0 siblings, 2 replies; 16+ messages in thread
From: Dmitry Torokhov @ 2004-02-29 6:53 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
Hi Vojtech,
Here is the new set of input patches that I have. You have seen some of
them, buit this time they are rediffed against 2.6.4-rc1 and in nice order.
01-atkbd-whitespace-fixes.patch
simple whitespace fixes
02-atkbd-bad-merge.patch
clean up bad merge in atkbd module (get rid of MODULE_PARMs,
atkbd_softrepeat was declared twice)
03-synaptics-relaxed-proto.patch
some hardware (PowerBook) require relaxed Synaptics protocol checks,
but relaxed checks hurt hardware implementing proper protocol when
device looses sync. With the patch synaptics driver analyzes first
full data packet and either staus in relaxed mode or switches into
strict mode.
04-psmouse-whitespace-fixes.patch
simple whitespace fixes
05-psmouse-workaround-noack.patch
some mice do not ACK "disable streaming mode" command causing psmouse
driver abort initialization without any indication to the user. This
is a regression compared to 2.4. Have kernel complain but continue
with prbing hardware (after all we got valid responce from GET ID
command).
06-module-param-array-named.patch
introduce module_param_array_named() modeled after module_param_named
that allows mapping array module option to
07-joystick-module-param.patch
complete moving input drivers to the new way of handling module
parameters using module_param()
08-obsolete-setup.patch
introduce __obsolete_setup(). This is a drop-in replacement for
__setup() for truly obsolete options. Kernel will complain when sees
such an option.
09-input-obsolete-setup.patch
document removed or renamed options in input drivers using
__obsolete_setup() so users will have some clue why old options
stopped having any effect.
--
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/9] atkbd whitespace fixes
2004-02-29 6:53 [PATCH 0/9] New set of input patches Dmitry Torokhov
@ 2004-02-29 6:55 ` Dmitry Torokhov
2004-02-29 6:55 ` [PATCH 2/9] atkbd bad merge Dmitry Torokhov
2004-03-02 13:02 ` [PATCH 0/9] New set of input patches Vojtech Pavlik
1 sibling, 1 reply; 16+ messages in thread
From: Dmitry Torokhov @ 2004-02-29 6:55 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
===================================================================
ChangeSet@1.1685, 2004-02-27 23:41:11-05:00, dtor_core@ameritech.net
Atkbd: whitespace fixes
atkbd.c | 20 ++++++++++----------
1 files changed, 10 insertions(+), 10 deletions(-)
===================================================================
diff -Nru a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
--- a/drivers/input/keyboard/atkbd.c Sun Feb 29 01:14:59 2004
+++ b/drivers/input/keyboard/atkbd.c Sun Feb 29 01:14:59 2004
@@ -202,7 +202,7 @@
atkbd->resend = 1;
goto out;
}
-
+
if (!flags && data == ATKBD_RET_ACK)
atkbd->resend = 0;
#endif
@@ -276,7 +276,7 @@
case ATKBD_KEY_UNKNOWN:
printk(KERN_WARNING "atkbd.c: Unknown key %s (%s set %d, code %#x on %s).\n",
atkbd->release ? "released" : "pressed",
- atkbd->translated ? "translated" : "raw",
+ atkbd->translated ? "translated" : "raw",
atkbd->set, code, serio->phys);
if (atkbd->translated && atkbd->set == 2 && code == 0x7a)
printk(KERN_WARNING "atkbd.c: This is an XFree86 bug. It shouldn't access"
@@ -353,7 +353,7 @@
if (receive && param)
for (i = 0; i < receive; i++)
atkbd->cmdbuf[(receive - 1) - i] = param[i];
-
+
if (command & 0xff)
if (atkbd_sendbyte(atkbd, command & 0xff))
return (atkbd->cmdcnt = 0) - 1;
@@ -373,7 +373,7 @@
atkbd->cmdcnt = 0;
break;
}
-
+
udelay(1);
}
@@ -466,7 +466,7 @@
*/
if (atkbd_reset)
- if (atkbd_command(atkbd, NULL, ATKBD_CMD_RESET_BAT))
+ if (atkbd_command(atkbd, NULL, ATKBD_CMD_RESET_BAT))
printk(KERN_WARNING "atkbd.c: keyboard reset failed on %s\n", atkbd->serio->phys);
/*
@@ -529,7 +529,7 @@
return 3;
}
- if (atkbd_set != 2)
+ if (atkbd_set != 2)
if (!atkbd_command(atkbd, param, ATKBD_CMD_OK_GETID)) {
atkbd->id = param[0] << 8 | param[1];
return 2;
@@ -541,7 +541,7 @@
return 4;
}
- if (atkbd_set != 3)
+ if (atkbd_set != 3)
return 2;
param[0] = 3;
@@ -637,7 +637,7 @@
switch (serio->type & SERIO_TYPE) {
- case SERIO_8042_XL:
+ case SERIO_8042_XL:
atkbd->translated = 1;
case SERIO_8042:
if (serio->write)
@@ -650,7 +650,7 @@
kfree(atkbd);
return;
}
-
+
if (atkbd->write) {
atkbd->dev.evbit[0] = BIT(EV_KEY) | BIT(EV_LED) | BIT(EV_REP);
atkbd->dev.ledbit[0] = BIT(LED_NUML) | BIT(LED_CAPSL) | BIT(LED_SCROLLL);
@@ -687,7 +687,7 @@
kfree(atkbd);
return;
}
-
+
atkbd->set = atkbd_set_3(atkbd);
atkbd_enable(atkbd);
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 2/9] atkbd bad merge
2004-02-29 6:55 ` [PATCH 1/9] atkbd whitespace fixes Dmitry Torokhov
@ 2004-02-29 6:55 ` Dmitry Torokhov
2004-02-29 6:56 ` [PATCH 3/9] synaptics strict/relaxed protocol checks Dmitry Torokhov
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Torokhov @ 2004-02-29 6:55 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
===================================================================
ChangeSet@1.1686, 2004-02-27 23:42:30-05:00, dtor_core@ameritech.net
Atkbd: Clean up unclean merge (remove old MODULE_PARMs)
atkbd.c | 6 +-----
1 files changed, 1 insertion(+), 5 deletions(-)
===================================================================
diff -Nru a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
--- a/drivers/input/keyboard/atkbd.c Sun Feb 29 01:15:45 2004
+++ b/drivers/input/keyboard/atkbd.c Sun Feb 29 01:15:45 2004
@@ -30,21 +30,17 @@
MODULE_AUTHOR("Vojtech Pavlik <vojtech@suse.cz>");
MODULE_DESCRIPTION("AT and PS/2 keyboard driver");
-MODULE_PARM(atkbd_set, "1i");
-MODULE_PARM(atkbd_reset, "1i");
-MODULE_PARM(atkbd_softrepeat, "1i");
MODULE_LICENSE("GPL");
static int atkbd_set = 2;
module_param_named(set, atkbd_set, int, 0);
MODULE_PARM_DESC(set, "Select keyboard code set (2 = default, 3, 4)");
+
#if defined(__i386__) || defined(__x86_64__) || defined(__hppa__)
static int atkbd_reset;
#else
static int atkbd_reset = 1;
#endif
-static int atkbd_softrepeat;
-
module_param_named(reset, atkbd_reset, bool, 0);
MODULE_PARM_DESC(reset, "Reset keyboard during initialization");
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 3/9] synaptics strict/relaxed protocol checks
2004-02-29 6:55 ` [PATCH 2/9] atkbd bad merge Dmitry Torokhov
@ 2004-02-29 6:56 ` Dmitry Torokhov
2004-02-29 6:58 ` [PATCH 4/9] psmouse whitespace fixes Dmitry Torokhov
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Torokhov @ 2004-02-29 6:56 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
===================================================================
ChangeSet@1.1687, 2004-02-27 23:44:17-05:00, dtor_core@ameritech.net
Input: Switch between strict/relaxed synaptics protocol checks based on
data in the first full data packet. Having strict checks helps
getting rid of bad data after loosing sync, but not all harware
implements strict protocol.
synaptics.c | 53 +++++++++++++++++++++++++++++++++++++++++------------
synaptics.h | 7 +++++++
2 files changed, 48 insertions(+), 12 deletions(-)
===================================================================
diff -Nru a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
--- a/drivers/input/mouse/synaptics.c Sun Feb 29 01:16:28 2004
+++ b/drivers/input/mouse/synaptics.c Sun Feb 29 01:16:28 2004
@@ -435,6 +435,8 @@
goto init_fail;
}
+ priv->pkt_type = SYN_MODEL_NEWABS(priv->model_id) ? SYN_NEWABS : SYN_OLDABS;
+
if (SYN_CAP_EXTENDED(priv->capabilities) && SYN_CAP_PASS_THROUGH(priv->capabilities))
synaptics_pt_create(psmouse);
@@ -602,19 +604,42 @@
input_sync(dev);
}
-static int synaptics_validate_byte(struct psmouse *psmouse)
+static int synaptics_validate_byte(unsigned char packet[], int idx, unsigned char pkt_type)
{
- static unsigned char newabs_mask[] = { 0xC0, 0x00, 0x00, 0xC0, 0x00 };
- static unsigned char newabs_rslt[] = { 0x80, 0x00, 0x00, 0xC0, 0x00 };
- static unsigned char oldabs_mask[] = { 0xC0, 0x60, 0x00, 0xC0, 0x60 };
- static unsigned char oldabs_rslt[] = { 0xC0, 0x00, 0x00, 0x80, 0x00 };
- struct synaptics_data *priv = psmouse->private;
- int idx = psmouse->pktcnt - 1;
+ static unsigned char newabs_mask[] = { 0xC8, 0x00, 0x00, 0xC8, 0x00 };
+ static unsigned char newabs_rel_mask[] = { 0xC0, 0x00, 0x00, 0xC0, 0x00 };
+ static unsigned char newabs_rslt[] = { 0x80, 0x00, 0x00, 0xC0, 0x00 };
+ static unsigned char oldabs_mask[] = { 0xC0, 0x60, 0x00, 0xC0, 0x60 };
+ static unsigned char oldabs_rslt[] = { 0xC0, 0x00, 0x00, 0x80, 0x00 };
+
+ switch (pkt_type) {
+ case SYN_NEWABS:
+ case SYN_NEWABS_RELAXED:
+ return (packet[idx] & newabs_rel_mask[idx]) == newabs_rslt[idx];
+
+ case SYN_NEWABS_STRICT:
+ return (packet[idx] & newabs_mask[idx]) == newabs_rslt[idx];
+
+ case SYN_OLDABS:
+ return (packet[idx] & oldabs_mask[idx]) == oldabs_rslt[idx];
- if (SYN_MODEL_NEWABS(priv->model_id))
- return (psmouse->packet[idx] & newabs_mask[idx]) == newabs_rslt[idx];
- else
- return (psmouse->packet[idx] & oldabs_mask[idx]) == oldabs_rslt[idx];
+ default:
+ printk(KERN_ERR "synaptics: unknown packet type %d\n", pkt_type);
+ return 0;
+ }
+}
+
+static unsigned char synaptics_detect_pkt_type(struct psmouse *psmouse)
+{
+ int i;
+
+ for (i = 0; i < 5; i++)
+ if (!synaptics_validate_byte(psmouse->packet, i, SYN_NEWABS_STRICT)) {
+ printk(KERN_INFO "synaptics: using relaxed packet validation\n");
+ return SYN_NEWABS_RELAXED;
+ }
+
+ return SYN_NEWABS_STRICT;
}
void synaptics_process_byte(struct psmouse *psmouse, struct pt_regs *regs)
@@ -630,13 +655,17 @@
printk(KERN_NOTICE "Synaptics driver resynced.\n");
}
+ if (unlikely(priv->pkt_type == SYN_NEWABS))
+ priv->pkt_type = synaptics_detect_pkt_type(psmouse);
+
if (psmouse->ptport && psmouse->ptport->serio.dev && synaptics_is_pt_packet(psmouse->packet))
synaptics_pass_pt_packet(&psmouse->ptport->serio, psmouse->packet);
else
synaptics_process_packet(psmouse);
psmouse->pktcnt = 0;
- } else if (psmouse->pktcnt && !synaptics_validate_byte(psmouse)) {
+ } else if (psmouse->pktcnt &&
+ !synaptics_validate_byte(psmouse->packet, psmouse->pktcnt - 1, priv->pkt_type)) {
printk(KERN_WARNING "Synaptics driver lost sync at byte %d\n", psmouse->pktcnt);
psmouse->pktcnt = 0;
if (++priv->out_of_sync == psmouse_resetafter) {
diff -Nru a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h
--- a/drivers/input/mouse/synaptics.h Sun Feb 29 01:16:28 2004
+++ b/drivers/input/mouse/synaptics.h Sun Feb 29 01:16:28 2004
@@ -70,6 +70,12 @@
#define SYN_PS_SET_MODE2 0x14
#define SYN_PS_CLIENT_CMD 0x28
+/* synaptics packet types */
+#define SYN_NEWABS 0
+#define SYN_NEWABS_STRICT 1
+#define SYN_NEWABS_RELAXED 2
+#define SYN_OLDABS 3
+
/*
* A structure to describe the state of the touchpad hardware (buttons and pad)
*/
@@ -103,6 +109,7 @@
/* Data for normal processing */
unsigned int out_of_sync; /* # of packets out of sync */
int old_w; /* Previous w value */
+ unsigned char pkt_type; /* packet type - old, new, etc */
};
#endif /* _SYNAPTICS_H */
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 4/9] psmouse whitespace fixes
2004-02-29 6:56 ` [PATCH 3/9] synaptics strict/relaxed protocol checks Dmitry Torokhov
@ 2004-02-29 6:58 ` Dmitry Torokhov
2004-02-29 6:58 ` [PATCH 5/9] psmouse broken hardware workaround Dmitry Torokhov
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Torokhov @ 2004-02-29 6:58 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
===================================================================
ChangeSet@1.1688, 2004-02-27 23:46:16-05:00, dtor_core@ameritech.net
Psmouse: whitespace fixes
psmouse-base.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
===================================================================
diff -Nru a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
--- a/drivers/input/mouse/psmouse-base.c Sun Feb 29 01:17:01 2004
+++ b/drivers/input/mouse/psmouse-base.c Sun Feb 29 01:17:01 2004
@@ -163,14 +163,14 @@
psmouse->name, psmouse->phys, psmouse->pktcnt);
psmouse->pktcnt = 0;
}
-
+
psmouse->last = jiffies;
psmouse->packet[psmouse->pktcnt++] = data;
if (psmouse->packet[0] == PSMOUSE_RET_BAT) {
if (psmouse->pktcnt == 1)
goto out;
-
+
if (psmouse->pktcnt == 2) {
if (psmouse->packet[1] == PSMOUSE_RET_ID) {
psmouse->state = PSMOUSE_IGNORE;
@@ -258,7 +258,7 @@
return (psmouse->cmdcnt = 0) - 1;
while (psmouse->cmdcnt && timeout--) {
-
+
if (psmouse->cmdcnt == 1 && command == PSMOUSE_CMD_RESET_BAT &&
timeout > 100000) /* do not run in a endless loop */
timeout = 100000; /* 1 sec */
@@ -497,7 +497,7 @@
static void psmouse_initialize(struct psmouse *psmouse)
{
unsigned char param[2];
-
+
/*
* We set the mouse report rate, resolution and scaling.
*/
@@ -571,7 +571,7 @@
static void psmouse_connect(struct serio *serio, struct serio_dev *dev)
{
struct psmouse *psmouse;
-
+
if ((serio->type & SERIO_TYPE) != SERIO_8042 &&
(serio->type & SERIO_TYPE) != SERIO_PS_PSTHRU)
return;
@@ -603,7 +603,7 @@
serio->private = NULL;
return;
}
-
+
sprintf(psmouse->devname, "%s %s %s",
psmouse_protocols[psmouse->type], psmouse->vendor, psmouse->name);
sprintf(psmouse->phys, "%s/input0",
@@ -617,7 +617,7 @@
psmouse->dev.id.version = psmouse->model;
input_register_device(&psmouse->dev);
-
+
printk(KERN_INFO "input: %s on %s\n", psmouse->devname, serio->phys);
psmouse_initialize(psmouse);
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 5/9] psmouse broken hardware workaround
2004-02-29 6:58 ` [PATCH 4/9] psmouse whitespace fixes Dmitry Torokhov
@ 2004-02-29 6:58 ` Dmitry Torokhov
2004-02-29 7:00 ` [PATCH 6/9] introduce module_param_array_named Dmitry Torokhov
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Torokhov @ 2004-02-29 6:58 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
===================================================================
ChangeSet@1.1689, 2004-02-27 23:57:31-05:00, dtor_core@ameritech.net
Psmouse: some hardware does not ACK "disable streaming mode" command.
Since we already have an idea that it's a mouse device that
is present (from its response to GET ID command), instead of
aborting, issue a warning and continue.
psmouse-base.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
===================================================================
diff -Nru a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
--- a/drivers/input/mouse/psmouse-base.c Sun Feb 29 01:17:30 2004
+++ b/drivers/input/mouse/psmouse-base.c Sun Feb 29 01:17:30 2004
@@ -442,7 +442,7 @@
*/
if (psmouse_command(psmouse, NULL, PSMOUSE_CMD_RESET_DIS))
- return -1;
+ printk(KERN_WARNING "psmouse.c: Failed to reset mouse on %s\n", psmouse->serio->phys);
/*
* And here we try to determine if it has any extensions over the
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 6/9] introduce module_param_array_named
2004-02-29 6:58 ` [PATCH 5/9] psmouse broken hardware workaround Dmitry Torokhov
@ 2004-02-29 7:00 ` Dmitry Torokhov
2004-02-29 7:01 ` [PATCH 7/9] Move joysticks to the module_param way of handling options Dmitry Torokhov
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Torokhov @ 2004-02-29 7:00 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
===================================================================
ChangeSet@1.1690, 2004-02-28 00:20:14-05:00, dtor_core@ameritech.net
Introduce module_param_array_named to allow for module options with
name different form corresponding array variable. Allows using short
(but descriptive) option names without hurting code readability.
Modeled after module_param_named.
moduleparam.h | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
===================================================================
diff -Nru a/include/linux/moduleparam.h b/include/linux/moduleparam.h
--- a/include/linux/moduleparam.h Sun Feb 29 01:18:36 2004
+++ b/include/linux/moduleparam.h Sun Feb 29 01:18:36 2004
@@ -126,12 +126,15 @@
#define param_check_invbool(name, p) __param_check(name, p, int)
/* Comma-separated array: num is set to number they actually specified. */
-#define module_param_array(name, type, num, perm) \
+#define module_param_array_named(name, array, type, num, perm) \
static struct kparam_array __param_arr_##name \
- = { ARRAY_SIZE(name), &num, param_set_##type, param_get_##type, \
- sizeof(name[0]), name }; \
+ = { ARRAY_SIZE(array), &num, param_set_##type, param_get_##type,\
+ sizeof(array[0]), array }; \
module_param_call(name, param_array_set, param_array_get, \
&__param_arr_##name, perm)
+
+#define module_param_array(name, type, num, perm) \
+ module_param_array_named(name, name, type, num, perm)
extern int param_array_set(const char *val, struct kernel_param *kp);
extern int param_array_get(char *buffer, struct kernel_param *kp);
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 7/9] Move joysticks to the module_param way of handling options
2004-02-29 7:00 ` [PATCH 6/9] introduce module_param_array_named Dmitry Torokhov
@ 2004-02-29 7:01 ` Dmitry Torokhov
2004-02-29 7:02 ` [PATCH 8/9] introduce __obsolete_setup Dmitry Torokhov
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Torokhov @ 2004-02-29 7:01 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
===================================================================
ChangeSet@1.1691, 2004-02-28 00:48:18-05:00, dtor_core@ameritech.net
Input: Convert joystick modules to the new way of handling parameters and
document them in kernel-parameters.txt
The new names are:
amijoy.map=<a>,<b>
analog.map=<type1>,<type2>,...<type16>
db9.dev[2|3]=<parport#>,<type>
gamecon.map[2|3]=<parport#>,<pad1>,<pad2>,...<pad5>
turbografx.map[2|3]=<parport#>,<js1>,<js2>,...<js7>
Also there is a tiny change to mousedev and tsdev descriptions in
kernel-parameters, but no name changes.
Documentation/input/joystick-parport.txt | 16 +++---
Documentation/input/joystick.txt | 6 +-
Documentation/kernel-parameters.txt | 46 ++++++++++-------
drivers/input/joystick/amijoy.c | 17 +-----
drivers/input/joystick/analog.c | 26 +--------
drivers/input/joystick/db9.c | 63 +++++++++--------------
drivers/input/joystick/gamecon.c | 82 +++++++++++++------------------
drivers/input/joystick/turbografx.c | 68 ++++++++++---------------
8 files changed, 140 insertions(+), 184 deletions(-)
===================================================================
diff -Nru a/Documentation/input/joystick-parport.txt b/Documentation/input/joystick-parport.txt
--- a/Documentation/input/joystick-parport.txt Sun Feb 29 01:19:19 2004
+++ b/Documentation/input/joystick-parport.txt Sun Feb 29 01:19:19 2004
@@ -434,7 +434,7 @@
Using gamecon.c you can connect up to five devices to one parallel port. It
uses the following kernel/module command line:
- gc=port,pad1,pad2,pad3,pad4,pad5
+ gamecon.map=port,pad1,pad2,pad3,pad4,pad5
Where 'port' the number of the parport interface (eg. 0 for parport0).
@@ -457,15 +457,15 @@
your controller plugged in before initializing.
Should you want to use more than one of parallel ports at once, you can use
-gc_2 and gc_3 as additional command line parameters for two more parallel
-ports.
+gamecon.map2 and gamecon.map3 as additional command line parameters for two
+more parallel ports.
3.2 db9.c
~~~~~~~~~
Apart from making an interface, there is nothing difficult on using the
db9.c driver. It uses the following kernel/module command line:
- db9=port,type
+ db9.dev=port,type
Where 'port' is the number of the parport interface (eg. 0 for parport0).
@@ -489,14 +489,14 @@
10 | Amiga CD32 pad
Should you want to use more than one of these joysticks/pads at once, you
-can use db9_2 and db9_3 as additional command line parameters for two
+can use db9.dev2 and db9.dev3 as additional command line parameters for two
more joysticks/pads.
3.3 turbografx.c
~~~~~~~~~~~~~~~~
The turbografx.c driver uses a very simple kernel/module command line:
- tgfx=port,js1,js2,js3,js4,js5,js6,js7
+ turbografx.map=port,js1,js2,js3,js4,js5,js6,js7
Where 'port' is the number of the parport interface (eg. 0 for parport0).
@@ -504,8 +504,8 @@
interface ports 1-7 have. For a standard multisystem joystick, this is 1.
Should you want to use more than one of these interfaces at once, you can
-use tgfx_2 and tgfx_3 as additional command line parameters for two more
-interfaces.
+use turbografx.map2 and turbografx.map3 as additional command line parameters
+for two more interfaces.
3.4 PC parallel port pinout
~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff -Nru a/Documentation/input/joystick.txt b/Documentation/input/joystick.txt
--- a/Documentation/input/joystick.txt Sun Feb 29 01:19:19 2004
+++ b/Documentation/input/joystick.txt Sun Feb 29 01:19:19 2004
@@ -111,7 +111,7 @@
alias tty-ldisc-2 serport
alias char-major-13 input
above input joydev ns558 analog
- options analog js=gamepad
+ options analog map=gamepad,none,2btn
2.5 Verifying that it works
~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -185,7 +185,7 @@
module command line, when inserting analog.o into the kernel. The
parameters are:
- js=type,type,type,....
+ analog.map=<type1>,<type2>,<type3>,....
'type' is type of the joystick from the table below, defining joysticks
present on gameports in the system, starting with gameport0, second 'type'
@@ -419,7 +419,7 @@
Amiga joysticks, connected to an Amiga, are supported by the amijoy.c
driver. Since they can't be autodetected, the driver has a command line.
- amijoy=a,b
+ amijoy.map=<a>,<b>
a and b define the joysticks connected to the JOY0DAT and JOY1DAT ports of
the Amiga.
diff -Nru a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
--- a/Documentation/kernel-parameters.txt Sun Feb 29 01:19:19 2004
+++ b/Documentation/kernel-parameters.txt Sun Feb 29 01:19:19 2004
@@ -151,7 +151,15 @@
Format: <host-scsi-id>,<target-scsi-id>,<max-rate>,<max-offset>
See also header of drivers/scsi/AM53C974.c.
- amijoy= [HW,JOY] Amiga joystick support
+ amijoy.map= [HW,JOY] Amiga joystick support
+ Map of devices attached to JOY0DAT and JOY1DAT
+ Format: <a>,<b>
+ See also Documentation/kernel/input/joystick.txt
+
+ analog.map= [HW,JOY] Analog joystick and gamepad support
+ Specifies type or capabilities of an analog joystick
+ connected to one of 16 gameports
+ Format: <type1>,<type2>,..<type16>
apc= [HW,SPARC] Power management functions (SPARCstation-4/5 + deriv.)
Format: noidle
@@ -280,10 +288,11 @@
dasd= [HW,NET]
See header of drivers/s390/block/dasd_devmap.c.
- db9= [HW,JOY]
- db9_2=
- db9_3=
-
+ db9.dev[2|3]= [HW,JOY] Multisystem joystick support via parallel port
+ (one device per port)
+ Format: <port#>,<type>
+ See also Documentation/input/joystick-parport.txt
+
debug [KNL] Enable kernel debugging (events log level).
decnet= [HW,NET]
@@ -377,12 +386,14 @@
ftape= [HW] Floppy Tape subsystem debugging options.
See Documentation/ftape.txt.
+ gamecon.map[2|3]=
+ [HW,JOY] Multisystem joystick and NES/SNES/PSX pad
+ support via parallel port (up to 5 devices per port)
+ Format: <port#>,<pad1>,<pad2>,<pad3>,<pad4>,<pad5>
+ See also Documentation/input/joystick-parport.txt
+
gamma= [HW,DRM]
- gc= [HW,JOY]
- gc_2= See Documentation/input/joystick-parport.txt.
- gc_3=
-
gdth= [HW,SCSI]
See header of drivers/scsi/gdth.c.
@@ -609,9 +620,9 @@
mga= [HW,DRM]
- mousedev.xres [MOUSE] Horizontal screen resolution, used for devices
+ mousedev.xres= [MOUSE] Horizontal screen resolution, used for devices
reporting absolute coordinates, such as tablets
- mousedev.yres [MOUSE] Vertical screen resolution, used for devices
+ mousedev.yres= [MOUSE] Vertical screen resolution, used for devices
reporting absolute coordinates, such as tablets
mpu401= [HW,OSS]
@@ -1156,10 +1167,6 @@
See header of drivers/scsi/t128.c.
tdfx= [HW,DRM]
-
- tgfx= [HW,JOY] TurboGraFX parallel port interface
- tgfx_2= See Documentation/input/joystick-parport.txt.
- tgfx_3=
thash_entries= [KNL,NET]
Set number of hash buckets for TCP connection
@@ -1182,8 +1189,13 @@
trix= [HW,OSS] MediaTrix AudioTrix Pro
Format: <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq>
- tsdev.xres [TS] Horizontal screen resolution.
- tsdev.yres [TS] Vertical screen resolution.
+ tsdev.xres= [TS] Horizontal screen resolution.
+ tsdev.yres= [TS] Vertical screen resolution.
+
+ turbografx.map[2|3]=
+ [HW,JOY] TurboGraFX parallel port interface
+ Format: <port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7>
+ See also Documentation/input/joystick-parport.txt
u14-34f= [HW,SCSI] UltraStor 14F/34F SCSI host adapter
See header of drivers/scsi/u14-34f.c.
diff -Nru a/drivers/input/joystick/amijoy.c b/drivers/input/joystick/amijoy.c
--- a/drivers/input/joystick/amijoy.c Sun Feb 29 01:19:19 2004
+++ b/drivers/input/joystick/amijoy.c Sun Feb 29 01:19:19 2004
@@ -32,6 +32,7 @@
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/module.h>
+#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/input.h>
#include <linux/interrupt.h>
@@ -42,10 +43,13 @@
MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>");
MODULE_DESCRIPTION("Driver for Amiga joysticks");
-MODULE_PARM(amijoy, "1-2i");
MODULE_LICENSE("GPL");
static int amijoy[2] = { 0, 1 };
+static int amijoy_nargs;
+module_param_array_named(map, amijoy, uint, amijoy_nargs, 0);
+MODULE_PARM_DESC(map, "Map of attached joysticks in form of <a>,<b> (default is 0,1)");
+
static int amijoy_used[2] = { 0, 0 };
static struct input_dev amijoy_dev[2];
static char *amijoy_phys[2] = { "amijoy/input0", "amijoy/input1" };
@@ -100,17 +104,6 @@
if (!--(*used))
free_irq(IRQ_AMIGA_VERTB, amijoy_interrupt);
}
-
-static int __init amijoy_setup(char *str)
-{
- int i;
- int ints[4];
-
- str = get_options(str, ARRAY_SIZE(ints), ints);
- for (i = 0; i <= ints[0] && i < 2; i++) amijoy[i] = ints[i+1];
- return 1;
-}
-__setup("amijoy=", amijoy_setup);
static int __init amijoy_init(void)
{
diff -Nru a/drivers/input/joystick/analog.c b/drivers/input/joystick/analog.c
--- a/drivers/input/joystick/analog.c Sun Feb 29 01:19:19 2004
+++ b/drivers/input/joystick/analog.c Sun Feb 29 01:19:19 2004
@@ -32,6 +32,7 @@
#include <linux/delay.h>
#include <linux/kernel.h>
#include <linux/module.h>
+#include <linux/moduleparam.h>
#include <linux/slab.h>
#include <linux/bitops.h>
#include <linux/init.h>
@@ -50,9 +51,10 @@
#define ANALOG_PORTS 16
static char *js[ANALOG_PORTS];
+static int js_nargs;
static int analog_options[ANALOG_PORTS];
-MODULE_PARM(js, "1-" __MODULE_STRING(ANALOG_PORTS) "s");
-MODULE_PARM_DESC(js, "Analog joystick options");
+module_param_array_named(map, js, charp, js_nargs, 0);
+MODULE_PARM_DESC(map, "Describes analog joysticks type/capabilities");
/*
* Times, feature definitions.
@@ -711,7 +713,7 @@
int i, j;
char *end;
- for (i = 0; i < ANALOG_PORTS && js[i]; i++) {
+ for (i = 0; i < js_nargs; i++) {
for (j = 0; analog_types[j].name; j++)
if (!strcmp(analog_types[j].name, js[i])) {
@@ -741,24 +743,6 @@
.connect = analog_connect,
.disconnect = analog_disconnect,
};
-
-#ifndef MODULE
-static int __init analog_setup(char *str)
-{
- char *s = str;
- int i = 0;
-
- if (!str || !*str) return 0;
-
- while ((str = s) && (i < ANALOG_PORTS)) {
- if ((s = strchr(str,','))) *s++ = 0;
- js[i++] = str;
- }
-
- return 1;
-}
-__setup("js=", analog_setup);
-#endif
int __init analog_init(void)
{
diff -Nru a/drivers/input/joystick/db9.c b/drivers/input/joystick/db9.c
--- a/drivers/input/joystick/db9.c Sun Feb 29 01:19:19 2004
+++ b/drivers/input/joystick/db9.c Sun Feb 29 01:19:19 2004
@@ -33,6 +33,7 @@
#include <linux/kernel.h>
#include <linux/module.h>
+#include <linux/moduleparam.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/parport.h>
@@ -42,9 +43,20 @@
MODULE_DESCRIPTION("Atari, Amstrad, Commodore, Amiga, Sega, etc. joystick driver");
MODULE_LICENSE("GPL");
-MODULE_PARM(db9, "2i");
-MODULE_PARM(db9_2, "2i");
-MODULE_PARM(db9_3, "2i");
+static int db9[] __initdata = { -1, 0 };
+static int db9_nargs __initdata = 0;
+module_param_array_named(dev, db9, int, db9_nargs, 0);
+MODULE_PARM_DESC(dev, "Describes first attached device (<parport#>,<type>)");
+
+static int db9_2[] __initdata = { -1, 0 };
+static int db9_nargs_2 __initdata = 0;
+module_param_array_named(dev2, db9_2, int, db9_nargs_2, 0);
+MODULE_PARM_DESC(dev2, "Describes second attached device (<parport#>,<type>)");
+
+static int db9_3[] __initdata = { -1, 0 };
+static int db9_nargs_3 __initdata = 0;
+module_param_array_named(dev3, db9_3, int, db9_nargs_3, 0);
+MODULE_PARM_DESC(dev3, "Describes third attached device (<parport#>,<type>)");
#define DB9_MULTI_STICK 0x01
#define DB9_MULTI2_STICK 0x02
@@ -76,10 +88,6 @@
#define DB9_GENESIS6_DELAY 14
#define DB9_REFRESH_TIME HZ/100
-static int db9[] __initdata = { -1, 0 };
-static int db9_2[] __initdata = { -1, 0 };
-static int db9_3[] __initdata = { -1, 0 };
-
struct db9 {
struct input_dev dev[DB9_MAX_DEVICES];
struct timer_list timer;
@@ -518,7 +526,7 @@
}
}
-static struct db9 __init *db9_probe(int *config)
+static struct db9 __init *db9_probe(int *config, int nargs)
{
struct db9 *db9;
struct parport *pp;
@@ -526,6 +534,12 @@
if (config[0] < 0)
return NULL;
+
+ if (nargs < 2) {
+ printk(KERN_ERR "db9.c: Device type must be specified.\n");
+ return NULL;
+ }
+
if (config[1] < 1 || config[1] >= DB9_MAX_PAD || !db9_buttons[config[1]]) {
printk(KERN_ERR "db9.c: bad config\n");
return NULL;
@@ -601,38 +615,11 @@
return db9;
}
-#ifndef MODULE
-static int __init db9_setup(char *str)
-{
- int i, ints[3];
- get_options(str, ARRAY_SIZE(ints), ints);
- for (i = 0; i <= ints[0] && i < 2; i++) db9[i] = ints[i + 1];
- return 1;
-}
-static int __init db9_setup_2(char *str)
-{
- int i, ints[3];
- get_options(str, ARRAY_SIZE(ints), ints);
- for (i = 0; i <= ints[0] && i < 2; i++) db9_2[i] = ints[i + 1];
- return 1;
-}
-static int __init db9_setup_3(char *str)
-{
- int i, ints[3];
- get_options(str, ARRAY_SIZE(ints), ints);
- for (i = 0; i <= ints[0] && i < 2; i++) db9_3[i] = ints[i + 1];
- return 1;
-}
-__setup("db9=", db9_setup);
-__setup("db9_2=", db9_setup_2);
-__setup("db9_3=", db9_setup_3);
-#endif
-
int __init db9_init(void)
{
- db9_base[0] = db9_probe(db9);
- db9_base[1] = db9_probe(db9_2);
- db9_base[2] = db9_probe(db9_3);
+ db9_base[0] = db9_probe(db9, db9_nargs);
+ db9_base[1] = db9_probe(db9_2, db9_nargs_2);
+ db9_base[2] = db9_probe(db9_3, db9_nargs_3);
if (db9_base[0] || db9_base[1] || db9_base[2])
return 0;
diff -Nru a/drivers/input/joystick/gamecon.c b/drivers/input/joystick/gamecon.c
--- a/drivers/input/joystick/gamecon.c Sun Feb 29 01:19:19 2004
+++ b/drivers/input/joystick/gamecon.c Sun Feb 29 01:19:19 2004
@@ -35,6 +35,7 @@
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/module.h>
+#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/parport.h>
#include <linux/input.h>
@@ -43,10 +44,26 @@
MODULE_DESCRIPTION("NES, SNES, N64, MultiSystem, PSX gamepad driver");
MODULE_LICENSE("GPL");
-MODULE_PARM(gc, "2-6i");
-MODULE_PARM(gc_2,"2-6i");
-MODULE_PARM(gc_3,"2-6i");
-MODULE_PARM(gc_psx_delay, "i");
+static int gc[] __initdata = { -1, 0, 0, 0, 0, 0 };
+static int gc_nargs __initdata = 0;
+module_param_array_named(map, gc, int, gc_nargs, 0);
+MODULE_PARM_DESC(map, "Describers first set of devices (<parport#>,<pad1>,<pad2>,..<pad5>)");
+
+static int gc_2[] __initdata = { -1, 0, 0, 0, 0, 0 };
+static int gc_nargs_2 __initdata = 0;
+module_param_array_named(map2, gc_2, int, gc_nargs_2, 0);
+MODULE_PARM_DESC(map2, "Describers second set of devices");
+
+static int gc_3[] __initdata = { -1, 0, 0, 0, 0, 0 };
+static int gc_nargs_3 __initdata = 0;
+module_param_array_named(map3, gc_3, int, gc_nargs_3, 0);
+MODULE_PARM_DESC(map3, "Describers third set of devices");
+
+__obsolete_setup("gc=");
+__obsolete_setup("gc_2=");
+__obsolete_setup("gc_3=");
+
+/* see also gs_psx_delay parameter in PSX support section */
#define GC_SNES 1
#define GC_NES 2
@@ -71,10 +88,6 @@
static struct gc *gc_base[3];
-static int gc[] __initdata = { -1, 0, 0, 0, 0, 0 };
-static int gc_2[] __initdata = { -1, 0, 0, 0, 0, 0 };
-static int gc_3[] __initdata = { -1, 0, 0, 0, 0, 0 };
-
static int gc_status_bit[] = { 0x40, 0x80, 0x20, 0x10, 0x08 };
static char *gc_names[] = { NULL, "SNES pad", "NES pad", "NES FourPort", "Multisystem joystick",
@@ -232,6 +245,11 @@
#define GC_PSX_LEN(x) ((x) & 0xf) /* Low nibble is length in words */
static int gc_psx_delay = GC_PSX_DELAY;
+module_param_named(psx_delay, gc_psx_delay, uint, 0);
+MODULE_PARM_DESC(psx_delay, "Delay when accessing Sony PSX controller (usecs)");
+
+__obsolete_setup("gc_psx_delay=");
+
static short gc_psx_abs[] = { ABS_X, ABS_Y, ABS_RX, ABS_RY, ABS_HAT0X, ABS_HAT0Y };
static short gc_psx_btn[] = { BTN_TL, BTN_TR, BTN_TL2, BTN_TR2, BTN_A, BTN_B, BTN_X, BTN_Y,
BTN_START, BTN_SELECT, BTN_THUMBL, BTN_THUMBR };
@@ -468,7 +486,7 @@
}
}
-static struct gc __init *gc_probe(int *config)
+static struct gc __init *gc_probe(int *config, int nargs)
{
struct gc *gc;
struct parport *pp;
@@ -478,6 +496,11 @@
if (config[0] < 0)
return NULL;
+ if (nargs < 2) {
+ printk(KERN_ERR "gamecon.c: at least one device must be specified\n");
+ return NULL;
+ }
+
pp = parport_find_number(config[0]);
if (!pp) {
@@ -507,7 +530,7 @@
gc->timer.data = (long) gc;
gc->timer.function = gc_timer;
- for (i = 0; i < 5; i++) {
+ for (i = 0; i < nargs - 1; i++) {
if (!config[i + 1])
continue;
@@ -632,44 +655,11 @@
return gc;
}
-#ifndef MODULE
-static int __init gc_setup(char *str)
-{
- int i, ints[7];
- get_options(str, ARRAY_SIZE(ints), ints);
- for (i = 0; i <= ints[0] && i < 6; i++) gc[i] = ints[i + 1];
- return 1;
-}
-static int __init gc_setup_2(char *str)
-{
- int i, ints[7];
- get_options(str, ARRAY_SIZE(ints), ints);
- for (i = 0; i <= ints[0] && i < 6; i++) gc_2[i] = ints[i + 1];
- return 1;
-}
-static int __init gc_setup_3(char *str)
-{
- int i, ints[7];
- get_options(str, ARRAY_SIZE(ints), ints);
- for (i = 0; i <= ints[0] && i < 6; i++) gc_3[i] = ints[i + 1];
- return 1;
-}
-static int __init gc_psx_setup(char *str)
-{
- get_option(&str, &gc_psx_delay);
- return 1;
-}
-__setup("gc=", gc_setup);
-__setup("gc_2=", gc_setup_2);
-__setup("gc_3=", gc_setup_3);
-__setup("gc_psx_delay=", gc_psx_setup);
-#endif
-
int __init gc_init(void)
{
- gc_base[0] = gc_probe(gc);
- gc_base[1] = gc_probe(gc_2);
- gc_base[2] = gc_probe(gc_3);
+ gc_base[0] = gc_probe(gc, gc_nargs);
+ gc_base[1] = gc_probe(gc_2, gc_nargs_2);
+ gc_base[2] = gc_probe(gc_3, gc_nargs_3);
if (gc_base[0] || gc_base[1] || gc_base[2])
return 0;
diff -Nru a/drivers/input/joystick/turbografx.c b/drivers/input/joystick/turbografx.c
--- a/drivers/input/joystick/turbografx.c Sun Feb 29 01:19:19 2004
+++ b/drivers/input/joystick/turbografx.c Sun Feb 29 01:19:19 2004
@@ -35,15 +35,31 @@
#include <linux/parport.h>
#include <linux/input.h>
#include <linux/module.h>
+#include <linux/moduleparam.h>
#include <linux/init.h>
MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>");
MODULE_DESCRIPTION("TurboGraFX parallel port interface driver");
MODULE_LICENSE("GPL");
-MODULE_PARM(tgfx, "2-8i");
-MODULE_PARM(tgfx_2, "2-8i");
-MODULE_PARM(tgfx_3, "2-8i");
+static int tgfx[] __initdata = { -1, 0, 0, 0, 0, 0, 0, 0 };
+static int tgfx_nargs __initdata = 0;
+module_param_array_named(map, tgfx, int, tgfx_nargs, 0);
+MODULE_PARM_DESC(map, "Describes first set of devices (<parport#>,<js1>,<js2>,..<js7>");
+
+static int tgfx_2[] __initdata = { -1, 0, 0, 0, 0, 0, 0, 0 };
+static int tgfx_nargs_2 __initdata = 0;
+module_param_array_named(map2, tgfx_2, int, tgfx_nargs_2, 0);
+MODULE_PARM_DESC(map2, "Describes second set of devices");
+
+static int tgfx_3[] __initdata = { -1, 0, 0, 0, 0, 0, 0, 0 };
+static int tgfx_nargs_3 __initdata = 0;
+module_param_array_named(map3, tgfx_3, int, tgfx_nargs_3, 0);
+MODULE_PARM_DESC(map3, "Describes third set of devices");
+
+__obsolete_setup("tgfx=");
+__obsolete_setup("tgfx_2=");
+__obsolete_setup("tgfx_3=");
#define TGFX_REFRESH_TIME HZ/100 /* 10 ms */
@@ -58,10 +74,6 @@
#define TGFX_TOP 0x01
#define TGFX_TOP2 0x08
-static int tgfx[] __initdata = { -1, 0, 0, 0, 0, 0, 0, 0 };
-static int tgfx_2[] __initdata = { -1, 0, 0, 0, 0, 0, 0, 0 };
-static int tgfx_3[] __initdata = { -1, 0, 0, 0, 0, 0, 0, 0 };
-
static int tgfx_buttons[] = { BTN_TRIGGER, BTN_THUMB, BTN_THUMB2, BTN_TOP, BTN_TOP2 };
static char *tgfx_name = "TurboGraFX Multisystem joystick";
@@ -133,7 +145,7 @@
* tgfx_probe() probes for tg gamepads.
*/
-static struct tgfx __init *tgfx_probe(int *config)
+static struct tgfx __init *tgfx_probe(int *config, int nargs)
{
struct tgfx *tgfx;
struct parport *pp;
@@ -142,6 +154,11 @@
if (config[0] < 0)
return NULL;
+ if (nargs < 2) {
+ printk(KERN_ERR "turbografx.c: at least one joystick must be specified\n");
+ return NULL;
+ }
+
pp = parport_find_number(config[0]);
if (!pp) {
@@ -171,7 +188,7 @@
tgfx->sticks = 0;
- for (i = 0; i < 7; i++)
+ for (i = 0; i < nargs - 1; i++)
if (config[i+1] > 0 && config[i+1] < 6) {
tgfx->sticks |= (1 << i);
@@ -212,38 +229,11 @@
return tgfx;
}
-#ifndef MODULE
-static int __init tgfx_setup(char *str)
-{
- int i, ints[9];
- get_options(str, ARRAY_SIZE(ints), ints);
- for (i = 0; i <= ints[0] && i < 8; i++) tgfx[i] = ints[i + 1];
- return 1;
-}
-static int __init tgfx_setup_2(char *str)
-{
- int i, ints[9];
- get_options(str, ARRAY_SIZE(ints), ints);
- for (i = 0; i <= ints[0] && i < 8; i++) tgfx_2[i] = ints[i + 1];
- return 1;
-}
-static int __init tgfx_setup_3(char *str)
-{
- int i, ints[9];
- get_options(str, ARRAY_SIZE(ints), ints);
- for (i = 0; i <= ints[0] && i < 8; i++) tgfx_3[i] = ints[i + 1];
- return 1;
-}
-__setup("tgfx=", tgfx_setup);
-__setup("tgfx_2=", tgfx_setup_2);
-__setup("tgfx_3=", tgfx_setup_3);
-#endif
-
int __init tgfx_init(void)
{
- tgfx_base[0] = tgfx_probe(tgfx);
- tgfx_base[1] = tgfx_probe(tgfx_2);
- tgfx_base[2] = tgfx_probe(tgfx_3);
+ tgfx_base[0] = tgfx_probe(tgfx, tgfx_nargs);
+ tgfx_base[1] = tgfx_probe(tgfx_2, tgfx_nargs_2);
+ tgfx_base[2] = tgfx_probe(tgfx_3, tgfx_nargs_3);
if (tgfx_base[0] || tgfx_base[1] || tgfx_base[2])
return 0;
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 8/9] introduce __obsolete_setup
2004-02-29 7:01 ` [PATCH 7/9] Move joysticks to the module_param way of handling options Dmitry Torokhov
@ 2004-02-29 7:02 ` Dmitry Torokhov
2004-02-29 7:03 ` [PATCH 9/9] Document removed input options using __obsolete_setup Dmitry Torokhov
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Torokhov @ 2004-02-29 7:02 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
===================================================================
ChangeSet@1.1692, 2004-02-28 00:49:41-05:00, dtor_core@ameritech.net
Setup: introduce __obsolete_setup macro to denote truly obsolete
parameters. Whenever such parameter is specified kernel
will comlain that "Parameter %s is obsolete, ignored"
include/linux/init.h | 22 +++++++++++++++++-----
init/main.c | 7 +++++--
2 files changed, 22 insertions(+), 7 deletions(-)
===================================================================
diff -Nru a/include/linux/init.h b/include/linux/init.h
--- a/include/linux/init.h Sun Feb 29 01:19:55 2004
+++ b/include/linux/init.h Sun Feb 29 01:19:55 2004
@@ -110,12 +110,21 @@
};
/* OBSOLETE: see moduleparam.h for the right way. */
-#define __setup(str, fn) \
- static char __setup_str_##fn[] __initdata = str; \
- static struct obs_kernel_param __setup_##fn \
+#define __setup_param(str, unique_id, fn) \
+ static char __setup_str_##unique_id[] __initdata = str; \
+ static struct obs_kernel_param __setup_##unique_id \
__attribute_used__ \
__attribute__((__section__(".init.setup"))) \
- = { __setup_str_##fn, fn }
+ = { __setup_str_##unique_id, fn }
+
+#define __setup_null_param(str, unique_id) \
+ __setup_param(str, unique_id, NULL)
+
+#define __setup(str, fn) \
+ __setup_param(str, fn, fn)
+
+#define __obsolete_setup(str) \
+ __setup_null_param(str, __LINE__)
#endif /* __ASSEMBLY__ */
@@ -172,7 +181,10 @@
{ return exitfn; } \
void cleanup_module(void) __attribute__((alias(#exitfn)));
-#define __setup(str,func) /* nothing */
+#define __setup_param(str, unique_id, fn) /* nothing */
+#define __setup_null_param(str, unique_id) /* nothing */
+#define __setup(str, func) /* nothing */
+#define __obsolete_setup(str) /* nothing */
#endif
/* Data marked not to be saved by software_suspend() */
diff -Nru a/init/main.c b/init/main.c
--- a/init/main.c Sun Feb 29 01:19:55 2004
+++ b/init/main.c Sun Feb 29 01:19:55 2004
@@ -155,8 +155,11 @@
p = &__setup_start;
do {
int n = strlen(p->str);
- if (!strncmp(line,p->str,n)) {
- if (p->setup_func(line+n))
+ if (!strncmp(line, p->str, n)) {
+ if (!p->setup_func) {
+ printk(KERN_WARNING "Parameter %s is obsolete, ignored\n", p->str);
+ return 1;
+ } else if (p->setup_func(line + n))
return 1;
}
p++;
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 9/9] Document removed input options using __obsolete_setup
2004-02-29 7:02 ` [PATCH 8/9] introduce __obsolete_setup Dmitry Torokhov
@ 2004-02-29 7:03 ` Dmitry Torokhov
0 siblings, 0 replies; 16+ messages in thread
From: Dmitry Torokhov @ 2004-02-29 7:03 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
===================================================================
ChangeSet@1.1693, 2004-02-28 00:51:33-05:00, dtor_core@ameritech.net
Input: use __obsolete_setup to document removed (renamed)
options so users will have a clue why the options
do not work anymore
joystick/amijoy.c | 2 ++
joystick/analog.c | 2 ++
joystick/db9.c | 4 ++++
joystick/gamecon.c | 6 ++++++
joystick/turbografx.c | 4 ++++
keyboard/atkbd.c | 4 ++++
mouse/98busmouse.c | 2 ++
mouse/inport.c | 2 ++
mouse/logibm.c | 2 ++
mouse/psmouse-base.c | 6 ++++++
serio/i8042.c | 7 +++++++
11 files changed, 41 insertions(+)
===================================================================
diff -Nru a/drivers/input/joystick/amijoy.c b/drivers/input/joystick/amijoy.c
--- a/drivers/input/joystick/amijoy.c Sun Feb 29 01:20:26 2004
+++ b/drivers/input/joystick/amijoy.c Sun Feb 29 01:20:26 2004
@@ -50,6 +50,8 @@
module_param_array_named(map, amijoy, uint, amijoy_nargs, 0);
MODULE_PARM_DESC(map, "Map of attached joysticks in form of <a>,<b> (default is 0,1)");
+__obsolete_setup("amijoy=");
+
static int amijoy_used[2] = { 0, 0 };
static struct input_dev amijoy_dev[2];
static char *amijoy_phys[2] = { "amijoy/input0", "amijoy/input1" };
diff -Nru a/drivers/input/joystick/analog.c b/drivers/input/joystick/analog.c
--- a/drivers/input/joystick/analog.c Sun Feb 29 01:20:26 2004
+++ b/drivers/input/joystick/analog.c Sun Feb 29 01:20:26 2004
@@ -56,6 +56,8 @@
module_param_array_named(map, js, charp, js_nargs, 0);
MODULE_PARM_DESC(map, "Describes analog joysticks type/capabilities");
+__obsolete_setup("js=");
+
/*
* Times, feature definitions.
*/
diff -Nru a/drivers/input/joystick/db9.c b/drivers/input/joystick/db9.c
--- a/drivers/input/joystick/db9.c Sun Feb 29 01:20:26 2004
+++ b/drivers/input/joystick/db9.c Sun Feb 29 01:20:26 2004
@@ -58,6 +58,10 @@
module_param_array_named(dev3, db9_3, int, db9_nargs_3, 0);
MODULE_PARM_DESC(dev3, "Describes third attached device (<parport#>,<type>)");
+__obsolete_setup("db9=");
+__obsolete_setup("db9_2=");
+__obsolete_setup("db9_3=");
+
#define DB9_MULTI_STICK 0x01
#define DB9_MULTI2_STICK 0x02
#define DB9_GENESIS_PAD 0x03
diff -Nru a/drivers/input/joystick/gamecon.c b/drivers/input/joystick/gamecon.c
--- a/drivers/input/joystick/gamecon.c Sun Feb 29 01:20:26 2004
+++ b/drivers/input/joystick/gamecon.c Sun Feb 29 01:20:26 2004
@@ -63,6 +63,10 @@
__obsolete_setup("gc_2=");
__obsolete_setup("gc_3=");
+__obsolete_setup("gc=");
+__obsolete_setup("gc_2=");
+__obsolete_setup("gc_3=");
+
/* see also gs_psx_delay parameter in PSX support section */
#define GC_SNES 1
@@ -247,6 +251,8 @@
static int gc_psx_delay = GC_PSX_DELAY;
module_param_named(psx_delay, gc_psx_delay, uint, 0);
MODULE_PARM_DESC(psx_delay, "Delay when accessing Sony PSX controller (usecs)");
+
+__obsolete_setup("gc_psx_delay=");
__obsolete_setup("gc_psx_delay=");
diff -Nru a/drivers/input/joystick/turbografx.c b/drivers/input/joystick/turbografx.c
--- a/drivers/input/joystick/turbografx.c Sun Feb 29 01:20:26 2004
+++ b/drivers/input/joystick/turbografx.c Sun Feb 29 01:20:26 2004
@@ -61,6 +61,10 @@
__obsolete_setup("tgfx_2=");
__obsolete_setup("tgfx_3=");
+__obsolete_setup("tgfx=");
+__obsolete_setup("tgfx_2=");
+__obsolete_setup("tgfx_3=");
+
#define TGFX_REFRESH_TIME HZ/100 /* 10 ms */
#define TGFX_TRIGGER 0x08
diff -Nru a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
--- a/drivers/input/keyboard/atkbd.c Sun Feb 29 01:20:26 2004
+++ b/drivers/input/keyboard/atkbd.c Sun Feb 29 01:20:26 2004
@@ -48,6 +48,10 @@
module_param_named(softrepeat, atkbd_softrepeat, bool, 0);
MODULE_PARM_DESC(softrepeat, "Use software keyboard repeat");
+__obsolete_setup("atkbd_set=");
+__obsolete_setup("atkbd_reset");
+__obsolete_setup("atkbd_softrepeat=");
+
/*
* Scancode to keycode tables. These are just the default setting, and
* are loadable via an userland utility.
diff -Nru a/drivers/input/mouse/98busmouse.c b/drivers/input/mouse/98busmouse.c
--- a/drivers/input/mouse/98busmouse.c Sun Feb 29 01:20:26 2004
+++ b/drivers/input/mouse/98busmouse.c Sun Feb 29 01:20:26 2004
@@ -74,6 +74,8 @@
module_param_named(irq, pc98bm_irq, uint, 0);
MODULE_PARM_DESC(irq, "IRQ number (13=default)");
+__obsolete_setup("pc98bm_irq=");
+
static int pc98bm_used = 0;
static irqreturn_t pc98bm_interrupt(int irq, void *dev_id, struct pt_regs *regs);
diff -Nru a/drivers/input/mouse/inport.c b/drivers/input/mouse/inport.c
--- a/drivers/input/mouse/inport.c Sun Feb 29 01:20:26 2004
+++ b/drivers/input/mouse/inport.c Sun Feb 29 01:20:26 2004
@@ -85,6 +85,8 @@
module_param_named(irq, inport_irq, uint, 0);
MODULE_PARM_DESC(irq, "IRQ number (5=default)");
+__obsolete_setup("inport_irq=");
+
static int inport_used;
static irqreturn_t inport_interrupt(int irq, void *dev_id, struct pt_regs *regs);
diff -Nru a/drivers/input/mouse/logibm.c b/drivers/input/mouse/logibm.c
--- a/drivers/input/mouse/logibm.c Sun Feb 29 01:20:26 2004
+++ b/drivers/input/mouse/logibm.c Sun Feb 29 01:20:26 2004
@@ -75,6 +75,8 @@
module_param_named(irq, logibm_irq, uint, 0);
MODULE_PARM_DESC(irq, "IRQ number (5=default)");
+__obsolete_setup("logibm_irq=");
+
static int logibm_used = 0;
static irqreturn_t logibm_interrupt(int irq, void *dev_id, struct pt_regs *regs);
diff -Nru a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
--- a/drivers/input/mouse/psmouse-base.c Sun Feb 29 01:20:26 2004
+++ b/drivers/input/mouse/psmouse-base.c Sun Feb 29 01:20:26 2004
@@ -47,6 +47,12 @@
module_param_named(resetafter, psmouse_resetafter, uint, 0);
MODULE_PARM_DESC(resetafter, "Reset Synaptics Touchpad after so many bad packets (0 = never).");
+__obsolete_setup("psmouse_noext");
+__obsolete_setup("psmouse_resolution=");
+__obsolete_setup("psmouse_smartscroll=");
+__obsolete_setup("psmouse_resetafter=");
+__obsolete_setup("psmouse_rate=");
+
static char *psmouse_protocols[] = { "None", "PS/2", "PS2++", "PS2T++", "GenPS/2", "ImPS/2", "ImExPS/2", "SynPS/2"};
/*
diff -Nru a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
--- a/drivers/input/serio/i8042.c Sun Feb 29 01:20:26 2004
+++ b/drivers/input/serio/i8042.c Sun Feb 29 01:20:26 2004
@@ -52,6 +52,13 @@
module_param_named(dumbkbd, i8042_dumbkbd, bool, 0);
MODULE_PARM_DESC(dumbkbd, "Pretend that controller can only read data from keyboard");
+__obsolete_setup("i8042_noaux");
+__obsolete_setup("i8042_nomux");
+__obsolete_setup("i8042_unlock");
+__obsolete_setup("i8042_reset");
+__obsolete_setup("i8042_direct");
+__obsolete_setup("i8042_dumbkbd");
+
#undef DEBUG
#include "i8042.h"
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 0/9] New set of input patches
@ 2004-02-29 14:57 Dmitry Torokhov
0 siblings, 0 replies; 16+ messages in thread
From: Dmitry Torokhov @ 2004-02-29 14:57 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
This is a resend, list seems to have eaten first copy.
Hi Vojtech,
Here is the new set of input patches that I have. You have seen some of
them, buit this time they are rediffed against 2.6.4-rc1 and in nice order.
01-atkbd-whitespace-fixes.patch
simple whitespace fixes
02-atkbd-bad-merge.patch
clean up bad merge in atkbd module (get rid of MODULE_PARMs,
atkbd_softrepeat was declared twice)
03-synaptics-relaxed-proto.patch
some hardware (PowerBook) require relaxed Synaptics protocol checks,
but relaxed checks hurt hardware implementing proper protocol when
device looses sync. With the patch synaptics driver analyzes first
full data packet and either staus in relaxed mode or switches into
strict mode.
04-psmouse-whitespace-fixes.patch
simple whitespace fixes
05-psmouse-workaround-noack.patch
some mice do not ACK "disable streaming mode" command causing psmouse
driver abort initialization without any indication to the user. This
is a regression compared to 2.4. Have kernel complain but continue
with prbing hardware (after all we got valid responce from GET ID
command).
06-module-param-array-named.patch
introduce module_param_array_named() modeled after module_param_named
that allows mapping array module option to
07-joystick-module-param.patch
complete moving input drivers to the new way of handling module
parameters using module_param()
08-obsolete-setup.patch
introduce __obsolete_setup(). This is a drop-in replacement for
__setup() for truly obsolete options. Kernel will complain when sees
such an option.
09-input-obsolete-setup.patch
document removed or renamed options in input drivers using
__obsolete_setup() so users will have some clue why old options
stopped having any effect.
--
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/9] New set of input patches
2004-02-29 6:53 [PATCH 0/9] New set of input patches Dmitry Torokhov
2004-02-29 6:55 ` [PATCH 1/9] atkbd whitespace fixes Dmitry Torokhov
@ 2004-03-02 13:02 ` Vojtech Pavlik
2004-03-02 17:45 ` Dmitry Torokhov
1 sibling, 1 reply; 16+ messages in thread
From: Vojtech Pavlik @ 2004-03-02 13:02 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-kernel
On Sun, Feb 29, 2004 at 01:53:58AM -0500, Dmitry Torokhov wrote:
> Here is the new set of input patches that I have. You have seen some of
> them, buit this time they are rediffed against 2.6.4-rc1 and in nice order.
I like them very much. Do you have a bitkeeper tree anywhere where I
could pull from, so that I don't have to apply these by hand?
> 01-atkbd-whitespace-fixes.patch
> simple whitespace fixes
>
> 02-atkbd-bad-merge.patch
> clean up bad merge in atkbd module (get rid of MODULE_PARMs,
> atkbd_softrepeat was declared twice)
>
> 03-synaptics-relaxed-proto.patch
> some hardware (PowerBook) require relaxed Synaptics protocol checks,
> but relaxed checks hurt hardware implementing proper protocol when
> device looses sync. With the patch synaptics driver analyzes first
> full data packet and either staus in relaxed mode or switches into
> strict mode.
>
> 04-psmouse-whitespace-fixes.patch
> simple whitespace fixes
>
> 05-psmouse-workaround-noack.patch
> some mice do not ACK "disable streaming mode" command causing psmouse
> driver abort initialization without any indication to the user. This
> is a regression compared to 2.4. Have kernel complain but continue
> with prbing hardware (after all we got valid responce from GET ID
> command).
>
> 06-module-param-array-named.patch
> introduce module_param_array_named() modeled after module_param_named
> that allows mapping array module option to
>
> 07-joystick-module-param.patch
> complete moving input drivers to the new way of handling module
> parameters using module_param()
>
> 08-obsolete-setup.patch
> introduce __obsolete_setup(). This is a drop-in replacement for
> __setup() for truly obsolete options. Kernel will complain when sees
> such an option.
>
> 09-input-obsolete-setup.patch
> document removed or renamed options in input drivers using
> __obsolete_setup() so users will have some clue why old options
> stopped having any effect.
--
Vojtech Pavlik
SuSE Labs, SuSE CR
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/9] New set of input patches
2004-03-02 13:02 ` [PATCH 0/9] New set of input patches Vojtech Pavlik
@ 2004-03-02 17:45 ` Dmitry Torokhov
2004-03-02 23:56 ` bkbits hosting (was Re: [PATCH 0/9] New set of input patches) Andy Isaacson
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Torokhov @ 2004-03-02 17:45 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: linux-kernel
On Tuesday 02 March 2004 08:02 am, Vojtech Pavlik wrote:
> On Sun, Feb 29, 2004 at 01:53:58AM -0500, Dmitry Torokhov wrote:
>
> > Here is the new set of input patches that I have. You have seen some of
> > them, buit this time they are rediffed against 2.6.4-rc1 and in nice order.
>
> I like them very much. Do you have a bitkeeper tree anywhere where I
> could pull from, so that I don't have to apply these by hand?
>
No, unfortunately I don't have an accessible tree... Hmm, what does it take
to get an account at kernel.bkbits.net?
--
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread
* bkbits hosting (was Re: [PATCH 0/9] New set of input patches)
2004-03-02 17:45 ` Dmitry Torokhov
@ 2004-03-02 23:56 ` Andy Isaacson
0 siblings, 0 replies; 16+ messages in thread
From: Andy Isaacson @ 2004-03-02 23:56 UTC (permalink / raw)
To: linux-kernel
On Tue, Mar 02, 2004 at 12:45:10PM -0500, Dmitry Torokhov wrote:
> On Tuesday 02 March 2004 08:02 am, Vojtech Pavlik wrote:
> > I like them very much. Do you have a bitkeeper tree anywhere where I
> > could pull from, so that I don't have to apply these by hand?
>
> No, unfortunately I don't have an accessible tree... Hmm, what does it take
> to get an account at kernel.bkbits.net?
I already sent private mail to Dmitry, but it occurs to me that other
developers are probably in the same straits.
The easiest thing to do in this case is to host your patches at
bkbits.net (hostme.bkbits.net, which is different than kernel.bkbits.net
-- kernel is a special case). You don't have to change your workflow at
all, after it's been set up; you end up just pushing to the bkbits
repository when you've got changes to submit.
To set up a hosted project, just follow the directions under
http://www.bitkeeper.com/Hosted.html (the table of contents is on the
left). You can clone Linus' tree to populate your tree initially, then
push your csets from your workstation to hostme.
If any kernel developers have difficulty doing this, drop me a line --
I'm trying to make the process easy and error-free, and I appreciate any
suggestions.
If any kernel developers are having BK workflow problems ("how do I
merge my work with other developers'? How do I keep up-to-date without
generating hundreds of merge csets?") the first thing to do is to read
the BK kernel howto, http://lwn.net/2002/0425/a/bk-thing.php3. If your
questions aren't answered there, send them to me or to the
bitkeeper-users list.
-andy
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 0/9] New set of input patches
@ 2004-05-11 6:24 Dmitry Torokhov
2004-05-11 9:01 ` Vojtech Pavlik
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Torokhov @ 2004-05-11 6:24 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: Andrew Morton, linux-kernel
Hi Vojtech,
I have some more input patches. Nothing too intresting, most of the important
stuff has been posted on LKML before. Here they are:
01-serio-whitespace.patch:
trailing whitespace fixes in drivers/input/serio
02-kbd98io-interrupt.patch:
kbd98io_interrupt should return irqreturn_t
03-kdb98-interrupt.patch:
kbd98_interrupt should return irqreturn_t
04-h3600-fixes.patch:
various fixes for H3600 touchscreen driver
- h3600ts_interrupt, npower_button_handler and action_button_handler
should return irqreturn_t
- fix missing argument in h3600ts_process_packet call
- add MODULE_AUTHOR, MODULE_DESCRIPTION and MODULE_LICENSE
- small formatting changes
It still does not compile because of bad PM_ constants though
05-twidjoy-fixes.patch:
- twidjoy_interrupt should return irqreturn_t
- add MODULE_DESCRIPTION and MODULE_LICENSE
06-keyboard-whitespace.patch:
trailing whitespace fixes in drivers/input/keyboard
07-power-license.patch:
power - add MODULE_LICENSE
08-joystick-whitespace.patch:
trailing whitespace fixes in drivers/input/joystick
09-gameport-whitespace.patch:
trailing whitespace fixes in drivers/input/gameport
10-input-whitespace.patch:
trailing whitespace fixes in drivers/input
11-synaptics-reconnect.patch:
do not call synaptics_init unless we are ready to do full
mouse setup or we can oops on resume
12-i8042-interrupt.patch:
split i8042 interrupt handling into an IRQ handler and a tasklet,
as with mousedev, evdev and so on we were doing too much work in
IRQ context
13-i8042-unload.patch:
Patch from Sau Dan Lee
Kill the timer only after removing interrupt handler,
otherwise there is a chance that interrupt handler will install
the timer again and it will trigger after module is unloaded.
14-mousedev-multiplexing.patch:
better multiplex absolute and relative devices; cleanups
I did merge with Linus' tree to resolve conflicts with Eric's latest
changes to logips2pp (hope he does not mind). Please do:
bk pull bk://dtor.bkbits.net/input
The following patches are against your tree rather then Linis' and I will
not post whitespace fixing patches as they are too boring...
There is also a cumulative patch agains Linus' tree at:
http://www.geocities.com/dt_or/input/2_6_6/input-cumulative.patch.gz
--
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/9] New set of input patches
2004-05-11 6:24 Dmitry Torokhov
@ 2004-05-11 9:01 ` Vojtech Pavlik
0 siblings, 0 replies; 16+ messages in thread
From: Vojtech Pavlik @ 2004-05-11 9:01 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: Andrew Morton, linux-kernel
On Tue, May 11, 2004 at 01:24:14AM -0500, Dmitry Torokhov wrote:
> Hi Vojtech,
>
> I have some more input patches. Nothing too intresting, most of the important
> stuff has been posted on LKML before. Here they are:
All look good. Thanks!
> I did merge with Linus' tree to resolve conflicts with Eric's latest
> changes to logips2pp (hope he does not mind). Please do:
> bk pull bk://dtor.bkbits.net/input
That's very nice. So the MX700 support is still in? (Well, I'll pull and
see).
> The following patches are against your tree rather then Linis' and I will
> not post whitespace fixing patches as they are too boring...
>
> There is also a cumulative patch agains Linus' tree at:
> http://www.geocities.com/dt_or/input/2_6_6/input-cumulative.patch.gz
--
Vojtech Pavlik
SuSE Labs, SuSE CR
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2004-05-11 9:03 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-02-29 6:53 [PATCH 0/9] New set of input patches Dmitry Torokhov
2004-02-29 6:55 ` [PATCH 1/9] atkbd whitespace fixes Dmitry Torokhov
2004-02-29 6:55 ` [PATCH 2/9] atkbd bad merge Dmitry Torokhov
2004-02-29 6:56 ` [PATCH 3/9] synaptics strict/relaxed protocol checks Dmitry Torokhov
2004-02-29 6:58 ` [PATCH 4/9] psmouse whitespace fixes Dmitry Torokhov
2004-02-29 6:58 ` [PATCH 5/9] psmouse broken hardware workaround Dmitry Torokhov
2004-02-29 7:00 ` [PATCH 6/9] introduce module_param_array_named Dmitry Torokhov
2004-02-29 7:01 ` [PATCH 7/9] Move joysticks to the module_param way of handling options Dmitry Torokhov
2004-02-29 7:02 ` [PATCH 8/9] introduce __obsolete_setup Dmitry Torokhov
2004-02-29 7:03 ` [PATCH 9/9] Document removed input options using __obsolete_setup Dmitry Torokhov
2004-03-02 13:02 ` [PATCH 0/9] New set of input patches Vojtech Pavlik
2004-03-02 17:45 ` Dmitry Torokhov
2004-03-02 23:56 ` bkbits hosting (was Re: [PATCH 0/9] New set of input patches) Andy Isaacson
-- strict thread matches above, loose matches on Subject: below --
2004-02-29 14:57 [PATCH 0/9] New set of input patches Dmitry Torokhov
2004-05-11 6:24 Dmitry Torokhov
2004-05-11 9:01 ` Vojtech Pavlik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox