Commit baddf589 authored by Alexandre Peixoto Ferreira's avatar Alexandre Peixoto Ferreira Committed by Dmitry Torokhov

Input: synaptics - fix reconnect logic on MT devices

synaptics_set_advanced_gesture_mode() affect capabilities bits we should
perform comparison after calling this function, otherwise they will never
match and we will be forced to perform full reconnect.
Signed-off-by: default avatarAlexandre Peixoto Ferreira <alexandref75@gmail.com>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent e7acc84a
...@@ -766,12 +766,6 @@ static int synaptics_reconnect(struct psmouse *psmouse) ...@@ -766,12 +766,6 @@ static int synaptics_reconnect(struct psmouse *psmouse)
return -1; return -1;
} }
if (old_priv.identity != priv->identity ||
old_priv.model_id != priv->model_id ||
old_priv.capabilities != priv->capabilities ||
old_priv.ext_cap != priv->ext_cap)
return -1;
if (synaptics_set_absolute_mode(psmouse)) { if (synaptics_set_absolute_mode(psmouse)) {
printk(KERN_ERR "Unable to initialize Synaptics hardware.\n"); printk(KERN_ERR "Unable to initialize Synaptics hardware.\n");
return -1; return -1;
...@@ -782,6 +776,19 @@ static int synaptics_reconnect(struct psmouse *psmouse) ...@@ -782,6 +776,19 @@ static int synaptics_reconnect(struct psmouse *psmouse)
return -1; return -1;
} }
if (old_priv.identity != priv->identity ||
old_priv.model_id != priv->model_id ||
old_priv.capabilities != priv->capabilities ||
old_priv.ext_cap != priv->ext_cap) {
printk(KERN_ERR "Synaptics hardware appears to be different: "
"id(%ld-%ld), model(%ld-%ld), caps(%lx-%lx), ext(%lx-%lx).\n",
old_priv.identity, priv->identity,
old_priv.model_id, priv->model_id,
old_priv.capabilities, priv->capabilities,
old_priv.ext_cap, priv->ext_cap);
return -1;
}
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment