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

Input: ALPS - report v3 pinnacle trackstick device only if is present

This patch moves v3 pinnacle code for trackstick detection from
alps_hw_init_v3() to alps_set_protocol() so ALPS_DUALPOINT flag can be
cleared before registering trackstick input device in kernel.

Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

authored by

Pali Rohár and committed by
Dmitry Torokhov
4b1af853 dae928ec

+7 -5
+7 -5
drivers/input/mouse/alps.c
··· 2129 2129 2130 2130 static int alps_hw_init_v3(struct psmouse *psmouse) 2131 2131 { 2132 + struct alps_data *priv = psmouse->private; 2132 2133 struct ps2dev *ps2dev = &psmouse->ps2dev; 2133 2134 int reg_val; 2134 2135 unsigned char param[4]; 2135 2136 2136 - reg_val = alps_probe_trackstick_v3_v7(psmouse, ALPS_REG_BASE_PINNACLE); 2137 - if (reg_val == -EIO) 2138 - goto error; 2139 - 2140 - if (reg_val == 0 && 2137 + if ((priv->flags & ALPS_DUALPOINT) && 2141 2138 alps_setup_trackstick_v3(psmouse, ALPS_REG_BASE_PINNACLE) == -EIO) 2142 2139 goto error; 2143 2140 ··· 2611 2614 priv->decode_fields = alps_decode_pinnacle; 2612 2615 priv->nibble_commands = alps_v3_nibble_commands; 2613 2616 priv->addr_command = PSMOUSE_CMD_RESET_WRAP; 2617 + 2618 + if (alps_probe_trackstick_v3_v7(psmouse, 2619 + ALPS_REG_BASE_PINNACLE) < 0) 2620 + priv->flags &= ~ALPS_DUALPOINT; 2621 + 2614 2622 break; 2615 2623 2616 2624 case ALPS_PROTO_V3_RUSHMORE: