* [PATCH AUTOSEL 6.8 04/98] Input: synaptics-rmi4 - fail probing if memory allocation for "phys" fails
[not found] <20240329123919.3087149-1-sashal@kernel.org>
@ 2024-03-29 12:36 ` Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 61/98] HID: input: avoid polling stylus battery on Chromebook Pompom Sasha Levin
` (9 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-03-29 12:36 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Kunwu Chan, Dmitry Torokhov, Sasha Levin, minipli, linux-input
From: Kunwu Chan <chentao@kylinos.cn>
[ Upstream commit bc4996184d56cfaf56d3811ac2680c8a0e2af56e ]
While input core can work with input->phys set to NULL userspace might
depend on it, so better fail probing if allocation fails. The system must
be in a pretty bad shape for it to happen anyway.
Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
Link: https://lore.kernel.org/r/20240117073124.143636-1-chentao@kylinos.cn
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/input/rmi4/rmi_driver.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
index 42eaebb3bf5cc..ef9ea295f9e03 100644
--- a/drivers/input/rmi4/rmi_driver.c
+++ b/drivers/input/rmi4/rmi_driver.c
@@ -1196,7 +1196,11 @@ static int rmi_driver_probe(struct device *dev)
}
rmi_driver_set_input_params(rmi_dev, data->input);
data->input->phys = devm_kasprintf(dev, GFP_KERNEL,
- "%s/input0", dev_name(dev));
+ "%s/input0", dev_name(dev));
+ if (!data->input->phys) {
+ retval = -ENOMEM;
+ goto err;
+ }
}
retval = rmi_init_functions(data);
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH AUTOSEL 6.8 61/98] HID: input: avoid polling stylus battery on Chromebook Pompom
[not found] <20240329123919.3087149-1-sashal@kernel.org>
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 04/98] Input: synaptics-rmi4 - fail probing if memory allocation for "phys" fails Sasha Levin
@ 2024-03-29 12:37 ` Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 76/98] input/touchscreen: imagis: Correct the maximum touch area value Sasha Levin
` (8 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-03-29 12:37 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Dmitry Torokhov, Jiri Kosina, Sasha Levin, jikos,
benjamin.tissoires, linux-input
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
[ Upstream commit 9a5b1521e2d0d7ace70c6e5eed073babcec91409 ]
Internal touchscreen on Trogdor Pompom (AKA Dynabook Chromebook C1)
supports USI stylus. Unfortunately the HID descriptor for the stylus
interface does not contain "Stylus" physical collection, which makes
the kernel to try and pull battery information, resulting in errors.
Apply HID_BATTERY_QUIRK_AVOID_QUERY to the device.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-input.c | 2 ++
2 files changed, 3 insertions(+)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 828a5c022c640..175b6680087e0 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -430,6 +430,7 @@
#define I2C_DEVICE_ID_HP_SPECTRE_X360_14T_EA100_V1 0x2BED
#define I2C_DEVICE_ID_HP_SPECTRE_X360_14T_EA100_V2 0x2BEE
#define I2C_DEVICE_ID_HP_ENVY_X360_15_EU0556NG 0x2D02
+#define I2C_DEVICE_ID_CHROMEBOOK_TROGDOR_POMPOM 0x2F81
#define USB_VENDOR_ID_ELECOM 0x056e
#define USB_DEVICE_ID_ELECOM_BM084 0x0061
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index c8b20d44b1472..e03d300d2bac4 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -411,6 +411,8 @@ static const struct hid_device_id hid_battery_quirks[] = {
HID_BATTERY_QUIRK_IGNORE },
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_ENVY_X360_15_EU0556NG),
HID_BATTERY_QUIRK_IGNORE },
+ { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_CHROMEBOOK_TROGDOR_POMPOM),
+ HID_BATTERY_QUIRK_AVOID_QUERY },
{}
};
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH AUTOSEL 6.8 76/98] input/touchscreen: imagis: Correct the maximum touch area value
[not found] <20240329123919.3087149-1-sashal@kernel.org>
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 04/98] Input: synaptics-rmi4 - fail probing if memory allocation for "phys" fails Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 61/98] HID: input: avoid polling stylus battery on Chromebook Pompom Sasha Levin
@ 2024-03-29 12:37 ` Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 77/98] input/touchscreen: imagis: Add support for Imagis IST3038B Sasha Levin
` (7 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-03-29 12:37 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Markuss Broks, Karel Balej, Dmitry Torokhov, Sasha Levin,
linux-input
From: Markuss Broks <markuss.broks@gmail.com>
[ Upstream commit 54a62ed17a705ef1ac80ebca2b62136b19243e19 ]
As specified in downstream IST3038B driver and proved by testing,
the correct maximum reported value of touch area is 16.
Signed-off-by: Markuss Broks <markuss.broks@gmail.com>
Signed-off-by: Karel Balej <balejk@matfyz.cz>
Link: https://lore.kernel.org/r/20240301164659.13240-2-karelb@gimli.ms.mff.cuni.cz
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/input/touchscreen/imagis.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/input/touchscreen/imagis.c b/drivers/input/touchscreen/imagis.c
index 07111ca244556..e67fd30110278 100644
--- a/drivers/input/touchscreen/imagis.c
+++ b/drivers/input/touchscreen/imagis.c
@@ -210,7 +210,7 @@ static int imagis_init_input_dev(struct imagis_ts *ts)
input_set_capability(input_dev, EV_ABS, ABS_MT_POSITION_X);
input_set_capability(input_dev, EV_ABS, ABS_MT_POSITION_Y);
- input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0);
+ input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, 16, 0, 0);
touchscreen_parse_properties(input_dev, true, &ts->prop);
if (!ts->prop.max_x || !ts->prop.max_y) {
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH AUTOSEL 6.8 77/98] input/touchscreen: imagis: Add support for Imagis IST3038B
[not found] <20240329123919.3087149-1-sashal@kernel.org>
` (2 preceding siblings ...)
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 76/98] input/touchscreen: imagis: Correct the maximum touch area value Sasha Levin
@ 2024-03-29 12:37 ` Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 78/98] input/touchscreen: imagis: add support for IST3032C Sasha Levin
` (6 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-03-29 12:37 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Markuss Broks, Karel Balej, Dmitry Torokhov, Sasha Levin,
linux-input
From: Markuss Broks <markuss.broks@gmail.com>
[ Upstream commit 10ad7d7a428f7bb336c3cb226ab8aa0e6a947dac ]
Imagis IST3038B is another variant of Imagis IST3038 IC, which has
a different register interface from IST3038C (possibly firmware defined).
This should also work for IST3044B (though untested), however other
variants using this interface/protocol(IST3026, IST3032, IST3026B,
IST3032B) have a different format for coordinates, and they'd need
additional effort to be supported by this driver.
Signed-off-by: Markuss Broks <markuss.broks@gmail.com>
Signed-off-by: Karel Balej <balejk@matfyz.cz>
Link: https://lore.kernel.org/r/20240301164659.13240-4-karelb@gimli.ms.mff.cuni.cz
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/input/touchscreen/imagis.c | 58 ++++++++++++++++++++++++------
1 file changed, 47 insertions(+), 11 deletions(-)
diff --git a/drivers/input/touchscreen/imagis.c b/drivers/input/touchscreen/imagis.c
index e67fd30110278..9af8a6332ae67 100644
--- a/drivers/input/touchscreen/imagis.c
+++ b/drivers/input/touchscreen/imagis.c
@@ -11,9 +11,13 @@
#include <linux/property.h>
#include <linux/regulator/consumer.h>
+#define IST3038B_REG_STATUS 0x20
+#define IST3038B_REG_CHIPID 0x30
+#define IST3038B_WHOAMI 0x30380b
+
#define IST3038C_HIB_ACCESS (0x800B << 16)
#define IST3038C_DIRECT_ACCESS BIT(31)
-#define IST3038C_REG_CHIPID 0x40001000
+#define IST3038C_REG_CHIPID (0x40001000 | IST3038C_DIRECT_ACCESS)
#define IST3038C_REG_HIB_BASE 0x30000100
#define IST3038C_REG_TOUCH_STATUS (IST3038C_REG_HIB_BASE | IST3038C_HIB_ACCESS)
#define IST3038C_REG_TOUCH_COORD (IST3038C_REG_HIB_BASE | IST3038C_HIB_ACCESS | 0x8)
@@ -31,8 +35,17 @@
#define IST3038C_FINGER_COUNT_SHIFT 12
#define IST3038C_FINGER_STATUS_MASK GENMASK(9, 0)
+struct imagis_properties {
+ unsigned int interrupt_msg_cmd;
+ unsigned int touch_coord_cmd;
+ unsigned int whoami_cmd;
+ unsigned int whoami_val;
+ bool protocol_b;
+};
+
struct imagis_ts {
struct i2c_client *client;
+ const struct imagis_properties *tdata;
struct input_dev *input_dev;
struct touchscreen_properties prop;
struct regulator_bulk_data supplies[2];
@@ -84,8 +97,7 @@ static irqreturn_t imagis_interrupt(int irq, void *dev_id)
int i;
int error;
- error = imagis_i2c_read_reg(ts, IST3038C_REG_INTR_MESSAGE,
- &intr_message);
+ error = imagis_i2c_read_reg(ts, ts->tdata->interrupt_msg_cmd, &intr_message);
if (error) {
dev_err(&ts->client->dev,
"failed to read the interrupt message: %d\n", error);
@@ -104,9 +116,13 @@ static irqreturn_t imagis_interrupt(int irq, void *dev_id)
finger_pressed = intr_message & IST3038C_FINGER_STATUS_MASK;
for (i = 0; i < finger_count; i++) {
- error = imagis_i2c_read_reg(ts,
- IST3038C_REG_TOUCH_COORD + (i * 4),
- &finger_status);
+ if (ts->tdata->protocol_b)
+ error = imagis_i2c_read_reg(ts,
+ ts->tdata->touch_coord_cmd, &finger_status);
+ else
+ error = imagis_i2c_read_reg(ts,
+ ts->tdata->touch_coord_cmd + (i * 4),
+ &finger_status);
if (error) {
dev_err(&ts->client->dev,
"failed to read coordinates for finger %d: %d\n",
@@ -261,6 +277,12 @@ static int imagis_probe(struct i2c_client *i2c)
ts->client = i2c;
+ ts->tdata = device_get_match_data(dev);
+ if (!ts->tdata) {
+ dev_err(dev, "missing chip data\n");
+ return -EINVAL;
+ }
+
error = imagis_init_regulators(ts);
if (error) {
dev_err(dev, "regulator init error: %d\n", error);
@@ -279,15 +301,13 @@ static int imagis_probe(struct i2c_client *i2c)
return error;
}
- error = imagis_i2c_read_reg(ts,
- IST3038C_REG_CHIPID | IST3038C_DIRECT_ACCESS,
- &chip_id);
+ error = imagis_i2c_read_reg(ts, ts->tdata->whoami_cmd, &chip_id);
if (error) {
dev_err(dev, "chip ID read failure: %d\n", error);
return error;
}
- if (chip_id != IST3038C_WHOAMI) {
+ if (chip_id != ts->tdata->whoami_val) {
dev_err(dev, "unknown chip ID: 0x%x\n", chip_id);
return -EINVAL;
}
@@ -343,9 +363,25 @@ static int imagis_resume(struct device *dev)
static DEFINE_SIMPLE_DEV_PM_OPS(imagis_pm_ops, imagis_suspend, imagis_resume);
+static const struct imagis_properties imagis_3038b_data = {
+ .interrupt_msg_cmd = IST3038B_REG_STATUS,
+ .touch_coord_cmd = IST3038B_REG_STATUS,
+ .whoami_cmd = IST3038B_REG_CHIPID,
+ .whoami_val = IST3038B_WHOAMI,
+ .protocol_b = true,
+};
+
+static const struct imagis_properties imagis_3038c_data = {
+ .interrupt_msg_cmd = IST3038C_REG_INTR_MESSAGE,
+ .touch_coord_cmd = IST3038C_REG_TOUCH_COORD,
+ .whoami_cmd = IST3038C_REG_CHIPID,
+ .whoami_val = IST3038C_WHOAMI,
+};
+
#ifdef CONFIG_OF
static const struct of_device_id imagis_of_match[] = {
- { .compatible = "imagis,ist3038c", },
+ { .compatible = "imagis,ist3038b", .data = &imagis_3038b_data },
+ { .compatible = "imagis,ist3038c", .data = &imagis_3038c_data },
{ },
};
MODULE_DEVICE_TABLE(of, imagis_of_match);
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH AUTOSEL 6.8 78/98] input/touchscreen: imagis: add support for IST3032C
[not found] <20240329123919.3087149-1-sashal@kernel.org>
` (3 preceding siblings ...)
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 77/98] input/touchscreen: imagis: Add support for Imagis IST3038B Sasha Levin
@ 2024-03-29 12:37 ` Sasha Levin
2024-03-30 9:33 ` Karel Balej
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 86/98] Input: make input_class constant Sasha Levin
` (5 subsequent siblings)
10 siblings, 1 reply; 14+ messages in thread
From: Sasha Levin @ 2024-03-29 12:37 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Karel Balej, Markuss Broks, Dmitry Torokhov, Sasha Levin,
linux-input
From: Karel Balej <balejk@matfyz.cz>
[ Upstream commit 90cb57a6c5717b83a110c0da720a03ee32ed255e ]
IST3032C is a touchscreen chip used for instance in the
samsung,coreprimevelte smartphone, with which this was tested. Add the
chip specific information to the driver.
Reviewed-by: Markuss Broks <markuss.broks@gmail.com>
Signed-off-by: Karel Balej <balejk@matfyz.cz>
Link: https://lore.kernel.org/r/20240301164659.13240-6-karelb@gimli.ms.mff.cuni.cz
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/input/touchscreen/imagis.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/input/touchscreen/imagis.c b/drivers/input/touchscreen/imagis.c
index 9af8a6332ae67..e1fafa561ee38 100644
--- a/drivers/input/touchscreen/imagis.c
+++ b/drivers/input/touchscreen/imagis.c
@@ -11,6 +11,8 @@
#include <linux/property.h>
#include <linux/regulator/consumer.h>
+#define IST3032C_WHOAMI 0x32c
+
#define IST3038B_REG_STATUS 0x20
#define IST3038B_REG_CHIPID 0x30
#define IST3038B_WHOAMI 0x30380b
@@ -363,6 +365,13 @@ static int imagis_resume(struct device *dev)
static DEFINE_SIMPLE_DEV_PM_OPS(imagis_pm_ops, imagis_suspend, imagis_resume);
+static const struct imagis_properties imagis_3032c_data = {
+ .interrupt_msg_cmd = IST3038C_REG_INTR_MESSAGE,
+ .touch_coord_cmd = IST3038C_REG_TOUCH_COORD,
+ .whoami_cmd = IST3038C_REG_CHIPID,
+ .whoami_val = IST3032C_WHOAMI,
+};
+
static const struct imagis_properties imagis_3038b_data = {
.interrupt_msg_cmd = IST3038B_REG_STATUS,
.touch_coord_cmd = IST3038B_REG_STATUS,
@@ -380,6 +389,7 @@ static const struct imagis_properties imagis_3038c_data = {
#ifdef CONFIG_OF
static const struct of_device_id imagis_of_match[] = {
+ { .compatible = "imagis,ist3032c", .data = &imagis_3032c_data },
{ .compatible = "imagis,ist3038b", .data = &imagis_3038b_data },
{ .compatible = "imagis,ist3038c", .data = &imagis_3038c_data },
{ },
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH AUTOSEL 6.8 86/98] Input: make input_class constant
[not found] <20240329123919.3087149-1-sashal@kernel.org>
` (4 preceding siblings ...)
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 78/98] input/touchscreen: imagis: add support for IST3032C Sasha Levin
@ 2024-03-29 12:37 ` Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 87/98] Input: imagis - use FIELD_GET where applicable Sasha Levin
` (4 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-03-29 12:37 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Ricardo B. Marliere, Greg Kroah-Hartman, Dmitry Torokhov,
Sasha Levin, linux-input
From: "Ricardo B. Marliere" <ricardo@marliere.net>
[ Upstream commit a4735d40a5da96a637af6e5bf9f6ec8b9d996acd ]
Since commit 43a7206b0963 ("driver core: class: make class_register() take
a const *"), the driver core allows for struct class to be in read-only
memory, so move the input_class structure to be declared at build time
placing it into read-only memory, instead of having to be dynamically
allocated at boot time.
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
Link: https://lore.kernel.org/r/20240305-class_cleanup-input-v1-1-0c3d950c25db@marliere.net
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/input/input.c | 2 +-
include/linux/input.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/input/input.c b/drivers/input/input.c
index f71ea4fb173fd..c3fa43514dc6f 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -1918,7 +1918,7 @@ static char *input_devnode(const struct device *dev, umode_t *mode)
return kasprintf(GFP_KERNEL, "input/%s", dev_name(dev));
}
-struct class input_class = {
+const struct class input_class = {
.name = "input",
.devnode = input_devnode,
};
diff --git a/include/linux/input.h b/include/linux/input.h
index de6503c0edb8e..c22ac465254ba 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -514,7 +514,7 @@ void input_enable_softrepeat(struct input_dev *dev, int delay, int period);
bool input_device_enabled(struct input_dev *dev);
-extern struct class input_class;
+extern const struct class input_class;
/**
* struct ff_device - force-feedback part of an input device
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH AUTOSEL 6.8 87/98] Input: imagis - use FIELD_GET where applicable
[not found] <20240329123919.3087149-1-sashal@kernel.org>
` (5 preceding siblings ...)
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 86/98] Input: make input_class constant Sasha Levin
@ 2024-03-29 12:37 ` Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 88/98] Input: imagis - add touch key support Sasha Levin
` (3 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-03-29 12:37 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Duje Mihanović, Dmitry Torokhov, Sasha Levin, markuss.broks,
linux-input
From: Duje Mihanović <duje.mihanovic@skole.hr>
[ Upstream commit c0ca3dbd03d66c6b9e044f48720e6ab5cef37ae5 ]
Instead of manually extracting certain bits from registers with binary
ANDs and shifts, the FIELD_GET macro can be used. With this in mind, the
*_SHIFT macros can be dropped.
Signed-off-by: Duje Mihanović <duje.mihanovic@skole.hr>
Link: https://lore.kernel.org/r/20240306-b4-imagis-keys-v3-1-2c429afa8420@skole.hr
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/input/touchscreen/imagis.c | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/drivers/input/touchscreen/imagis.c b/drivers/input/touchscreen/imagis.c
index e1fafa561ee38..fe65e083fd49b 100644
--- a/drivers/input/touchscreen/imagis.c
+++ b/drivers/input/touchscreen/imagis.c
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
+#include <linux/bitfield.h>
#include <linux/bits.h>
#include <linux/delay.h>
#include <linux/i2c.h>
@@ -29,12 +30,9 @@
#define IST3038C_I2C_RETRY_COUNT 3
#define IST3038C_MAX_FINGER_NUM 10
#define IST3038C_X_MASK GENMASK(23, 12)
-#define IST3038C_X_SHIFT 12
#define IST3038C_Y_MASK GENMASK(11, 0)
#define IST3038C_AREA_MASK GENMASK(27, 24)
-#define IST3038C_AREA_SHIFT 24
#define IST3038C_FINGER_COUNT_MASK GENMASK(15, 12)
-#define IST3038C_FINGER_COUNT_SHIFT 12
#define IST3038C_FINGER_STATUS_MASK GENMASK(9, 0)
struct imagis_properties {
@@ -106,8 +104,7 @@ static irqreturn_t imagis_interrupt(int irq, void *dev_id)
goto out;
}
- finger_count = (intr_message & IST3038C_FINGER_COUNT_MASK) >>
- IST3038C_FINGER_COUNT_SHIFT;
+ finger_count = FIELD_GET(IST3038C_FINGER_COUNT_MASK, intr_message);
if (finger_count > IST3038C_MAX_FINGER_NUM) {
dev_err(&ts->client->dev,
"finger count %d is more than maximum supported\n",
@@ -115,7 +112,7 @@ static irqreturn_t imagis_interrupt(int irq, void *dev_id)
goto out;
}
- finger_pressed = intr_message & IST3038C_FINGER_STATUS_MASK;
+ finger_pressed = FIELD_GET(IST3038C_FINGER_STATUS_MASK, intr_message);
for (i = 0; i < finger_count; i++) {
if (ts->tdata->protocol_b)
@@ -136,12 +133,11 @@ static irqreturn_t imagis_interrupt(int irq, void *dev_id)
input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER,
finger_pressed & BIT(i));
touchscreen_report_pos(ts->input_dev, &ts->prop,
- (finger_status & IST3038C_X_MASK) >>
- IST3038C_X_SHIFT,
- finger_status & IST3038C_Y_MASK, 1);
+ FIELD_GET(IST3038C_X_MASK, finger_status),
+ FIELD_GET(IST3038C_Y_MASK, finger_status),
+ true);
input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR,
- (finger_status & IST3038C_AREA_MASK) >>
- IST3038C_AREA_SHIFT);
+ FIELD_GET(IST3038C_AREA_MASK, finger_status));
}
input_mt_sync_frame(ts->input_dev);
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH AUTOSEL 6.8 88/98] Input: imagis - add touch key support
[not found] <20240329123919.3087149-1-sashal@kernel.org>
` (6 preceding siblings ...)
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 87/98] Input: imagis - use FIELD_GET where applicable Sasha Levin
@ 2024-03-29 12:37 ` Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 90/98] Input: allocate keycode for Display refresh rate toggle Sasha Levin
` (2 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-03-29 12:37 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Duje Mihanović, Dmitry Torokhov, Sasha Levin, markuss.broks,
linux-input
From: Duje Mihanović <duje.mihanovic@skole.hr>
[ Upstream commit 2d77f70bb7180060072b9c2406d67e4b3872af15 ]
IST3032C (and possibly some other models) has touch keys. Add support
for them to the imagis driver.
Signed-off-by: Duje Mihanović <duje.mihanovic@skole.hr>
Link: https://lore.kernel.org/r/20240306-b4-imagis-keys-v3-3-2c429afa8420@skole.hr
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/input/touchscreen/imagis.c | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/drivers/input/touchscreen/imagis.c b/drivers/input/touchscreen/imagis.c
index fe65e083fd49b..074dd6c342ecb 100644
--- a/drivers/input/touchscreen/imagis.c
+++ b/drivers/input/touchscreen/imagis.c
@@ -34,6 +34,7 @@
#define IST3038C_AREA_MASK GENMASK(27, 24)
#define IST3038C_FINGER_COUNT_MASK GENMASK(15, 12)
#define IST3038C_FINGER_STATUS_MASK GENMASK(9, 0)
+#define IST3032C_KEY_STATUS_MASK GENMASK(20, 16)
struct imagis_properties {
unsigned int interrupt_msg_cmd;
@@ -41,6 +42,7 @@ struct imagis_properties {
unsigned int whoami_cmd;
unsigned int whoami_val;
bool protocol_b;
+ bool touch_keys_supported;
};
struct imagis_ts {
@@ -49,6 +51,8 @@ struct imagis_ts {
struct input_dev *input_dev;
struct touchscreen_properties prop;
struct regulator_bulk_data supplies[2];
+ u32 keycodes[5];
+ int num_keycodes;
};
static int imagis_i2c_read_reg(struct imagis_ts *ts,
@@ -93,7 +97,7 @@ static irqreturn_t imagis_interrupt(int irq, void *dev_id)
{
struct imagis_ts *ts = dev_id;
u32 intr_message, finger_status;
- unsigned int finger_count, finger_pressed;
+ unsigned int finger_count, finger_pressed, key_pressed;
int i;
int error;
@@ -140,6 +144,12 @@ static irqreturn_t imagis_interrupt(int irq, void *dev_id)
FIELD_GET(IST3038C_AREA_MASK, finger_status));
}
+ key_pressed = FIELD_GET(IST3032C_KEY_STATUS_MASK, intr_message);
+
+ for (int i = 0; i < ts->num_keycodes; i++)
+ input_report_key(ts->input_dev, ts->keycodes[i],
+ key_pressed & BIT(i));
+
input_mt_sync_frame(ts->input_dev);
input_sync(ts->input_dev);
@@ -225,6 +235,23 @@ static int imagis_init_input_dev(struct imagis_ts *ts)
input_set_capability(input_dev, EV_ABS, ABS_MT_POSITION_X);
input_set_capability(input_dev, EV_ABS, ABS_MT_POSITION_Y);
input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, 16, 0, 0);
+ if (ts->tdata->touch_keys_supported) {
+ ts->num_keycodes = of_property_read_variable_u32_array(
+ ts->client->dev.of_node, "linux,keycodes",
+ ts->keycodes, 0, ARRAY_SIZE(ts->keycodes));
+ if (ts->num_keycodes <= 0) {
+ ts->keycodes[0] = KEY_APPSELECT;
+ ts->keycodes[1] = KEY_BACK;
+ ts->num_keycodes = 2;
+ }
+
+ input_dev->keycodemax = ts->num_keycodes;
+ input_dev->keycodesize = sizeof(ts->keycodes[0]);
+ input_dev->keycode = ts->keycodes;
+ }
+
+ for (int i = 0; i < ts->num_keycodes; i++)
+ input_set_capability(input_dev, EV_KEY, ts->keycodes[i]);
touchscreen_parse_properties(input_dev, true, &ts->prop);
if (!ts->prop.max_x || !ts->prop.max_y) {
@@ -366,6 +393,7 @@ static const struct imagis_properties imagis_3032c_data = {
.touch_coord_cmd = IST3038C_REG_TOUCH_COORD,
.whoami_cmd = IST3038C_REG_CHIPID,
.whoami_val = IST3032C_WHOAMI,
+ .touch_keys_supported = true,
};
static const struct imagis_properties imagis_3038b_data = {
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH AUTOSEL 6.8 90/98] Input: allocate keycode for Display refresh rate toggle
[not found] <20240329123919.3087149-1-sashal@kernel.org>
` (7 preceding siblings ...)
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 88/98] Input: imagis - add touch key support Sasha Levin
@ 2024-03-29 12:38 ` Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 93/98] platform/x86: touchscreen_dmi: Add an extra entry for a variant of the Chuwi Vi8 tablet Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 97/98] Input: xpad - add support for Snakebyte GAMEPADs Sasha Levin
10 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-03-29 12:38 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Gergo Koteles, Dmitry Torokhov, Ilpo Järvinen, Sasha Levin,
linux-input
From: Gergo Koteles <soyer@irl.hu>
[ Upstream commit cfeb98b95fff25c442f78a6f616c627bc48a26b7 ]
Newer Lenovo Yogas and Legions with 60Hz/90Hz displays send a wmi event
when Fn + R is pressed. This is intended for use to switch between the
two refresh rates.
Allocate a new KEY_REFRESH_RATE_TOGGLE keycode for it.
Signed-off-by: Gergo Koteles <soyer@irl.hu>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Link: https://lore.kernel.org/r/15a5d08c84cf4d7b820de34ebbcf8ae2502fb3ca.1710065750.git.soyer@irl.hu
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
include/uapi/linux/input-event-codes.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
index 022a520e31fc2..03edf2ccdf6c8 100644
--- a/include/uapi/linux/input-event-codes.h
+++ b/include/uapi/linux/input-event-codes.h
@@ -602,6 +602,7 @@
#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */
#define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */
+#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */
#define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */
#define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH AUTOSEL 6.8 93/98] platform/x86: touchscreen_dmi: Add an extra entry for a variant of the Chuwi Vi8 tablet
[not found] <20240329123919.3087149-1-sashal@kernel.org>
` (8 preceding siblings ...)
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 90/98] Input: allocate keycode for Display refresh rate toggle Sasha Levin
@ 2024-03-29 12:38 ` Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 97/98] Input: xpad - add support for Snakebyte GAMEPADs Sasha Levin
10 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-03-29 12:38 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Alban Boyé, Ilpo Järvinen, Sasha Levin, hdegoede,
linux-input, platform-driver-x86
From: Alban Boyé <alban.boye@protonmail.com>
[ Upstream commit 1266e2efb7512dbf20eac820ca2ed34de6b1c3e7 ]
Signed-off-by: Alban Boyé <alban.boye@protonmail.com>
Link: https://lore.kernel.org/r/20240227223919.11587-1-alban.boye@protonmail.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/platform/x86/touchscreen_dmi.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/platform/x86/touchscreen_dmi.c b/drivers/platform/x86/touchscreen_dmi.c
index 975cf24ae359a..c6a10ec2c83f6 100644
--- a/drivers/platform/x86/touchscreen_dmi.c
+++ b/drivers/platform/x86/touchscreen_dmi.c
@@ -1217,6 +1217,15 @@ const struct dmi_system_id touchscreen_dmi_table[] = {
DMI_MATCH(DMI_BIOS_VERSION, "CHUWI.D86JLBNR"),
},
},
+ {
+ /* Chuwi Vi8 dual-boot (CWI506) */
+ .driver_data = (void *)&chuwi_vi8_data,
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "i86"),
+ DMI_MATCH(DMI_BIOS_VERSION, "CHUWI2.D86JHBNR02"),
+ },
+ },
{
/* Chuwi Vi8 Plus (CWI519) */
.driver_data = (void *)&chuwi_vi8_plus_data,
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH AUTOSEL 6.8 97/98] Input: xpad - add support for Snakebyte GAMEPADs
[not found] <20240329123919.3087149-1-sashal@kernel.org>
` (9 preceding siblings ...)
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 93/98] platform/x86: touchscreen_dmi: Add an extra entry for a variant of the Chuwi Vi8 tablet Sasha Levin
@ 2024-03-29 12:38 ` Sasha Levin
10 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-03-29 12:38 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Matt Scialabba, Dmitry Torokhov, Sasha Levin, vi, maxwell.nguyen,
appsforartists, swyterzone, matthias_berndt, linux-input
From: Matt Scialabba <matt.git@fastmail.fm>
[ Upstream commit 81c32343d04f8ca974681d5fb5d939d2e1f58851 ]
Add Snakebyte GAMEPAD BASE X and Snakebyte GAMEPAD RGB X to the list
of supported devices.
Signed-off-by: Matt Scialabba <matt.git@fastmail.fm>
Link: https://lore.kernel.org/r/efbfb428-06b0-48f9-8701-db291c2a9d65@app.fastmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/input/joystick/xpad.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 14c828adebf78..1fad51b51b0e1 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -366,6 +366,8 @@ static const struct xpad_device {
{ 0x24c6, 0x5d04, "Razer Sabertooth", 0, XTYPE_XBOX360 },
{ 0x24c6, 0xfafe, "Rock Candy Gamepad for Xbox 360", 0, XTYPE_XBOX360 },
{ 0x2563, 0x058d, "OneXPlayer Gamepad", 0, XTYPE_XBOX360 },
+ { 0x294b, 0x3303, "Snakebyte GAMEPAD BASE X", 0, XTYPE_XBOXONE },
+ { 0x294b, 0x3404, "Snakebyte GAMEPAD RGB X", 0, XTYPE_XBOXONE },
{ 0x2dc8, 0x2000, "8BitDo Pro 2 Wired Controller fox Xbox", 0, XTYPE_XBOXONE },
{ 0x2dc8, 0x3106, "8BitDo Pro 2 Wired Controller", 0, XTYPE_XBOX360 },
{ 0x31e3, 0x1100, "Wooting One", 0, XTYPE_XBOX360 },
@@ -507,6 +509,7 @@ static const struct usb_device_id xpad_table[] = {
XPAD_XBOXONE_VENDOR(0x24c6), /* PowerA controllers */
XPAD_XBOX360_VENDOR(0x2563), /* OneXPlayer Gamepad */
XPAD_XBOX360_VENDOR(0x260d), /* Dareu H101 */
+ XPAD_XBOXONE_VENDOR(0x294b), /* Snakebyte */
XPAD_XBOX360_VENDOR(0x2c22), /* Qanba Controllers */
XPAD_XBOX360_VENDOR(0x2dc8), /* 8BitDo Pro 2 Wired Controller */
XPAD_XBOXONE_VENDOR(0x2dc8), /* 8BitDo Pro 2 Wired Controller for Xbox */
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH AUTOSEL 6.8 78/98] input/touchscreen: imagis: add support for IST3032C
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 78/98] input/touchscreen: imagis: add support for IST3032C Sasha Levin
@ 2024-03-30 9:33 ` Karel Balej
2024-04-07 23:48 ` Sasha Levin
0 siblings, 1 reply; 14+ messages in thread
From: Karel Balej @ 2024-03-30 9:33 UTC (permalink / raw)
To: Sasha Levin
Cc: Markuss Broks, Dmitry Torokhov, linux-input, duje.mihanovic,
linux-kernel, stable
Sasha,
Sasha Levin, 2024-03-29T08:37:49-04:00:
> From: Karel Balej <balejk@matfyz.cz>
>
> [ Upstream commit 90cb57a6c5717b83a110c0da720a03ee32ed255e ]
>
> IST3032C is a touchscreen chip used for instance in the
> samsung,coreprimevelte smartphone, with which this was tested. Add the
> chip specific information to the driver.
>
> Reviewed-by: Markuss Broks <markuss.broks@gmail.com>
> Signed-off-by: Karel Balej <balejk@matfyz.cz>
> Link: https://lore.kernel.org/r/20240301164659.13240-6-karelb@gimli.ms.mff.cuni.cz
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Signed-off-by: Sasha Levin <sashal@kernel.org>
> ---
> drivers/input/touchscreen/imagis.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/input/touchscreen/imagis.c b/drivers/input/touchscreen/imagis.c
> index 9af8a6332ae67..e1fafa561ee38 100644
> --- a/drivers/input/touchscreen/imagis.c
> +++ b/drivers/input/touchscreen/imagis.c
> @@ -11,6 +11,8 @@
> #include <linux/property.h>
> #include <linux/regulator/consumer.h>
>
> +#define IST3032C_WHOAMI 0x32c
> +
> #define IST3038B_REG_STATUS 0x20
> #define IST3038B_REG_CHIPID 0x30
> #define IST3038B_WHOAMI 0x30380b
> @@ -363,6 +365,13 @@ static int imagis_resume(struct device *dev)
>
> static DEFINE_SIMPLE_DEV_PM_OPS(imagis_pm_ops, imagis_suspend, imagis_resume);
>
> +static const struct imagis_properties imagis_3032c_data = {
> + .interrupt_msg_cmd = IST3038C_REG_INTR_MESSAGE,
> + .touch_coord_cmd = IST3038C_REG_TOUCH_COORD,
> + .whoami_cmd = IST3038C_REG_CHIPID,
> + .whoami_val = IST3032C_WHOAMI,
> +};
> +
> static const struct imagis_properties imagis_3038b_data = {
> .interrupt_msg_cmd = IST3038B_REG_STATUS,
> .touch_coord_cmd = IST3038B_REG_STATUS,
> @@ -380,6 +389,7 @@ static const struct imagis_properties imagis_3038c_data = {
>
> #ifdef CONFIG_OF
> static const struct of_device_id imagis_of_match[] = {
> + { .compatible = "imagis,ist3032c", .data = &imagis_3032c_data },
> { .compatible = "imagis,ist3038b", .data = &imagis_3038b_data },
> { .compatible = "imagis,ist3038c", .data = &imagis_3038c_data },
> { },
> --
> 2.43.0
sorry if I'm missing something, but I don't see why this should be
backported: it doesn't fix anything, it's just adding support for new
hardware.
I can see that adding a device ID is permitted for -stable [1], but I
thought it still has to bear some signs of a fix, such as maybe here
[2].
Furthermore, you are also proposing to backport Duje's touch keys
support [3] which I think is unarguably a new feature and not a fix at
all. Of all the Imagis patches, only the touch area correction [4] seems
to make sense for backporting.
Could you please explain?
[1] https://docs.kernel.org/next/process/stable-kernel-rules.html
[2] https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git/commit/?id=d40e9edcf3eb925c259df9f9dd7319a4fcbc675b
[3] https://lore.kernel.org/stable/20240329123919.3087149-88-sashal@kernel.org/
[4] https://lore.kernel.org/stable/20240329123919.3087149-76-sashal@kernel.org/
Thank you, best regards,
K. B.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH AUTOSEL 6.8 78/98] input/touchscreen: imagis: add support for IST3032C
2024-03-30 9:33 ` Karel Balej
@ 2024-04-07 23:48 ` Sasha Levin
2024-04-08 21:47 ` Karel Balej
0 siblings, 1 reply; 14+ messages in thread
From: Sasha Levin @ 2024-04-07 23:48 UTC (permalink / raw)
To: Karel Balej
Cc: Markuss Broks, Dmitry Torokhov, linux-input, duje.mihanovic,
linux-kernel, stable
On Sat, Mar 30, 2024 at 10:33:53AM +0100, Karel Balej wrote:
>Sasha,
>
>Sasha Levin, 2024-03-29T08:37:49-04:00:
>> From: Karel Balej <balejk@matfyz.cz>
>>
>> [ Upstream commit 90cb57a6c5717b83a110c0da720a03ee32ed255e ]
>>
>> IST3032C is a touchscreen chip used for instance in the
>> samsung,coreprimevelte smartphone, with which this was tested. Add the
>> chip specific information to the driver.
>>
>> Reviewed-by: Markuss Broks <markuss.broks@gmail.com>
>> Signed-off-by: Karel Balej <balejk@matfyz.cz>
>> Link: https://lore.kernel.org/r/20240301164659.13240-6-karelb@gimli.ms.mff.cuni.cz
>> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
>> Signed-off-by: Sasha Levin <sashal@kernel.org>
>> ---
>> drivers/input/touchscreen/imagis.c | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>>
>> diff --git a/drivers/input/touchscreen/imagis.c b/drivers/input/touchscreen/imagis.c
>> index 9af8a6332ae67..e1fafa561ee38 100644
>> --- a/drivers/input/touchscreen/imagis.c
>> +++ b/drivers/input/touchscreen/imagis.c
>> @@ -11,6 +11,8 @@
>> #include <linux/property.h>
>> #include <linux/regulator/consumer.h>
>>
>> +#define IST3032C_WHOAMI 0x32c
>> +
>> #define IST3038B_REG_STATUS 0x20
>> #define IST3038B_REG_CHIPID 0x30
>> #define IST3038B_WHOAMI 0x30380b
>> @@ -363,6 +365,13 @@ static int imagis_resume(struct device *dev)
>>
>> static DEFINE_SIMPLE_DEV_PM_OPS(imagis_pm_ops, imagis_suspend, imagis_resume);
>>
>> +static const struct imagis_properties imagis_3032c_data = {
>> + .interrupt_msg_cmd = IST3038C_REG_INTR_MESSAGE,
>> + .touch_coord_cmd = IST3038C_REG_TOUCH_COORD,
>> + .whoami_cmd = IST3038C_REG_CHIPID,
>> + .whoami_val = IST3032C_WHOAMI,
>> +};
>> +
>> static const struct imagis_properties imagis_3038b_data = {
>> .interrupt_msg_cmd = IST3038B_REG_STATUS,
>> .touch_coord_cmd = IST3038B_REG_STATUS,
>> @@ -380,6 +389,7 @@ static const struct imagis_properties imagis_3038c_data = {
>>
>> #ifdef CONFIG_OF
>> static const struct of_device_id imagis_of_match[] = {
>> + { .compatible = "imagis,ist3032c", .data = &imagis_3032c_data },
>> { .compatible = "imagis,ist3038b", .data = &imagis_3038b_data },
>> { .compatible = "imagis,ist3038c", .data = &imagis_3038c_data },
>> { },
>> --
>> 2.43.0
>
>sorry if I'm missing something, but I don't see why this should be
>backported: it doesn't fix anything, it's just adding support for new
>hardware.
>
>I can see that adding a device ID is permitted for -stable [1], but I
>thought it still has to bear some signs of a fix, such as maybe here
>[2].
It does not need to be a fix, it could just be plain device enablement.
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH AUTOSEL 6.8 78/98] input/touchscreen: imagis: add support for IST3032C
2024-04-07 23:48 ` Sasha Levin
@ 2024-04-08 21:47 ` Karel Balej
0 siblings, 0 replies; 14+ messages in thread
From: Karel Balej @ 2024-04-08 21:47 UTC (permalink / raw)
To: Sasha Levin
Cc: Markuss Broks, Dmitry Torokhov, linux-input, duje.mihanovic,
linux-kernel, stable
Sasha Levin, 2024-04-07T19:48:45-04:00:
[...]
> >sorry if I'm missing something, but I don't see why this should be
> >backported: it doesn't fix anything, it's just adding support for new
> >hardware.
> >
> >I can see that adding a device ID is permitted for -stable [1], but I
> >thought it still has to bear some signs of a fix, such as maybe here
> >[2].
>
> It does not need to be a fix, it could just be plain device enablement.
OK, thank you, although I'm afraid I still don't follow the rationale
behind this, except maybe for some really trivial additions which do not
require any other changes.
I was also initially having a hard time understanding what your email
means -- I found no mention of AUTOSEL in the Documentation and was
unsure whether this is already the review cycle or not. Only later I
came across this article [1] which confirmed some of my suspicions and
made things slightly clearer.
If I were to add a few words to briefly mention AUTOSEL to the
stable-kernel-rules document according to my current understanding,
would you take such patch?
Alternatively, I suggest adding some sort of brief
description/explanation to these patches as is the case for patches from
the review cycle.
[1] https://lwn.net/Articles/825536/
Best regards,
K. B.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2024-04-08 21:47 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20240329123919.3087149-1-sashal@kernel.org>
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 04/98] Input: synaptics-rmi4 - fail probing if memory allocation for "phys" fails Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 61/98] HID: input: avoid polling stylus battery on Chromebook Pompom Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 76/98] input/touchscreen: imagis: Correct the maximum touch area value Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 77/98] input/touchscreen: imagis: Add support for Imagis IST3038B Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 78/98] input/touchscreen: imagis: add support for IST3032C Sasha Levin
2024-03-30 9:33 ` Karel Balej
2024-04-07 23:48 ` Sasha Levin
2024-04-08 21:47 ` Karel Balej
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 86/98] Input: make input_class constant Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 87/98] Input: imagis - use FIELD_GET where applicable Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 88/98] Input: imagis - add touch key support Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 90/98] Input: allocate keycode for Display refresh rate toggle Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 93/98] platform/x86: touchscreen_dmi: Add an extra entry for a variant of the Chuwi Vi8 tablet Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 97/98] Input: xpad - add support for Snakebyte GAMEPADs Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).