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 <charliemoo...@chromium.org>

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-input" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to