Patch "Input: tsc200x - report proper input_dev name" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
Input: tsc200x - report proper input_dev name
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
input-tsc200x-report-proper-input_dev-name.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
e9003c9cfaa17d26991688268b04244adb67ee2bMon Sep 17 00:00:00 2001
From: Michael Welling <[email protected]>
Date: Wed, 20 Jul 2016 10:02:07 -0700
Subject: Input: tsc200x - report proper input_dev name
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Michael Welling <[email protected]>
commit e9003c9cfaa17d26991688268b04244adb67ee2b upstream.
Passes input_id struct to the common probe function for the tsc200x drivers instead of just the bustype.
This allows for the use of the product variable to set the input_dev->name variable according to the type of touchscreen used. Note that when we introduced support for TSC2004 we started calling everything TSC200X, so let's keep this quirk.
--- drivers/input/touchscreen/tsc2004.c | 7 ++++++- drivers/input/touchscreen/tsc2005.c | 7 ++++++- drivers/input/touchscreen/tsc200x-core.c | 15 ++++++++++++--- drivers/input/touchscreen/tsc200x-core.h | 2 +- 4 files changed, 25 insertions(+), 6 deletions(-)
drivers/input/touchscreen/tsc2004.c +6 -1
@@ -22,6 +22,11 @@#include <linux/regmap.h> #include "tsc200x-core.h" +static const struct input_id tsc2004_input_id = { + .bustype =BUS_I2C , + .product =2004 , +}; +static int tsc2004_cmd (struct device *dev,u8 cmd) {u8 tx =TSC200X_CMD |TSC200X_CMD_12BIT | cmd;
@@ -42,7 +47,7 @@ static int tsc2004_probe(struct i2c_clie const struct i2c_device_id *id) { -return tsc200x_probe (&i2c->dev, i2c->irq,BUS_I2C , +return tsc200x_probe (&i2c->dev, i2c->irq, &tsc2004_input_id,devm_regmap_init_i2c (i2c, &tsc200x_regmap_config), tsc2004_cmd); }
drivers/input/touchscreen/tsc2005.c +6 -1
@@ -24,6 +24,11 @@#include <linux/regmap.h> #include "tsc200x-core.h" +static const struct input_id tsc2005_input_id = { + .bustype =BUS_SPI , + .product =2005 , +}; +static int tsc2005_cmd (struct device *dev,u8 cmd) {u8 tx =TSC200X_CMD |TSC200X_CMD_12BIT | cmd;
@@ -62,7 +67,7 @@ static int tsc2005_probe(struct spi_deviif (error)return error; -return tsc200x_probe (&spi->dev, spi->irq,BUS_SPI , +return tsc200x_probe (&spi->dev, spi->irq, &tsc2005_input_id,devm_regmap_init_spi (spi, &tsc200x_regmap_config), tsc2005_cmd); }
drivers/input/touchscreen/tsc200x-core.c +12 -3
@@ -450,7 +450,7 @@ static void tsc200x_close(struct input_dmutex_unlock (&ts->mutex); } -int tsc200x_probe (struct device *dev,int irq,__u16 bustype, +int tsc200x_probe (struct device *dev,int irq,const struct input_id *tsc_id,struct regmap *regmap,int (*tsc200x_cmd)(struct device *dev,u8 cmd)) {
@@ -547,9 +547,18 @@ int tsc200x_probe(struct device *dev, insnprintf (ts->phys,sizeof (ts->phys),"%s/input-ts" ,dev_name (dev)); - input_dev->name ="TSC200X touchscreen" ; +if (tsc_id->product ==2004 ) { + input_dev->name ="TSC200X touchscreen" ; + }else { + input_dev->name =devm_kasprintf (dev,GFP_KERNEL , +"TSC%04d touchscreen" , + tsc_id->product); +if (!input_dev->name) +return -ENOMEM ; + } + input_dev->phys = ts->phys; - input_dev->id.bustype = bustype; + input_dev->id = *tsc_id; input_dev->dev.parent = dev; input_dev->evbit[0 ] =BIT (EV_ABS ) |BIT (EV_KEY ); input_dev->keybit[BIT_WORD (BTN_TOUCH )] =BIT_MASK (BTN_TOUCH );
drivers/input/touchscreen/tsc200x-core.h +1 -1
@@ -70,7 +70,7 @@extern const struct regmap_config tsc200x_regmap_config;extern const struct dev_pm_ops tsc200x_pm_ops; -int tsc200x_probe (struct device *dev,int irq,__u16 bustype, +int tsc200x_probe (struct device *dev,int irq,const struct input_id *tsc_id,struct regmap *regmap,int (*tsc200x_cmd)(struct device *dev,u8 cmd));int tsc200x_remove (struct device *dev);
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/input-tsc200x-report-proper-input_dev-name.patch