diff mbox

[PATCHv2] Input: Add Alps touchpad 73 03 0a support

Message ID 506FC3B7.7050403@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Pavel Bludov Oct. 6, 2012, 5:37 a.m. UTC
04.10.2012 16:25, Dmitry Torokhov wrote:
> It looks like you mailer mangled the patch by line-wrapping it, and I
> would also need your "Signed-off-by: ..." to be able to apply the patch.

Thank you for your patience, Dmitry!

I have throughly read
http://www.kernel.org/doc/Documentation/SubmittingPatches
http://kb.mozillazine.org/Plain_text_e-mail_%28Thunderbird%29
and there is a new version:

Support for alps touchpad found in Intel Latexo notebook.
E7 report is 73 03 0a
command mode response is 88 08 1c
absolute mode controlled by register c2c4

Tested on Intel Latexo with 3.6 kernel.

Signed-off-by: Pavel Bludov <pbludov@gmail.com>


--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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)