/* For DualPoint devices select the device that should respond to subsequent commands. It looks like glidepad is behind stickpointer, I'd thought it would be other way around...  */
static int alps_passthrough_mode(struct psmouse *psmouse, bool enable)
/* For DualPoint devices select the device that should respond to subsequent commands. It looks like glidepad is behind stickpointer, I'd thought it would be other way around...  */
static int alps_passthrough_mode(struct psmouse *psmouse, bool enable)
{
	struct ps2dev *ps2dev = &psmouse->ps2dev;
	int cmd = enable ? PSMOUSE_CMD_SETSCALE21 : PSMOUSE_CMD_SETSCALE11;
	if (ps2_command(ps2dev, NULL, cmd) ||
	    ps2_command(ps2dev, NULL, cmd) ||
	    ps2_command(ps2dev, NULL, cmd) ||
	    ps2_command(ps2dev, NULL, PSMOUSE_CMD_DISABLE))
		return -1;
	ps2_drain(ps2dev, 3, 100);
	return 0;
}