JJ Ding wrote: > We used to have a "force_elantech" module param to force the TP to be > detected as Elan, but I removed it when I was updating elantech.c to > support newer models. Maybe you can convince Dmitry to add it back, but > still, this kind of Elan touchpads is not supported as multi-touch > pointing device, so I wouldn't recommand it. Neat. > I hope this helps. Definitely; thanks for explaining. Nicola, I'm still curious about the following: >> E.g., is there another OS with a driver that detects it as Elantech? If another OS offers more functionality, then we would know the hardware is capable of it. The patch JJ described follows, in case you want to experiment. -- >8 -- Subject: Input: elantech - allow forcing Elantech protocol when knock fails This does not quite revert 4af61e90270e35bafa9e99a3c48fb3f363da592d ("Input: elantech - remove module parameter force_elantech") --- the old force_elantech parameter was about ignoring an unrecognized response to ETP_FW_VERSION_QUERY, while this one is about ignoring unrecognized responses to the magic knock. This patch is just for experimentation and is not meant for inclusion. --- drivers/input/mouse/elantech.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c index d2c0db159b18..55ac1aa5e943 100644 --- a/drivers/input/mouse/elantech.c +++ b/drivers/input/mouse/elantech.c @@ -27,6 +27,10 @@ fmt, ##__VA_ARGS__); \ } while (0) +static bool force_elantech; +module_param_named(force_elantech, force_elantech, bool, 0644); +MODULE_PARM_DESC(force_elantech, "Force the Elantech PS/2 protocol extension to be used, 1 = enabled, 0 = disabled (default)."); + /* * Send a Synaptics style sliced query command */ @@ -1195,10 +1199,14 @@ int elantech_detect(struct psmouse *psmouse, bool set_properties) */ if (param[0] != 0x3c || param[1] != 0x03 || (param[2] != 0xc8 && param[2] != 0x00)) { - psmouse_dbg(psmouse, - "unexpected magic knock result 0x%02x, 0x%02x, 0x%02x.\n", - param[0], param[1], param[2]); - return -1; + if (!force_elantech) { + psmouse_dbg(psmouse, + "unexpected magic knock result 0x%02x, 0x%02x, 0x%02x.\n", + param[0], param[1], param[2]); + return -1; + } + psmouse_warning(psmouse, "Unexpected magic knock result.\n"); + psmouse_info(psmouse, "Enabling anyway due to force_elantech.\n"); } /* -- 1.7.10.2 -- 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