Hi Dmitry, Sorry later for reply. If touchpad is designed for Window OS, the firmware will support standard HID mouse format (non-driver) and elan raw data format (with driver). So, if user change OS from Window to Linux, touchpad will work fine under HID format. ---------------------------------------------- Thanks, ELAN Duson ✉ Email: dusonlin@xxxxxxxxxx ---------------------------------------------- > Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> 於 2015年4月4日 上午5:05 寫道: > > 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 <alessio@xxxxxxxxxx> >> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx> >> --- >> >> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html