Bug 89641
Summary: | Touchpad on E440 uses wrong min max values | ||
---|---|---|---|
Product: | Drivers | Reporter: | Filip Ayazi (filipayazi) |
Component: | Input Devices | Assignee: | drivers_input-devices |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | bensagal, dmitry.torokhov, filipayazi |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | v3.18 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
Patch to make ranges from the device override hardcoded values
Set correct min-max values for E440 |
Description
Filip Ayazi
2014-12-12 22:30:44 UTC
Here is a simple patch to implement the fix. diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c index f947292..c5e3ffe 100644 --- a/drivers/input/mouse/synaptics.c +++ b/drivers/input/mouse/synaptics.c @@ -361,7 +361,7 @@ static int synaptics_resolution(struct psmouse *psmouse) priv->x_max = min_max_pnpid_table[i].x_max; priv->y_min = min_max_pnpid_table[i].y_min; priv->y_max = min_max_pnpid_table[i].y_max; - return 0; + break; } } Created attachment 160421 [details]
Patch to make ranges from the device override hardcoded values
Implements the mentioned possible fix.
Ben, without the original patch, what was the touchpad's behavior? It looks like we have a clash... Filip, what are the min/max ranges reported by your device (not touchpad-edge-detector, but the ABS ranges with your patch)? The touchpad was jumpy at the edge of the pad Touchpad-edge-detector reports these values from the kernel with the patch (I believe these are the values reported by the device): kernel x[1264..5044] y[1171..3398] and values touchpad sends touchpad x[1024..5044] y[2457..4832] These values are for some reason different from those I got few days ago and different from those reported to the kernel (it appears to be working fine even though the values are off). I suppose it might be a hardware problem with my device, can someone with the same laptop verify this? I tested another thinkpad E440 yesterday, and the behaviour and measured values were the same as on mine x[1024..5045] y[2457..4832] and the values reported to the kernel were still wrong (and therefore the patch is wrong). This was not noticeable on Linux Mint (cinnamon), but made the touchpad almost unusable in Lubuntu for some reason... Attached is a patch to overwrite the values set for E540, if it is of any use to anyone, but it really is a clash. Created attachment 169551 [details]
Set correct min-max values for E440
Can you please try the kernel form "synaptics" branch of http://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git ? It has quite a bit of changes to address issues with the touchpads on Lenovo boxes. |