Commit 72168ae7 authored by Benjamin Tissoires's avatar Benjamin Tissoires Committed by Greg Kroah-Hartman

Revert "Input: elantech - enable SMBus on new (2018+) systems"

This reverts commit 3d180fe5 which is
commit 883a2a80 upstream.

This patch depends on an other series:
https://patchwork.kernel.org/project/linux-input/list/?series=122327&state=%2A&archive=both

It was a mistake to backport it in the v5.2 branch, as there
is a high chance we encounter a touchpad that needs the series
above.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=204733
Link: https://bugzilla.kernel.org/show_bug.cgi?id=204771Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0fed55c2
...@@ -1810,30 +1810,6 @@ static int elantech_create_smbus(struct psmouse *psmouse, ...@@ -1810,30 +1810,6 @@ static int elantech_create_smbus(struct psmouse *psmouse,
leave_breadcrumbs); leave_breadcrumbs);
} }
static bool elantech_use_host_notify(struct psmouse *psmouse,
struct elantech_device_info *info)
{
if (ETP_NEW_IC_SMBUS_HOST_NOTIFY(info->fw_version))
return true;
switch (info->bus) {
case ETP_BUS_PS2_ONLY:
/* expected case */
break;
case ETP_BUS_SMB_HST_NTFY_ONLY:
case ETP_BUS_PS2_SMB_HST_NTFY:
/* SMbus implementation is stable since 2018 */
if (dmi_get_bios_year() >= 2018)
return true;
default:
psmouse_dbg(psmouse,
"Ignoring SMBus bus provider %d\n", info->bus);
break;
}
return false;
}
/** /**
* elantech_setup_smbus - called once the PS/2 devices are enumerated * elantech_setup_smbus - called once the PS/2 devices are enumerated
* and decides to instantiate a SMBus InterTouch device. * and decides to instantiate a SMBus InterTouch device.
...@@ -1853,7 +1829,7 @@ static int elantech_setup_smbus(struct psmouse *psmouse, ...@@ -1853,7 +1829,7 @@ static int elantech_setup_smbus(struct psmouse *psmouse,
* i2c_blacklist_pnp_ids. * i2c_blacklist_pnp_ids.
* Old ICs are up to the user to decide. * Old ICs are up to the user to decide.
*/ */
if (!elantech_use_host_notify(psmouse, info) || if (!ETP_NEW_IC_SMBUS_HOST_NOTIFY(info->fw_version) ||
psmouse_matches_pnp_id(psmouse, i2c_blacklist_pnp_ids)) psmouse_matches_pnp_id(psmouse, i2c_blacklist_pnp_ids))
return -ENXIO; return -ENXIO;
} }
...@@ -1873,6 +1849,34 @@ static int elantech_setup_smbus(struct psmouse *psmouse, ...@@ -1873,6 +1849,34 @@ static int elantech_setup_smbus(struct psmouse *psmouse,
return 0; return 0;
} }
static bool elantech_use_host_notify(struct psmouse *psmouse,
struct elantech_device_info *info)
{
if (ETP_NEW_IC_SMBUS_HOST_NOTIFY(info->fw_version))
return true;
switch (info->bus) {
case ETP_BUS_PS2_ONLY:
/* expected case */
break;
case ETP_BUS_SMB_ALERT_ONLY:
/* fall-through */
case ETP_BUS_PS2_SMB_ALERT:
psmouse_dbg(psmouse, "Ignoring SMBus provider through alert protocol.\n");
break;
case ETP_BUS_SMB_HST_NTFY_ONLY:
/* fall-through */
case ETP_BUS_PS2_SMB_HST_NTFY:
return true;
default:
psmouse_dbg(psmouse,
"Ignoring SMBus bus provider %d.\n",
info->bus);
}
return false;
}
int elantech_init_smbus(struct psmouse *psmouse) int elantech_init_smbus(struct psmouse *psmouse)
{ {
struct elantech_device_info info; struct elantech_device_info info;
......
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