]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.2-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Sep 2019 09:53:41 +0000 (11:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Sep 2019 09:53:41 +0000 (11:53 +0200)
added patches:
revert-input-elantech-enable-smbus-on-new-2018-systems.patch

queue-5.2/revert-input-elantech-enable-smbus-on-new-2018-systems.patch [new file with mode: 0644]

diff --git a/queue-5.2/revert-input-elantech-enable-smbus-on-new-2018-systems.patch b/queue-5.2/revert-input-elantech-enable-smbus-on-new-2018-systems.patch
new file mode 100644 (file)
index 0000000..8375ac2
--- /dev/null
@@ -0,0 +1,101 @@
+From benjamin.tissoires@redhat.com  Fri Sep  6 11:51:02 2019
+From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
+Date: Fri,  6 Sep 2019 10:53:45 +0200
+Subject: Revert "Input: elantech - enable SMBus on new (2018+) systems"
+To: Dmitry Torokhov <dmitry.torokhov@gmail.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Kai-Heng Feng <kai.heng.feng@canonical.com>, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org
+Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com>
+Message-ID: <20190906085345.26279-1-benjamin.tissoires@redhat.com>
+
+From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
+
+This reverts commit 60956b018bfe23b879405a7d88103d0a8f06a5e3 which is
+commit 883a2a80f79ca5c0c105605fafabd1f3df99b34c 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=204771
+Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+--- a/drivers/input/mouse/elantech.c
++++ b/drivers/input/mouse/elantech.c
+@@ -1807,30 +1807,6 @@ static int elantech_create_smbus(struct
+                                 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
+  * and decides to instantiate a SMBus InterTouch device.
+@@ -1850,7 +1826,7 @@ static int elantech_setup_smbus(struct p
+                * i2c_blacklist_pnp_ids.
+                * 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))
+                       return -ENXIO;
+       }
+@@ -1870,6 +1846,34 @@ static int elantech_setup_smbus(struct p
+       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)
+ {
+       struct elantech_device_info info;