Input: psmouse - don't leave mouse asleep
[powerpc.git] / drivers / input / mouse / psmouse-base.c
index 6ee9999..4d5ecc0 100644 (file)
@@ -527,11 +527,15 @@ static int psmouse_extensions(struct psmouse *psmouse,
        if (max_proto > PSMOUSE_IMEX && ps2pp_init(psmouse, set_properties) == 0)
                return PSMOUSE_PS2PP;
 
+       if (max_proto > PSMOUSE_IMEX && trackpoint_detect(psmouse, set_properties) == 0)
+               return PSMOUSE_TRACKPOINT;
+
 /*
  * Reset to defaults in case the device got confused by extended
- * protocol probes.
+ * protocol probes. Note that we do full reset becuase some mice
+ * put themselves to sleep when see PSMOUSE_RESET_DIS.
  */
-       ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
+       psmouse_reset(psmouse);
 
        if (max_proto >= PSMOUSE_IMEX && im_explorer_detect(psmouse, set_properties) == 0)
                return PSMOUSE_IMEX;
@@ -539,12 +543,6 @@ static int psmouse_extensions(struct psmouse *psmouse,
        if (max_proto >= PSMOUSE_IMPS && intellimouse_detect(psmouse, set_properties) == 0)
                return PSMOUSE_IMPS;
 
-/*
- * Try to initialize the IBM TrackPoint
- */
-       if (max_proto > PSMOUSE_IMEX && trackpoint_detect(psmouse, set_properties) == 0)
-               return PSMOUSE_TRACKPOINT;
-
 /*
  * Okay, all failed, we have a standard mouse here. The number of the buttons
  * is still a question, though. We assume 3.
@@ -559,7 +557,6 @@ static int psmouse_extensions(struct psmouse *psmouse,
  * extensions.
  */
                psmouse_reset(psmouse);
-               ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
        }
 
        return PSMOUSE_PS2;