Input: synaptics - fix setting packet size on passthrough port.
Sergey Vlasov [Sun, 24 Jul 2005 05:53:32 +0000 (00:53 -0500)]
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>

drivers/input/mouse/synaptics.c

index 39cc1e5..0293094 100644 (file)
@@ -219,7 +219,7 @@ static void synaptics_pass_pt_packet(struct serio *ptport, unsigned char *packet
                serio_interrupt(ptport, packet[1], 0, NULL);
                serio_interrupt(ptport, packet[4], 0, NULL);
                serio_interrupt(ptport, packet[5], 0, NULL);
-               if (child->type >= PSMOUSE_GENPS)
+               if (child->pktsize == 4)
                        serio_interrupt(ptport, packet[2], 0, NULL);
        } else
                serio_interrupt(ptport, packet[1], 0, NULL);
@@ -233,7 +233,7 @@ static void synaptics_pt_activate(struct psmouse *psmouse)
 
        /* adjust the touchpad to child's choice of protocol */
        if (child) {
-               if (child->type >= PSMOUSE_GENPS)
+               if (child->pktsize == 4)
                        priv->mode |= SYN_BIT_FOUR_BYTE_CLIENT;
                else
                        priv->mode &= ~SYN_BIT_FOUR_BYTE_CLIENT;