mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
49 lines
1.7 KiB
Diff
49 lines
1.7 KiB
Diff
|
From 2a6c3115f4142e23ca10c984d7f65ac8fb901cc2 Mon Sep 17 00:00:00 2001
|
||
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||
|
Date: Wed, 8 Nov 2023 15:50:39 +0000
|
||
|
Subject: [PATCH] input: edt-ft5x06: Include I2C details in names for the
|
||
|
devices
|
||
|
|
||
|
libinput uses the input device name alone. If you have two
|
||
|
identical input devices, then there is no way to differentiate
|
||
|
between them, and in the case of touchscreens that means no
|
||
|
way to associate them with the appropriate display device.
|
||
|
|
||
|
Add the I2C bus and address to the start of the input device
|
||
|
name so that the name is always unique within the system.
|
||
|
|
||
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||
|
---
|
||
|
drivers/input/touchscreen/edt-ft5x06.c | 6 +++++-
|
||
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||
|
|
||
|
--- a/drivers/input/touchscreen/edt-ft5x06.c
|
||
|
+++ b/drivers/input/touchscreen/edt-ft5x06.c
|
||
|
@@ -67,6 +67,7 @@
|
||
|
#define TOUCH_EVENT_RESERVED 0x03
|
||
|
|
||
|
#define EDT_NAME_LEN 23
|
||
|
+#define EDT_NAME_PREFIX_LEN 8
|
||
|
#define EDT_SWITCH_MODE_RETRIES 10
|
||
|
#define EDT_SWITCH_MODE_DELAY 5 /* msec */
|
||
|
#define EDT_RAW_DATA_RETRIES 100
|
||
|
@@ -134,7 +135,7 @@ struct edt_ft5x06_ts_data {
|
||
|
int max_support_points;
|
||
|
unsigned int known_ids;
|
||
|
|
||
|
- char name[EDT_NAME_LEN];
|
||
|
+ char name[EDT_NAME_PREFIX_LEN + EDT_NAME_LEN];
|
||
|
char fw_version[EDT_NAME_LEN];
|
||
|
int init_td_status;
|
||
|
|
||
|
@@ -965,6 +966,9 @@ static int edt_ft5x06_ts_identify(struct
|
||
|
char *model_name = tsdata->name;
|
||
|
char *fw_version = tsdata->fw_version;
|
||
|
|
||
|
+ snprintf(model_name, EDT_NAME_PREFIX_LEN, "%s ", dev_name(&client->dev));
|
||
|
+ model_name += strlen(model_name);
|
||
|
+
|
||
|
/* see what we find if we assume it is a M06 *
|
||
|
* if we get less than EDT_NAME_LEN, we don't want
|
||
|
* to have garbage in there
|