From: Dmitry Torokhov - Remove psmouse_pm_callback since i8042 now has its own resume handler which will issue reconnect request - Do not close/open serio port in psmouse_reconnect since i8042 should restore ports to the proper state before calling reconnect drivers/input/mouse/psmouse-base.c | 35 ----------------------------------- 1 files changed, 35 deletions(-) diff -puN drivers/input/mouse/psmouse-base.c~input-05-psmouse-fixes drivers/input/mouse/psmouse-base.c --- 25/drivers/input/mouse/psmouse-base.c~input-05-psmouse-fixes 2003-12-16 22:47:38.000000000 -0800 +++ 25-akpm/drivers/input/mouse/psmouse-base.c 2003-12-16 22:47:38.000000000 -0800 @@ -18,7 +18,6 @@ #include #include #include -#include #include "psmouse.h" #include "synaptics.h" #include "logips2pp.h" @@ -537,28 +536,12 @@ static void psmouse_disconnect(struct se } /* - * Reinitialize mouse hardware after software suspend. - */ - -static int psmouse_pm_callback(struct pm_dev *dev, pm_request_t request, void *data) -{ - struct psmouse *psmouse = dev->data; - - if (request == PM_RESUME) { - psmouse->state = PSMOUSE_IGNORE; - serio_reconnect(psmouse->serio); - } - return 0; -} - -/* * psmouse_connect() is a callback from the serio module when * an unhandled serio port is found. */ static void psmouse_connect(struct serio *serio, struct serio_dev *dev) { struct psmouse *psmouse; - struct pm_dev *pmdev; if ((serio->type & SERIO_TYPE) != SERIO_8042 && (serio->type & SERIO_TYPE) != SERIO_PS_PSTHRU) @@ -590,14 +573,6 @@ static void psmouse_connect(struct serio return; } - if (serio->type != SERIO_PS_PSTHRU) { - pmdev = pm_register(PM_SYS_DEV, PM_SYS_UNKNOWN, psmouse_pm_callback); - if (pmdev) { - psmouse->dev.pm_dev = pmdev; - pmdev->data = psmouse; - } - } - sprintf(psmouse->devname, "%s %s %s", psmouse_protocols[psmouse->type], psmouse->vendor, psmouse->name); sprintf(psmouse->phys, "%s/input0", @@ -638,16 +613,6 @@ static int psmouse_reconnect(struct seri return -1; } - /* We need to reopen the serio port to reinitialize the i8042 controller */ - serio_close(serio); - if (serio_open(serio, dev)) { - /* do a disconnect here as serio_open leaves dev as NULL so disconnect - * will not be called automatically later - */ - psmouse_disconnect(serio); - return -1; - } - psmouse->state = PSMOUSE_NEW_DEVICE; psmouse->type = psmouse->acking = psmouse->cmdcnt = psmouse->pktcnt = 0; if (psmouse->reconnect) { _