|
@@ -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;
|