From: Sasha Levin Date: Sat, 18 Jul 2020 19:15:43 +0000 (-0400) Subject: Fixes for 5.7 X-Git-Tag: v4.4.231~57 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3c18f91d58d1c72078d8a93052ad46fbd158d971;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.7 Signed-off-by: Sasha Levin --- 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 index 00000000000..4ffe5b63a13 --- /dev/null +++ b/queue-5.7/input-mms114-add-extra-compatible-for-mms345l.patch @@ -0,0 +1,88 @@ +From 27190e646f61f18b2ac6ae03bf2b194d4c62c1b2 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sat, 25 Apr 2020 13:06:31 -0700 +Subject: Input: mms114 - add extra compatible for mms345l + +From: Stephan Gerhold + +[ 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 +Reviewed-by: Andi Shyti +Link: https://lore.kernel.org/r/20200423102431.2715-1-stephan@gerhold.net +Signed-off-by: Dmitry Torokhov +Signed-off-by: Sasha Levin +--- + 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 + diff --git a/queue-5.7/series b/queue-5.7/series index 71e64e2902e..5ae57b871f6 100644 --- a/queue-5.7/series +++ b/queue-5.7/series @@ -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