diff options
-rw-r--r-- | drivers/input/mouse/olpc.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/input/mouse/olpc.c b/drivers/input/mouse/olpc.c index f127dc081d39..dc24e351b463 100644 --- a/drivers/input/mouse/olpc.c +++ b/drivers/input/mouse/olpc.c @@ -245,8 +245,12 @@ static int hgpk_force_recalibrate(struct psmouse *psmouse) if (ps2_command(ps2dev, NULL, 0xf5) || ps2_command(ps2dev, NULL, 0xf5) || ps2_command(ps2dev, NULL, 0xe6) || - ps2_command(ps2dev, NULL, 0xf5)) + ps2_command(ps2dev, NULL, 0xf5)) { + psmouse_set_state(psmouse, PSMOUSE_ACTIVATED); + queue_delayed_work(kpsmoused_wq, &priv->recalib_wq, + msecs_to_jiffies(500)); return -1; + } /* according to ALPS, 150mS is required for recalibration */ @@ -258,8 +262,12 @@ static int hgpk_force_recalibrate(struct psmouse *psmouse) * we may need to work around that here. */ - if (ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE)) + if (ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE)) { + psmouse_set_state(psmouse, PSMOUSE_ACTIVATED); + queue_delayed_work(kpsmoused_wq, &priv->recalib_wq, + msecs_to_jiffies(500)); return -1; + } psmouse_set_state(psmouse, PSMOUSE_ACTIVATED); |