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>
This commit is contained in:
parent
dae928ec3c
commit
4b1af85364
|
@ -2129,15 +2129,12 @@ error:
|
||||||
|
|
||||||
static int alps_hw_init_v3(struct psmouse *psmouse)
|
static int alps_hw_init_v3(struct psmouse *psmouse)
|
||||||
{
|
{
|
||||||
|
struct alps_data *priv = psmouse->private;
|
||||||
struct ps2dev *ps2dev = &psmouse->ps2dev;
|
struct ps2dev *ps2dev = &psmouse->ps2dev;
|
||||||
int reg_val;
|
int reg_val;
|
||||||
unsigned char param[4];
|
unsigned char param[4];
|
||||||
|
|
||||||
reg_val = alps_probe_trackstick_v3_v7(psmouse, ALPS_REG_BASE_PINNACLE);
|
if ((priv->flags & ALPS_DUALPOINT) &&
|
||||||
if (reg_val == -EIO)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
if (reg_val == 0 &&
|
|
||||||
alps_setup_trackstick_v3(psmouse, ALPS_REG_BASE_PINNACLE) == -EIO)
|
alps_setup_trackstick_v3(psmouse, ALPS_REG_BASE_PINNACLE) == -EIO)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
@ -2614,6 +2611,11 @@ static int alps_set_protocol(struct psmouse *psmouse,
|
||||||
priv->decode_fields = alps_decode_pinnacle;
|
priv->decode_fields = alps_decode_pinnacle;
|
||||||
priv->nibble_commands = alps_v3_nibble_commands;
|
priv->nibble_commands = alps_v3_nibble_commands;
|
||||||
priv->addr_command = PSMOUSE_CMD_RESET_WRAP;
|
priv->addr_command = PSMOUSE_CMD_RESET_WRAP;
|
||||||
|
|
||||||
|
if (alps_probe_trackstick_v3_v7(psmouse,
|
||||||
|
ALPS_REG_BASE_PINNACLE) < 0)
|
||||||
|
priv->flags &= ~ALPS_DUALPOINT;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ALPS_PROTO_V3_RUSHMORE:
|
case ALPS_PROTO_V3_RUSHMORE:
|
||||||
|
|
Loading…
Reference in New Issue