Here is a patch that implements CONFIG_MOUSE_PS2_SYNAPTICS properly,
so that the synaptics code is not included in the driver when
synaptics support is disabled in .config. The patch also updates the
Kconfig help text.
linux-petero/drivers/input/mouse/Kconfig | 12 +++++-------
linux-petero/drivers/input/mouse/Makefile | 3 ++-
linux-petero/drivers/input/mouse/synaptics.c | 4 ----
linux-petero/drivers/input/mouse/synaptics.h | 7 +++++++
4 files changed, 14 insertions(+), 12 deletions(-)
diff -puN drivers/input/mouse/Kconfig~synaptics-config-cleanup drivers/input/mouse/Kconfig
--- linux/drivers/input/mouse/Kconfig~synaptics-config-cleanup 2003-09-28 07:07:29.000000000 +0200
+++ linux-petero/drivers/input/mouse/Kconfig 2003-09-28 07:07:29.000000000 +0200
@@ -35,13 +35,11 @@ config MOUSE_PS2_SYNAPTICS
Say Y here if you have a Synaptics TouchPad connected to your system.
This touchpad is found on many modern laptop computers.
- Note that you also need a user space driver to interpret the data
- generated by the kernel. A compatible driver for XFree86 is available
- from http://w1.894.telia.com/~u89404340/touchpad/index.html
-
- The gpm program is not yet able to interpret the data from this
- driver, so if you need to use the touchpad in the console, you have to
- say N for now.
+ Note that you also need a user space driver to take advantage of the
+ advanced features of the touchpad. A compatible driver for XFree86 is
+ available from http://w1.894.telia.com/~u89404340/touchpad/index.html
+ and a new version of GPM is available from
+ http://www.geocities.com/dt_or/gpm/gpm.html
config MOUSE_SERIAL
tristate "Serial mouse"
diff -puN drivers/input/mouse/Makefile~synaptics-config-cleanup drivers/input/mouse/Makefile
--- linux/drivers/input/mouse/Makefile~synaptics-config-cleanup 2003-09-28 07:07:29.000000000 +0200
+++ linux-petero/drivers/input/mouse/Makefile 2003-09-28 07:07:29.000000000 +0200
@@ -14,4 +14,5 @@ obj-$(CONFIG_MOUSE_PC9800) += 98busmouse
obj-$(CONFIG_MOUSE_PS2) += psmouse.o
obj-$(CONFIG_MOUSE_SERIAL) += sermouse.o
-psmouse-objs := psmouse-base.o logips2pp.o synaptics.o
+psmouse-objs := psmouse-base.o logips2pp.o
+psmouse-$(CONFIG_MOUSE_PS2_SYNAPTICS) += synaptics.o
diff -puN drivers/input/mouse/synaptics.c~synaptics-config-cleanup drivers/input/mouse/synaptics.c
--- linux/drivers/input/mouse/synaptics.c~synaptics-config-cleanup 2003-09-28 07:07:29.000000000 +0200
+++ linux-petero/drivers/input/mouse/synaptics.c 2003-09-28 07:07:29.000000000 +0200
@@ -375,10 +375,6 @@ int synaptics_init(struct psmouse *psmou
{
struct synaptics_data *priv;
-#ifndef CONFIG_MOUSE_PS2_SYNAPTICS
- return -1;
-#endif
-
psmouse->private = priv = kmalloc(sizeof(struct synaptics_data), GFP_KERNEL);
if (!priv)
return -1;
diff -puN drivers/input/mouse/synaptics.h~synaptics-config-cleanup drivers/input/mouse/synaptics.h
--- linux/drivers/input/mouse/synaptics.h~synaptics-config-cleanup 2003-09-28 07:07:29.000000000 +0200
+++ linux-petero/drivers/input/mouse/synaptics.h 2003-09-28 07:07:29.000000000 +0200
@@ -10,10 +10,17 @@
#define _SYNAPTICS_H
+#ifdef CONFIG_MOUSE_PS2_SYNAPTICS
extern void synaptics_process_byte(struct psmouse *psmouse, struct pt_regs *regs);
extern int synaptics_init(struct psmouse *psmouse);
extern int synaptics_pt_init(struct psmouse *psmouse);
extern void synaptics_disconnect(struct psmouse *psmouse);
+#else
+static inline void synaptics_process_byte(struct psmouse *psmouse, struct pt_regs *regs) {}
+static inline int synaptics_init(struct psmouse *psmouse) { return -1; }
+static inline int synaptics_pt_init(struct psmouse *psmouse) { return -1; }
+static inline void synaptics_disconnect(struct psmouse *psmouse) {}
+#endif
/* synaptics queries */
#define SYN_QUE_IDENTIFY 0x00
_
--
Peter Osterlund - [email protected]
http://w1.894.telia.com/~u89404340