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

Commit 08be954b authored by Dmitry Torokhov's avatar Dmitry Torokhov
Browse files

Input: psmouse - move sliced command implementation to libps2



In preparation to adding some debugging statements to PS/2 control
sequences let's move psmouse_sliced_command() into libps2 and rename it
to ps2_sliced_command().

Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 3a92dd33
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@
static int synaptics_send_cmd(struct psmouse *psmouse, unsigned char c,
				unsigned char *param)
{
	if (psmouse_sliced_command(psmouse, c) ||
	if (ps2_sliced_command(&psmouse->ps2dev, c) ||
	    ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETINFO)) {
		psmouse_err(psmouse, "%s query 0x%02x failed.\n", __func__, c);
		return -1;
@@ -107,8 +107,8 @@ static int elantech_read_reg(struct psmouse *psmouse, unsigned char reg,

	switch (etd->hw_version) {
	case 1:
		if (psmouse_sliced_command(psmouse, ETP_REGISTER_READ) ||
		    psmouse_sliced_command(psmouse, reg) ||
		if (ps2_sliced_command(&psmouse->ps2dev, ETP_REGISTER_READ) ||
		    ps2_sliced_command(&psmouse->ps2dev, reg) ||
		    ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETINFO)) {
			rc = -1;
		}
@@ -162,9 +162,9 @@ static int elantech_write_reg(struct psmouse *psmouse, unsigned char reg,

	switch (etd->hw_version) {
	case 1:
		if (psmouse_sliced_command(psmouse, ETP_REGISTER_WRITE) ||
		    psmouse_sliced_command(psmouse, reg) ||
		    psmouse_sliced_command(psmouse, val) ||
		if (ps2_sliced_command(&psmouse->ps2dev, ETP_REGISTER_WRITE) ||
		    ps2_sliced_command(&psmouse->ps2dev, reg) ||
		    ps2_sliced_command(&psmouse->ps2dev, val) ||
		    ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_SETSCALE11)) {
			rc = -1;
		}
+1 −1
Original line number Diff line number Diff line
@@ -117,7 +117,7 @@ static int ps2pp_cmd(struct psmouse *psmouse, u8 *param, u8 command)
{
	int error;

	error = psmouse_sliced_command(psmouse, command);
	error = ps2_sliced_command(&psmouse->ps2dev, command);
	if (error)
		return error;

+0 −26
Original line number Diff line number Diff line
@@ -431,32 +431,6 @@ static irqreturn_t psmouse_interrupt(struct serio *serio,
	return IRQ_HANDLED;
}

/*
 * psmouse_sliced_command() sends an extended PS/2 command to the mouse
 * using sliced syntax, understood by advanced devices, such as Logitech
 * or Synaptics touchpads. The command is encoded as:
 * 0xE6 0xE8 rr 0xE8 ss 0xE8 tt 0xE8 uu where (rr*64)+(ss*16)+(tt*4)+uu
 * is the command.
 */
int psmouse_sliced_command(struct psmouse *psmouse, u8 command)
{
	int i;
	int error;

	error = ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_SETSCALE11);
	if (error)
		return error;

	for (i = 6; i >= 0; i -= 2) {
		u8 d = (command >> i) & 3;
		error = ps2_command(&psmouse->ps2dev, &d, PSMOUSE_CMD_SETRES);
		if (error)
			return error;
	}

	return 0;
}

/*
 * psmouse_reset() resets the mouse into power-on state.
 */
+0 −1
Original line number Diff line number Diff line
@@ -131,7 +131,6 @@ struct psmouse {

void psmouse_queue_work(struct psmouse *psmouse, struct delayed_work *work,
		unsigned long delay);
int psmouse_sliced_command(struct psmouse *psmouse, unsigned char command);
int psmouse_reset(struct psmouse *psmouse);
void psmouse_set_state(struct psmouse *psmouse, enum psmouse_state new_state);
void psmouse_set_resolution(struct psmouse *psmouse, unsigned int resolution);
+4 −4
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ static int synaptics_mode_cmd(struct psmouse *psmouse, u8 mode)
	u8 param[1];
	int error;

	error = psmouse_sliced_command(psmouse, mode);
	error = ps2_sliced_command(&psmouse->ps2dev, mode);
	if (error)
		return error;

@@ -190,7 +190,7 @@ static int synaptics_send_cmd(struct psmouse *psmouse, u8 cmd, u8 *param)
{
	int error;

	error = psmouse_sliced_command(psmouse, cmd);
	error = ps2_sliced_command(&psmouse->ps2dev, cmd);
	if (error)
		return error;

@@ -547,7 +547,7 @@ static int synaptics_set_advanced_gesture_mode(struct psmouse *psmouse)
	static u8 param = 0xc8;
	int error;

	error = psmouse_sliced_command(psmouse, SYN_QUE_MODEL);
	error = ps2_sliced_command(&psmouse->ps2dev, SYN_QUE_MODEL);
	if (error)
		return error;

@@ -614,7 +614,7 @@ static int synaptics_pt_write(struct serio *serio, u8 c)
	u8 rate_param = SYN_PS_CLIENT_CMD; /* indicates that we want pass-through port */
	int error;

	error = psmouse_sliced_command(parent, c);
	error = ps2_sliced_command(&parent->ps2dev, c);
	if (error)
		return error;

Loading