Re: [PATCH] input: Report vendor and product IDs for elan_i2c

From: Dmitry Torokhov
Date: Tue Dec 15 2015 - 14:34:59 EST


On Tue, Dec 15, 2015 at 11:11:12AM -0800, Charlie Mooney wrote:
> Previously the "vendor" and "product" IDs for the elan_i2c
> driver simply reported 0000. This patch modifies the elan_i2c
> driver to include the Elan vendor ID and the touchpad's product
> id under input/input*/{vendor,product}.
>
> Specifically, this is to allow us to apply a generic Elan gestures
> config that will apply to all Elan touchpads on ChromeOS. These
> configs match to input devices in various ways, but one major way
> is by matching on vendor ID. Adding this patch allows the
> default Elan touchpad config to be applied to Elan touchpads in
> this kernel by matching on devices that have vendor ID 04f3.
>
> To test this patch, I mannually built and installed the modified
> driver for my laptop which has an elan_i2c touchpad. Everything
> still functions correctly, and when I query the vendor and product
> ID I see what I expected:
>
> localhost i2c-ELAN0000:00 # cat \
> /sys/bus/i2c/devices/i2c-ELAN0000\:00/input/input6/id/{vendor,product}
> 04f3
> 007f
>
> Before this patch it simply returned 0000 for both values. Note that
> 007F is the product ID that this device will return through its custom
> sysfs entry "product_id" as well.
>
> Signed-off-by: Charlie Mooney <charliemooney@xxxxxxxxxxxx>

Applied, thank you.

> ---
> drivers/input/mouse/elan_i2c_core.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c
> index 5e1665b..2f58985 100644
> --- a/drivers/input/mouse/elan_i2c_core.c
> +++ b/drivers/input/mouse/elan_i2c_core.c
> @@ -41,6 +41,7 @@
>
> #define DRIVER_NAME "elan_i2c"
> #define ELAN_DRIVER_VERSION "1.6.1"
> +#define ELAN_VENDOR_ID 0x04f3
> #define ETP_MAX_PRESSURE 255
> #define ETP_FWIDTH_REDUCE 90
> #define ETP_FINGER_WIDTH 15
> @@ -914,6 +915,8 @@ static int elan_setup_input_device(struct elan_tp_data *data)
>
> input->name = "Elan Touchpad";
> input->id.bustype = BUS_I2C;
> + input->id.vendor = ELAN_VENDOR_ID;
> + input->id.product = data->product_id;
> input_set_drvdata(input, data);
>
> error = input_mt_init_slots(input, ETP_MAX_FINGERS,
> --
> 2.1.2
>

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/