Input: ALPS - fix wheel decoding
authorVojtech Pavlik <vojtech@suse.cz>
Sun, 4 Sep 2005 06:40:43 +0000 (01:40 -0500)
committerDmitry Torokhov <dtor_core@ameritech.net>
Sun, 4 Sep 2005 06:40:43 +0000 (01:40 -0500)
Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

drivers/input/mouse/alps.c

index 0d68e5e..b20783f 100644 (file)
@@ -170,7 +170,7 @@ static void alps_process_packet(struct psmouse *psmouse, struct pt_regs *regs)
        input_report_key(dev, BTN_TOOL_FINGER, z > 0);
 
        if (priv->i->flags & ALPS_WHEEL)
-               input_report_rel(dev, REL_WHEEL, ((packet[0] >> 4) & 0x07) | ((packet[2] >> 2) & 0x08));
+               input_report_rel(dev, REL_WHEEL, ((packet[2] << 1) & 0x08) - ((packet[0] >> 4) & 0x07));
 
        if (priv->i->flags & (ALPS_FW_BK_1 | ALPS_FW_BK_2)) {
                input_report_key(dev, BTN_FORWARD, forward);