aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/touchscreen/tsc200x-core.c
diff options
context:
space:
mode:
authorMichael Welling <mwelling@ieee.org>2016-07-20 10:02:07 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2016-07-20 17:50:24 -0700
commite9003c9cfaa17d26991688268b04244adb67ee2b (patch)
treec3faf81b0fb86053c3f407dd1e2b6a8f7a04a38c /drivers/input/touchscreen/tsc200x-core.c
parenttty/vt/keyboard: fix OOB access in do_compute_shiftstate() (diff)
downloadlinux-dev-e9003c9cfaa17d26991688268b04244adb67ee2b.tar.xz
linux-dev-e9003c9cfaa17d26991688268b04244adb67ee2b.zip
Input: tsc200x - report proper input_dev name
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. Signed-off-by: Michael Welling <mwelling@ieee.org> Cc: stable@vger.kernel.org Acked-by: Pavel Machek <pavel@ucw.cz> Acked-by: Pali Rohár <pali.rohar@gmail.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input/touchscreen/tsc200x-core.c')
-rw-r--r--drivers/input/touchscreen/tsc200x-core.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/input/touchscreen/tsc200x-core.c b/drivers/input/touchscreen/tsc200x-core.c
index 15240c1ee850..dfa7f1c4f545 100644
--- a/drivers/input/touchscreen/tsc200x-core.c
+++ b/drivers/input/touchscreen/tsc200x-core.c
@@ -450,7 +450,7 @@ static void tsc200x_close(struct input_dev *input)
mutex_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, int irq, __u16 bustype,
snprintf(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);