summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPeter Osterlund <petero2@telia.com>2003-09-18 10:20:17 -0700
committerVojtech Pavlik <vojtech@kernel.bkbits.net>2003-09-18 10:20:17 -0700
commit1fce5019b48910237ef0752a43dbe3ea0bb451e4 (patch)
tree9533896cdb80031efecf0ae5abf0f8994d194be6 /drivers
parent3ad142f9b2a745578b107829b2bacad90b7ee80f (diff)
synaptics.c, psmouse-base.c:
input: Restore synaptics pad mode on module unload.
Diffstat (limited to 'drivers')
-rw-r--r--drivers/input/mouse/psmouse-base.c3
-rw-r--r--drivers/input/mouse/synaptics.c7
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
index 030d23149e2e..c97fd2db0f41 100644
--- a/drivers/input/mouse/psmouse-base.c
+++ b/drivers/input/mouse/psmouse-base.c
@@ -478,9 +478,10 @@ static void psmouse_cleanup(struct serio *serio)
static void psmouse_disconnect(struct serio *serio)
{
struct psmouse *psmouse = serio->private;
+ if (psmouse->type == PSMOUSE_SYNAPTICS)
+ synaptics_disconnect(psmouse);
input_unregister_device(&psmouse->dev);
serio_close(serio);
- synaptics_disconnect(psmouse);
kfree(psmouse);
}
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 5fa695eb774e..de950db4aa8f 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -144,7 +144,7 @@ static int synaptics_enable_device(struct psmouse *psmouse)
static void print_ident(struct synaptics_data *priv)
{
printk(KERN_INFO "Synaptics Touchpad, model: %ld\n", SYN_ID_MODEL(priv->identity));
- printk(KERN_INFO " Firware: %ld.%ld\n", SYN_ID_MAJOR(priv->identity),
+ printk(KERN_INFO " Firmware: %ld.%ld\n", SYN_ID_MAJOR(priv->identity),
SYN_ID_MINOR(priv->identity));
if (SYN_MODEL_ROT180(priv->model_id))
@@ -228,7 +228,7 @@ int synaptics_init(struct psmouse *psmouse)
/*
* The x/y limits are taken from the Synaptics TouchPad interfacing Guide,
* which says that they should be valid regardless of the actual size of
- * the senser.
+ * the sensor.
*/
set_bit(EV_ABS, psmouse->dev.evbit);
set_abs_params(&psmouse->dev, ABS_X, 1472, 5472, 0, 0);
@@ -259,6 +259,9 @@ void synaptics_disconnect(struct psmouse *psmouse)
{
struct synaptics_data *priv = psmouse->private;
+ /* Restore touchpad to power on default state */
+ synaptics_set_mode(psmouse, 0);
+
kfree(priv);
}