]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.7
authorSasha Levin <sashal@kernel.org>
Sat, 18 Jul 2020 19:15:43 +0000 (15:15 -0400)
committerSasha Levin <sashal@kernel.org>
Sat, 18 Jul 2020 19:15:43 +0000 (15:15 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-5.7/input-mms114-add-extra-compatible-for-mms345l.patch [new file with mode: 0644]
queue-5.7/series

diff --git a/queue-5.7/input-mms114-add-extra-compatible-for-mms345l.patch b/queue-5.7/input-mms114-add-extra-compatible-for-mms345l.patch
new file mode 100644 (file)
index 0000000..4ffe5b6
--- /dev/null
@@ -0,0 +1,88 @@
+From 27190e646f61f18b2ac6ae03bf2b194d4c62c1b2 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 25 Apr 2020 13:06:31 -0700
+Subject: Input: mms114 - add extra compatible for mms345l
+
+From: Stephan Gerhold <stephan@gerhold.net>
+
+[ Upstream commit 7842087b0196d674ed877d768de8f2a34d7fdc53 ]
+
+MMS345L is another first generation touch screen from Melfas,
+which uses mostly the same registers as MMS152.
+
+However, there is some garbage printed during initialization.
+Apparently MMS345L does not have the MMS152_COMPAT_GROUP register
+that is read+printed during initialization.
+
+  TSP FW Rev: bootloader 0x6 / core 0x26 / config 0x26, Compat group: \x06
+
+On earlier kernel versions the compat group was actually printed as
+an ASCII control character, seems like it gets escaped now.
+
+But we probably shouldn't print something from a random register.
+
+Add a separate "melfas,mms345l" compatible that avoids reading
+from the MMS152_COMPAT_GROUP register. This might also help in case
+there is some other device-specific quirk in the future.
+
+Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
+Reviewed-by: Andi Shyti <andi@etezian.org>
+Link: https://lore.kernel.org/r/20200423102431.2715-1-stephan@gerhold.net
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/input/touchscreen/mms114.c | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/input/touchscreen/mms114.c b/drivers/input/touchscreen/mms114.c
+index 2ef1adaed9afb..5bdf4ac1a3033 100644
+--- a/drivers/input/touchscreen/mms114.c
++++ b/drivers/input/touchscreen/mms114.c
+@@ -54,6 +54,7 @@
+ enum mms_type {
+       TYPE_MMS114     = 114,
+       TYPE_MMS152     = 152,
++      TYPE_MMS345L    = 345,
+ };
+ struct mms114_data {
+@@ -250,6 +251,15 @@ static int mms114_get_version(struct mms114_data *data)
+       int error;
+       switch (data->type) {
++      case TYPE_MMS345L:
++              error = __mms114_read_reg(data, MMS152_FW_REV, 3, buf);
++              if (error)
++                      return error;
++
++              dev_info(dev, "TSP FW Rev: bootloader 0x%x / core 0x%x / config 0x%x\n",
++                       buf[0], buf[1], buf[2]);
++              break;
++
+       case TYPE_MMS152:
+               error = __mms114_read_reg(data, MMS152_FW_REV, 3, buf);
+               if (error)
+@@ -287,8 +297,8 @@ static int mms114_setup_regs(struct mms114_data *data)
+       if (error < 0)
+               return error;
+-      /* MMS152 has no configuration or power on registers */
+-      if (data->type == TYPE_MMS152)
++      /* Only MMS114 has configuration and power on registers */
++      if (data->type != TYPE_MMS114)
+               return 0;
+       error = mms114_set_active(data, true);
+@@ -597,6 +607,9 @@ static const struct of_device_id mms114_dt_match[] = {
+       }, {
+               .compatible = "melfas,mms152",
+               .data = (void *)TYPE_MMS152,
++      }, {
++              .compatible = "melfas,mms345l",
++              .data = (void *)TYPE_MMS345L,
+       },
+       { }
+ };
+-- 
+2.25.1
+
index 71e64e2902e1571254217cf4cd9fb84825f92c02..5ae57b871f61e514ec81eb0dfa256ed3475fcdd7 100644 (file)
@@ -73,3 +73,4 @@ net-ethernet-mvneta-add-back-interface-mode-validati.patch
 scsi-qla2xxx-make-1-bit-bit-fields-unsigned-int.patch
 spi-spi-fsl-dspi-fix-lockup-if-device-is-shutdown-du.patch
 io_uring-fix-recvmsg-memory-leak-with-buffer-selection.patch
+input-mms114-add-extra-compatible-for-mms345l.patch