Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: synaptics - fix setting packet size on passthrough port.

Synaptics driver used child->type to select either 3-byte or 4-byte
packet size for the pass-through port; this gives wrong results for
the newer protocols. Change the check to use child->pktsize instead.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

authored by

Sergey Vlasov and committed by
Dmitry Torokhov
33fdfa97 5ac7ba3f

+2 -2
+2 -2
drivers/input/mouse/synaptics.c
··· 219 219 serio_interrupt(ptport, packet[1], 0, NULL); 220 220 serio_interrupt(ptport, packet[4], 0, NULL); 221 221 serio_interrupt(ptport, packet[5], 0, NULL); 222 - if (child->type >= PSMOUSE_GENPS) 222 + if (child->pktsize == 4) 223 223 serio_interrupt(ptport, packet[2], 0, NULL); 224 224 } else 225 225 serio_interrupt(ptport, packet[1], 0, NULL); ··· 233 233 234 234 /* adjust the touchpad to child's choice of protocol */ 235 235 if (child) { 236 - if (child->type >= PSMOUSE_GENPS) 236 + if (child->pktsize == 4) 237 237 priv->mode |= SYN_BIT_FOUR_BYTE_CLIENT; 238 238 else 239 239 priv->mode &= ~SYN_BIT_FOUR_BYTE_CLIENT;