aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/input/mouse/elantech.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index 1e8e42fb03a4..57b2637e153a 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -694,18 +694,18 @@ static int elantech_packet_check_v3(struct psmouse *psmouse)
694static int elantech_packet_check_v4(struct psmouse *psmouse) 694static int elantech_packet_check_v4(struct psmouse *psmouse)
695{ 695{
696 unsigned char *packet = psmouse->packet; 696 unsigned char *packet = psmouse->packet;
697 unsigned char packet_type = packet[3] & 0x03;
697 698
698 if ((packet[0] & 0x0c) == 0x04 && 699 switch (packet_type) {
699 (packet[3] & 0x1f) == 0x11) 700 case 0:
701 return PACKET_V4_STATUS;
702
703 case 1:
700 return PACKET_V4_HEAD; 704 return PACKET_V4_HEAD;
701 705
702 if ((packet[0] & 0x0c) == 0x04 && 706 case 2:
703 (packet[3] & 0x1f) == 0x12)
704 return PACKET_V4_MOTION; 707 return PACKET_V4_MOTION;
705 708 }
706 if ((packet[0] & 0x0c) == 0x04 &&
707 (packet[3] & 0x1f) == 0x10)
708 return PACKET_V4_STATUS;
709 709
710 return PACKET_UNKNOWN; 710 return PACKET_UNKNOWN;
711} 711}
@@ -1282,6 +1282,7 @@ static int elantech_set_properties(struct elantech_data *etd)
1282 etd->hw_version = 3; 1282 etd->hw_version = 3;
1283 break; 1283 break;
1284 case 6: 1284 case 6:
1285 case 7:
1285 etd->hw_version = 4; 1286 etd->hw_version = 4;
1286 break; 1287 break;
1287 default: 1288 default: