Input: elantech - trust firmware about trackpoint presence
Only try to parse data as coming from trackpoint if firmware told us that
trackpoint is present.
Fixes commit caeb0d37fa
Reported-and-tested-by: Marcus Overhagen <marcus.overhagen@gmail.com>
Reported-and-tested-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
bce4f9e764
commit
d0ab54783f
@ -428,14 +428,6 @@ static void elantech_report_trackpoint(struct psmouse *psmouse,
|
|||||||
int x, y;
|
int x, y;
|
||||||
u32 t;
|
u32 t;
|
||||||
|
|
||||||
if (dev_WARN_ONCE(&psmouse->ps2dev.serio->dev,
|
|
||||||
!tp_dev,
|
|
||||||
psmouse_fmt("Unexpected trackpoint message\n"))) {
|
|
||||||
if (etd->debug == 1)
|
|
||||||
elantech_packet_dump(psmouse);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
t = get_unaligned_le32(&packet[0]);
|
t = get_unaligned_le32(&packet[0]);
|
||||||
|
|
||||||
switch (t & ~7U) {
|
switch (t & ~7U) {
|
||||||
@ -793,7 +785,7 @@ static int elantech_packet_check_v4(struct psmouse *psmouse)
|
|||||||
unsigned char packet_type = packet[3] & 0x03;
|
unsigned char packet_type = packet[3] & 0x03;
|
||||||
bool sanity_check;
|
bool sanity_check;
|
||||||
|
|
||||||
if ((packet[3] & 0x0f) == 0x06)
|
if (etd->tp_dev && (packet[3] & 0x0f) == 0x06)
|
||||||
return PACKET_TRACKPOINT;
|
return PACKET_TRACKPOINT;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user