]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/input/mouse/elantech.c
Input: elantech - fix for newer hardware versions (v7)
[karo-tx-linux.git] / drivers / input / mouse / elantech.c
index 1e8e42fb03a4258d0b04f34d5872440ee293fe5b..57b2637e153a1603db3ed62bc4968135b7b0f868 100644 (file)
@@ -694,18 +694,18 @@ static int elantech_packet_check_v3(struct psmouse *psmouse)
 static int elantech_packet_check_v4(struct psmouse *psmouse)
 {
        unsigned char *packet = psmouse->packet;
+       unsigned char packet_type = packet[3] & 0x03;
 
-       if ((packet[0] & 0x0c) == 0x04 &&
-           (packet[3] & 0x1f) == 0x11)
+       switch (packet_type) {
+       case 0:
+               return PACKET_V4_STATUS;
+
+       case 1:
                return PACKET_V4_HEAD;
 
-       if ((packet[0] & 0x0c) == 0x04 &&
-           (packet[3] & 0x1f) == 0x12)
+       case 2:
                return PACKET_V4_MOTION;
-
-       if ((packet[0] & 0x0c) == 0x04 &&
-           (packet[3] & 0x1f) == 0x10)
-               return PACKET_V4_STATUS;
+       }
 
        return PACKET_UNKNOWN;
 }
@@ -1282,6 +1282,7 @@ static int elantech_set_properties(struct elantech_data *etd)
                        etd->hw_version = 3;
                        break;
                case 6:
+               case 7:
                        etd->hw_version = 4;
                        break;
                default: