On Tue, Mar 31, 2015 at 05:34:58PM -0400, Benjamin Tissoires wrote:
> ELAN0600 seems to work just fine in mouse emulation mode through i2c-hid,
> but to have full raw touch support we need to register it in elan_i2c.ko
>
> Found on a Lenovo Yoga 3 11".
>
> Reported-and-tested-by: Alessio Treglia <[email protected]>
> Signed-off-by: Benjamin Tissoires <[email protected]>
> ---
>
> Hi,
>
> Alessio reported this touchpad on the Lenovo Yoga 3. I must say that I am
> rather surprised that we need a cross tree support to enable this panel
> and I would expect that the driver would be in the HID subtree, not a direct
> input device.
>
> I understand the driver needs to access to the raw I2C commands, but still,
> we could have worked around in the HID tree directly.
> Not to mention that the DT binding would have required only i2c-hid, not a
> custom vendor.
>
> Anyway, Jiri, Dmitry, who wants to take this one?
Hmm, so elan_i2c.ko (and elants_i2c) is intended to be used with devices
that are not compatible with HID protocol, as far as I know. I guess
there are firmwares that can do both, but then we should default to HID.
Duson, any comments?
Thanks!
>
> Cheers,
> Benjamin
>
> drivers/hid/hid-core.c | 1 +
> drivers/input/mouse/elan_i2c_core.c | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 722a925..33a22f4 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -2259,6 +2259,7 @@ static const struct hid_device_id hid_ignore_list[] = {
> { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EM_LT20)
> },
> { HID_USB_DEVICE(USB_VENDOR_ID_DREAM_CHEEKY, 0x0004) },
> { HID_USB_DEVICE(USB_VENDOR_ID_DREAM_CHEEKY, 0x000a) },
> + { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, 0x0400) },
> { HID_USB_DEVICE(USB_VENDOR_ID_ESSENTIAL_REALITY,
> USB_DEVICE_ID_ESSENTIAL_REALITY_P5) },
> { HID_USB_DEVICE(USB_VENDOR_ID_ETT, USB_DEVICE_ID_TC5UH) },
> { HID_USB_DEVICE(USB_VENDOR_ID_ETT, USB_DEVICE_ID_TC4UM) },
> diff --git a/drivers/input/mouse/elan_i2c_core.c
> b/drivers/input/mouse/elan_i2c_core.c
> index 375d98f..ced9a9c 100644
> --- a/drivers/input/mouse/elan_i2c_core.c
> +++ b/drivers/input/mouse/elan_i2c_core.c
> @@ -1110,6 +1110,7 @@ MODULE_DEVICE_TABLE(i2c, elan_id);
> #ifdef CONFIG_ACPI
> static const struct acpi_device_id elan_acpi_id[] = {
> { "ELAN0000", 0 },
> + { "ELAN0600", 0 },
> { }
> };
> MODULE_DEVICE_TABLE(acpi, elan_acpi_id);
> --
> 2.3.4
>
--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html