Re: Elantech touchpad detected as Logitech PS2 Wheel Mouse

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'd like to thank you all for the time you dedicated to this problem.
I'll try to experiment with the patch and I'll report if something
interesting happens.

@Jonathan: there are two things that make me think to have a elantech
touchpad. First, a sticker from the manufacturer below laptop's battery
pack (in the slot, you can see it only if you remove the battery)
labeled "ELANTEK". Second, I think more important, I've played around
(about two months ago) with dkms and patches to psmouse. More in detail,
I tried the patch from Seth Forshee (see
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/681904/comments/111).
Through it didn't fix the issue (the touchpad was totally unusable due
to continuous "sync lost" messages) the touchpad was recognized as an
elantech (I don't remember the details, but I could try to build the
module again and mail some info).

Thanks again,

Nicola

Il 21/05/12 10:28, Jonathan Nieder ha scritto:
> 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");
>  	}
>  
>  	/*

--
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


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux