diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2018-10-19 15:27:20 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2018-10-29 04:16:38 +0000 |
commit | 4286dcd1deded6f954a180ffa0078a08ba8b583d (patch) | |
tree | d0e732faef6a77da670c9d4b7fc7321526c36d73 /src | |
parent | 981f3a47e6ec1d10b2bac0612e86d11bb291415d (diff) |
quirks: switch a few model quirks over to use the new evcode disabling
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'src')
-rw-r--r-- | src/evdev.c | 86 | ||||
-rw-r--r-- | src/quirks.c | 8 | ||||
-rw-r--r-- | src/quirks.h | 8 |
3 files changed, 6 insertions, 96 deletions
diff --git a/src/evdev.c b/src/evdev.c index 602caccc..4a998f41 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1902,51 +1902,6 @@ evdev_pre_configure_model_quirks(struct evdev_device *device) const struct quirk_tuples *t; char *prop; - /* The Cyborg RAT has a mode button that cycles through event codes. - * On press, we get a release for the current mode and a press for the - * next mode: - * E: 0.000001 0004 0004 589833 # EV_MSC / MSC_SCAN 589833 - * E: 0.000001 0001 0118 0000 # EV_KEY / (null) 0 - * E: 0.000001 0004 0004 589834 # EV_MSC / MSC_SCAN 589834 - * E: 0.000001 0001 0119 0001 # EV_KEY / (null) 1 - * E: 0.000001 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +0ms - * E: 0.705000 0004 0004 589834 # EV_MSC / MSC_SCAN 589834 - * E: 0.705000 0001 0119 0000 # EV_KEY / (null) 0 - * E: 0.705000 0004 0004 589835 # EV_MSC / MSC_SCAN 589835 - * E: 0.705000 0001 011a 0001 # EV_KEY / (null) 1 - * E: 0.705000 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +705ms - * E: 1.496995 0004 0004 589833 # EV_MSC / MSC_SCAN 589833 - * E: 1.496995 0001 0118 0001 # EV_KEY / (null) 1 - * E: 1.496995 0004 0004 589835 # EV_MSC / MSC_SCAN 589835 - * E: 1.496995 0001 011a 0000 # EV_KEY / (null) 0 - * E: 1.496995 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +791ms - * - * https://bugs.freedesktop.org/show_bug.cgi?id=92127 - * - * Disable the event codes to avoid stuck buttons. - */ - if (evdev_device_has_model_quirk(device, QUIRK_MODEL_CYBORG_RAT)) { - libevdev_disable_event_code(device->evdev, EV_KEY, 0x118); - libevdev_disable_event_code(device->evdev, EV_KEY, 0x119); - libevdev_disable_event_code(device->evdev, EV_KEY, 0x11a); - } - /* The Apple MagicMouse has a touchpad built-in but the kernel still - * emulates a full 2/3 button mouse for us. Ignore anything from the - * ABS interface - */ - if (evdev_device_has_model_quirk(device, QUIRK_MODEL_APPLE_MAGICMOUSE)) - libevdev_disable_event_type(device->evdev, EV_ABS); - - /* Claims to have double/tripletap but doesn't actually send it - * https://bugzilla.redhat.com/show_bug.cgi?id=1351285 and - * https://bugs.freedesktop.org/show_bug.cgi?id=98538 - */ - if (evdev_device_has_model_quirk(device, QUIRK_MODEL_HP8510_TOUCHPAD) || - evdev_device_has_model_quirk(device, QUIRK_MODEL_HP6910_TOUCHPAD)) { - libevdev_disable_event_code(device->evdev, EV_KEY, BTN_TOOL_DOUBLETAP); - libevdev_disable_event_code(device->evdev, EV_KEY, BTN_TOOL_TRIPLETAP); - } - /* Touchpad is a clickpad but INPUT_PROP_BUTTONPAD is not set, see * fdo bug 97147. Remove when RMI4 is commonplace */ if (evdev_device_has_model_quirk(device, QUIRK_MODEL_HP_STREAM11_TOUCHPAD)) @@ -1958,41 +1913,6 @@ evdev_pre_configure_model_quirks(struct evdev_device *device) if (evdev_device_has_model_quirk(device, QUIRK_MODEL_HP_ZBOOK_STUDIO_G3)) libevdev_set_abs_maximum(device->evdev, ABS_MT_SLOT, 1); - /* Logitech Marble Mouse claims to have a middle button, same for - * the Kensington Orbit */ - if (evdev_device_has_model_quirk(device, - QUIRK_MODEL_LOGITECH_MARBLE_MOUSE) || - evdev_device_has_model_quirk(device, - QUIRK_MODEL_KENSINGTON_ORBIT)) - libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE); - - /* Aiptek tablets have tilt but don't send events */ - if (evdev_device_has_model_quirk(device, QUIRK_MODEL_TABLET_NO_TILT)) { - libevdev_disable_event_code(device->evdev, EV_ABS, ABS_TILT_X); - libevdev_disable_event_code(device->evdev, EV_ABS, ABS_TILT_Y); - } - - /* Lenovo Carbon X1 6th gen sends bogus ABS_MT_TOOL_TYPE events for - * MT_TOOL_PALM */ - if (evdev_device_has_model_quirk(device, QUIRK_MODEL_LENOVO_CARBON_X1_6TH)) - libevdev_disable_event_code(device->evdev, - EV_ABS, - ABS_MT_TOOL_TYPE); - - /* Asus UX302LA touchpad doesn't update the pressure values once two - * fingers are down. So let's just pretend it doesn't have pressure - * at all. https://gitlab.freedesktop.org/libinput/libinput/issues/145 - */ - if (evdev_device_has_model_quirk(device, - QUIRK_MODEL_ASUS_UX320LA_TOUCHPAD)) { - libevdev_disable_event_code(device->evdev, - EV_ABS, - ABS_MT_PRESSURE); - libevdev_disable_event_code(device->evdev, - EV_ABS, - ABS_PRESSURE); - } - /* Generally we don't care about MSC_TIMESTAMP and it can cause * unnecessary wakeups but on some devices we need to watch it for * pointer jumps */ @@ -2018,6 +1938,12 @@ evdev_pre_configure_model_quirks(struct evdev_device *device) libevdev_disable_event_code(device->evdev, type, code); + evdev_log_debug(device, + "quirks: disabling %s %s (%#x %#x)\n", + libevdev_event_type_get_name(type), + libevdev_event_code_get_name(type, code), + type, + code); } } diff --git a/src/quirks.c b/src/quirks.c index b163d099..debedfb6 100644 --- a/src/quirks.c +++ b/src/quirks.c @@ -231,25 +231,17 @@ quirk_get_name(enum quirk q) { switch(q) { case QUIRK_MODEL_ALPS_TOUCHPAD: return "ModelALPSTouchpad"; - case QUIRK_MODEL_APPLE_MAGICMOUSE: return "ModelAppleMagicMouse"; case QUIRK_MODEL_APPLE_TOUCHPAD: return "ModelAppleTouchpad"; case QUIRK_MODEL_APPLE_TOUCHPAD_ONEBUTTON: return "ModelAppleTouchpadOneButton"; - case QUIRK_MODEL_ASUS_UX320LA_TOUCHPAD: return "ModelAsusUX302LATouchpad"; case QUIRK_MODEL_BOUNCING_KEYS: return "ModelBouncingKeys"; case QUIRK_MODEL_CHROMEBOOK: return "ModelChromebook"; case QUIRK_MODEL_CLEVO_W740SU: return "ModelClevoW740SU"; - case QUIRK_MODEL_CYBORG_RAT: return "ModelCyborgRat"; - case QUIRK_MODEL_HP6910_TOUCHPAD: return "ModelHP6910Touchpad"; - case QUIRK_MODEL_HP8510_TOUCHPAD: return "ModelHP8510Touchpad"; case QUIRK_MODEL_HP_PAVILION_DM4_TOUCHPAD: return "ModelHPPavilionDM4Touchpad"; case QUIRK_MODEL_HP_STREAM11_TOUCHPAD: return "ModelHPStream11Touchpad"; case QUIRK_MODEL_HP_ZBOOK_STUDIO_G3: return "ModelHPZBookStudioG3"; - case QUIRK_MODEL_KENSINGTON_ORBIT: return "ModelKensingtonOrbit"; - case QUIRK_MODEL_LENOVO_CARBON_X1_6TH: return "ModelLenovoCarbonX16th"; case QUIRK_MODEL_LENOVO_SCROLLPOINT: return "ModelLenovoScrollPoint"; case QUIRK_MODEL_LENOVO_T450_TOUCHPAD: return "ModelLenovoT450Touchpad"; case QUIRK_MODEL_LENOVO_X230: return "ModelLenovoX230"; - case QUIRK_MODEL_LOGITECH_MARBLE_MOUSE: return "ModelLogitechMarbleMouse"; case QUIRK_MODEL_SYNAPTICS_SERIAL_TOUCHPAD: return "ModelSynapticsSerialTouchpad"; case QUIRK_MODEL_SYSTEM76_BONOBO: return "ModelSystem76Bonobo"; case QUIRK_MODEL_SYSTEM76_GALAGO: return "ModelSystem76Galago"; diff --git a/src/quirks.h b/src/quirks.h index c8898739..735ed56d 100644 --- a/src/quirks.h +++ b/src/quirks.h @@ -63,25 +63,17 @@ struct quirk_tuples { */ enum quirk { QUIRK_MODEL_ALPS_TOUCHPAD = 100, - QUIRK_MODEL_APPLE_MAGICMOUSE, QUIRK_MODEL_APPLE_TOUCHPAD, QUIRK_MODEL_APPLE_TOUCHPAD_ONEBUTTON, - QUIRK_MODEL_ASUS_UX320LA_TOUCHPAD, QUIRK_MODEL_BOUNCING_KEYS, QUIRK_MODEL_CHROMEBOOK, QUIRK_MODEL_CLEVO_W740SU, - QUIRK_MODEL_CYBORG_RAT, - QUIRK_MODEL_HP6910_TOUCHPAD, - QUIRK_MODEL_HP8510_TOUCHPAD, QUIRK_MODEL_HP_PAVILION_DM4_TOUCHPAD, QUIRK_MODEL_HP_STREAM11_TOUCHPAD, QUIRK_MODEL_HP_ZBOOK_STUDIO_G3, - QUIRK_MODEL_KENSINGTON_ORBIT, - QUIRK_MODEL_LENOVO_CARBON_X1_6TH, QUIRK_MODEL_LENOVO_SCROLLPOINT, QUIRK_MODEL_LENOVO_T450_TOUCHPAD, QUIRK_MODEL_LENOVO_X230, - QUIRK_MODEL_LOGITECH_MARBLE_MOUSE, QUIRK_MODEL_SYNAPTICS_SERIAL_TOUCHPAD, QUIRK_MODEL_SYSTEM76_BONOBO, QUIRK_MODEL_SYSTEM76_GALAGO, |