[PATCH v3 4/4] evdev: Fix reported resolution of Lenovo X230 touchpads
Peter Hutterer
peter.hutterer at who-t.net
Thu Apr 16 22:43:18 PDT 2015
On Thu, Apr 16, 2015 at 02:41:36PM -0400, Benjamin Tissoires wrote:
> The Lenovo X230 advertise a vertical resolution of 136, which gives a size
> of 31 mm. The actual size of the touchpad is 40mm, so override the
> resolution to 100.
>
> /!\ This is a temporary fix. The proper fix should go in hwdb. /!\
>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires at gmail.com>
> ---
> changes to v1:
> - updated with previous series :)
fwiw, the udev fixes went into upstream, so the hwdb patch would be
something like:
evdev:name:TPPS/2 IBM TrackPoint:dmi:*ThinkpadX230*:
EVDEV_ABS_01=::100
EVDEV_ABS_36=::100
Happy to merge any tested patches from you :)
Cheers,
Peter
> src/evdev.c | 13 +++++++++++++
> 1 files changed, 13 insertions(+), 0 deletions(-)
>
> diff --git a/src/evdev.c b/src/evdev.c
> index 0b705e4..8cd12cb 100644
> --- a/src/evdev.c
> +++ b/src/evdev.c
> @@ -1491,6 +1491,17 @@ evdev_fix_android_mt(struct evdev_device *device)
> libevdev_get_abs_info(evdev, ABS_MT_POSITION_Y));
> }
>
> +static inline void
> +evdev_fix_x230_res(struct evdev_device *device)
> +{
> + struct libevdev *evdev = device->evdev;
> +
> + /* ugly hack while EV_ABS_OVERRIDE is merged in udev */
> +
> + if (device->model == EVDEV_MODEL_LENOVO_X230)
> + libevdev_set_abs_resolution(evdev, ABS_Y, 100);
> +}
> +
> static inline int
> evdev_check_min_max(struct evdev_device *device, unsigned int code)
> {
> @@ -1681,6 +1692,8 @@ evdev_configure_device(struct evdev_device *device)
> evdev_fix_android_mt(device);
>
> if (libevdev_has_event_code(evdev, EV_ABS, ABS_X)) {
> + evdev_fix_x230_res(device);
> +
> if (evdev_fix_abs_resolution(device,
> ABS_X,
> ABS_Y,
> --
> 1.7.1
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
More information about the wayland-devel
mailing list