Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -766,12 +766,6 @@ static int synaptics_reconnect(struct psmouse *psmouse)
		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)) {
		printk(KERN_ERR "Unable to initialize Synaptics hardware.\n");
		return -1;
@@ -782,6 +776,19 @@ static int synaptics_reconnect(struct psmouse *psmouse)
		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;
}