Hi Dmitry,
the patch is trivial:
E7 report is 73 03 0a
command mode response is 88 08 1c
absolute mode controlled by register c2c4
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index cf5af1f..1b640f2 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -112,6 +112,7 @@ static const struct alps_model_info
alps_model_data[] = {
{ { 0x73, 0x02, 0x64 }, 0x9b, ALPS_PROTO_V3, 0x8f, 0x8f,
ALPS_DUALPOINT },
{ { 0x73, 0x02, 0x64 }, 0x9d, ALPS_PROTO_V3, 0x8f, 0x8f,
ALPS_DUALPOINT },
{ { 0x73, 0x02, 0x64 }, 0x8a, ALPS_PROTO_V4, 0x8f, 0x8f, 0 },
+ { { 0x73, 0x03, 0x0a }, 0x1c, ALPS_PROTO_V3, 0x8f, 0x8f, 0 },
};
/*
@@ -983,7 +984,7 @@ static int alps_enter_command_mode(struct psmouse
*psmouse,
return -1;
}
- if (param[0] != 0x88 && param[1] != 0x07) {
+ if (param[0] != 0x88 && param[1] != 0x07 && param[1] != 0x08) {
psmouse_dbg(psmouse,
"unknown response while entering command
mode: %2.2x %2.2x %2.2x\n",
param[0], param[1], param[2]);
@@ -1302,6 +1303,12 @@ static int alps_hw_init_v3(struct psmouse *psmouse)
if (alps_enter_command_mode(psmouse, NULL))
goto error;
+ reg_val = alps_command_mode_read_reg(psmouse, 0xc2c8);
+ if (reg_val == 0) {
+ if (alps_command_mode_write_reg(psmouse, 0xc2c4, 0x02))
+ goto error;
+ }
+
/* Check for trackstick */
reg_val = alps_command_mode_read_reg(psmouse, 0x0008);
if (reg_val == -1)
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html