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

Commit 3940d618 authored by JJ Ding's avatar JJ Ding Committed by Dmitry Torokhov
Browse files

Input: elantech - adjust hw_version detection logic



This patch fixes some v3 hardware (fw_version: 0x150500) wrongly detected
as v2 hardware.

Reported-by: default avatarMarc Dietrich <marvin24@gmx.de>
Signed-off-by: default avatarJJ Ding <jj_ding@emc.com.tw>
Tested-By: default avatarMarc Dietrich <marvin24@gmx.de>
Acked-by: default avatarÉric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent b42c9097
Loading
Loading
Loading
Loading
+18 −8
Original line number Diff line number Diff line
@@ -1210,18 +1210,28 @@ static int elantech_reconnect(struct psmouse *psmouse)
 */
static int elantech_set_properties(struct elantech_data *etd)
{
	/* This represents the version of IC body. */
	int ver = (etd->fw_version & 0x0f0000) >> 16;

	/* Early version of Elan touchpads doesn't obey the rule. */
	if (etd->fw_version < 0x020030 || etd->fw_version == 0x020600)
		etd->hw_version = 1;
	else if (etd->fw_version < 0x150600)
	else {
		switch (ver) {
		case 2:
		case 4:
			etd->hw_version = 2;
	else if (ver == 5)
			break;
		case 5:
			etd->hw_version = 3;
	else if (ver == 6)
			break;
		case 6:
			etd->hw_version = 4;
	else
			break;
		default:
			return -1;
		}
	}

	/*
	 * Turn on packet checking by default.