>From ba82c3e427cd9e319e5d8898c2f730589da698a6 Mon Sep 17 00:00:00 2001 From: Andres Salomon Date: Tue, 26 Dec 2006 17:13:42 -0500 Subject: [PATCH] Allow disabling of synaptic protocol extension This allows disabling of synaptic; basically, it leaves synaptic_detect() and synaptic_reset() (for synaptic hardware emulating other protocols), but gets rid of synaptic_init. Signed-off-by: Andres Salomon --- drivers/input/mouse/Makefile | 6 +----- drivers/input/mouse/psmouse-base.c | 5 +++++ drivers/input/mouse/synaptics.c | 34 ++++++++++++++++++++++------------ 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/drivers/input/mouse/Makefile b/drivers/input/mouse/Makefile index e7c7fbb..76722ec 100644 --- a/drivers/input/mouse/Makefile +++ b/drivers/input/mouse/Makefile @@ -14,7 +14,7 @@ obj-$(CONFIG_MOUSE_SERIAL) += sermouse.o obj-$(CONFIG_MOUSE_HIL) += hil_ptr.o obj-$(CONFIG_MOUSE_VSXXXAA) += vsxxxaa.o -psmouse-objs := psmouse-base.o +psmouse-objs := psmouse-base.o synaptics.o ifeq ($(CONFIG_MOUSE_PS2_ALPS),y) psmouse-objs += alps.o @@ -24,10 +24,6 @@ ifeq ($(CONFIG_MOUSE_PS2_LOGIPS2PP),y) psmouse-objs += logips2pp.o endif -ifeq ($(CONFIG_MOUSE_PS2_SYNAPTICS),y) -psmouse-objs += synaptics.o -endif - ifeq ($(CONFIG_MOUSE_PS2_LIFEBOOK),y) psmouse-objs += lifebook.o endif diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c index 6b3ac9d..bfb47e1 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c @@ -583,8 +583,11 @@ #endif synaptics_hardware = 1; if (max_proto > PSMOUSE_IMEX) { +#ifdef CONFIG_MOUSE_PS2_SYNAPTICS if (!set_properties || synaptics_init(psmouse) == 0) return PSMOUSE_SYNAPTICS; +#endif + /* * Some Synaptics touchpads can emulate extended protocols (like IMPS/2). * Unfortunately Logitech/Genius probes confuse some firmware versions so @@ -702,6 +705,7 @@ #endif .maxproto = 1, .detect = im_explorer_detect, }, +#ifdef CONFIG_MOUSE_PS2_SYNAPTICS { .type = PSMOUSE_SYNAPTICS, .name = "SynPS/2", @@ -709,6 +713,7 @@ #endif .detect = synaptics_detect, .init = synaptics_init, }, +#endif #ifdef CONFIG_MOUSE_PS2_ALPS { .type = PSMOUSE_ALPS, diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c index 49ac696..5d69f52 100644 --- a/drivers/input/mouse/synaptics.c +++ b/drivers/input/mouse/synaptics.c @@ -45,28 +45,30 @@ #define YMAX_NOMINAL 4448 ****************************************************************************/ /* - * Send a command to the synpatics touchpad by special commands + * Set the synaptics touchpad mode byte by special commands */ -static int synaptics_send_cmd(struct psmouse *psmouse, unsigned char c, unsigned char *param) +static int synaptics_mode_cmd(struct psmouse *psmouse, unsigned char mode) { - if (psmouse_sliced_command(psmouse, c)) + unsigned char param[1]; + + if (psmouse_sliced_command(psmouse, mode)) return -1; - if (ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETINFO)) + param[0] = SYN_PS_SET_MODE2; + if (ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_SETRATE)) return -1; return 0; } +#ifdef CONFIG_MOUSE_PS2_SYNAPTICS + /* - * Set the synaptics touchpad mode byte by special commands + * Send a command to the synpatics touchpad by special commands */ -static int synaptics_mode_cmd(struct psmouse *psmouse, unsigned char mode) +static int synaptics_send_cmd(struct psmouse *psmouse, unsigned char c, unsigned char *param) { - unsigned char param[1]; - - if (psmouse_sliced_command(psmouse, mode)) + if (psmouse_sliced_command(psmouse, c)) return -1; - param[0] = SYN_PS_SET_MODE2; - if (ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_SETRATE)) + if (ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETINFO)) return -1; return 0; } @@ -529,12 +531,16 @@ static void set_input_params(struct inpu clear_bit(REL_Y, dev->relbit); } +#endif /* CONFIG_MOUSE_PS2_SYNAPTICS */ + void synaptics_reset(struct psmouse *psmouse) { /* reset touchpad back to relative mode, gestures enabled */ synaptics_mode_cmd(psmouse, 0); } +#ifdef CONFIG_MOUSE_PS2_SYNAPTICS + static void synaptics_disconnect(struct psmouse *psmouse) { synaptics_reset(psmouse); @@ -569,6 +575,8 @@ static int synaptics_reconnect(struct ps return 0; } +#endif /* CONFIG_MOUSE_PS2_SYNAPTICS */ + int synaptics_detect(struct psmouse *psmouse, int set_properties) { struct ps2dev *ps2dev = &psmouse->ps2dev; @@ -593,6 +601,8 @@ int synaptics_detect(struct psmouse *psm return 0; } +#ifdef CONFIG_MOUSE_PS2_SYNAPTICS + #if defined(__i386__) #include static struct dmi_system_id toshiba_dmi_table[] = { @@ -679,4 +689,4 @@ #endif return -1; } - +#endif /* CONFIG_MOUSE_PS2_SYNAPTICS */ -- 1.4.1