Thread (8 messages) 8 messages, 3 authors, 2021-06-14

Re: [PATCH 3/3] Input: goodix - add a settings module-parameter

From: Bastien Nocera <hadess@hadess.net>
Date: 2021-06-14 08:49:02

On Sun, 2021-06-13 at 12:21 +0200, Hans de Goede wrote:
Add a settings module-parameter which can be allowed to
specify/override
various device-properties.

Usuually Goodix touchscreens on x86 devices (where there is no
devicetree
to specify the properties) just work. But in some cases the
touchscreen is
mounted 90 or 180 degrees rotated vs the display, requiring setting
the
touchscreen-x/y-inverted or touchscreen-swapped-x-y properties.

Being able to specify the necessary properties through a module
parameter,
allows users of new device-models to help us with bringing up support
for
new devices without them needing to do a local kernel-build just to
modify
these settings.

Signed-off-by: Hans de Goede <redacted>
Reviewed-by: Bastien Nocera <hadess@hadess.net>
quoted hunk ↗ jump to hunk
---
 drivers/input/touchscreen/goodix.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/input/touchscreen/goodix.c
b/drivers/input/touchscreen/goodix.c
index 2efb82977115..1bc94c5597ca 100644
--- a/drivers/input/touchscreen/goodix.c
+++ b/drivers/input/touchscreen/goodix.c
@@ -52,6 +52,10 @@
 #define ACPI_GPIO_SUPPORT
 #endif
 
+static char *settings;
+module_param(settings, charp, 0444);
+MODULE_PARM_DESC(settings, "Override touchscreen settings using a ;
separated key=value list, e.g. \"touchscreen-fuzz-x=5;touchscreen-
fuzz-y=5;touchscreen-swapped-x-y\"");
+
 struct goodix_chip_id {
        const char *id;
        const struct goodix_chip_data *data;
@@ -1026,7 +1030,7 @@ static int goodix_configure_dev(struct
goodix_ts_data *ts)
        goodix_read_config(ts);
 
        /* Try overriding touchscreen parameters via device
properties */
-       touchscreen_parse_properties(ts->input_dev, true, &ts->prop,
NULL);
+       touchscreen_parse_properties(ts->input_dev, true, &ts->prop,
settings);
 
        if (!ts->prop.max_x || !ts->prop.max_y || !ts->max_touch_num)
{
                dev_err(&ts->client->dev,
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help