|
@@ -952,7 +952,9 @@ static const struct alps_model_info *alps_get_model(struct psmouse *psmouse, int
|
|
|
|
|
|
/*
|
|
|
* First try "E6 report".
|
|
|
- * ALPS should return 0,0,10 or 0,0,100
|
|
|
+ * ALPS should return 0,0,10 or 0,0,100 if no buttons are pressed.
|
|
|
+ * The bits 0-2 of the first byte will be 1s if some buttons are
|
|
|
+ * pressed.
|
|
|
*/
|
|
|
param[0] = 0;
|
|
|
if (ps2_command(ps2dev, param, PSMOUSE_CMD_SETRES) ||
|
|
@@ -968,7 +970,8 @@ static const struct alps_model_info *alps_get_model(struct psmouse *psmouse, int
|
|
|
psmouse_dbg(psmouse, "E6 report: %2.2x %2.2x %2.2x",
|
|
|
param[0], param[1], param[2]);
|
|
|
|
|
|
- if (param[0] != 0 || param[1] != 0 || (param[2] != 10 && param[2] != 100))
|
|
|
+ if ((param[0] & 0xf8) != 0 || param[1] != 0 ||
|
|
|
+ (param[2] != 10 && param[2] != 100))
|
|
|
return NULL;
|
|
|
|
|
|
/*
|