From: Peter Hutterer Date: Fri, 19 Oct 2018 05:27:20 +0000 (+1000) Subject: quirks: switch a few model quirks over to use the new evcode disabling X-Git-Tag: 1.12.3~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4286dcd1deded6f954a180ffa0078a08ba8b583d;p=platform%2Fupstream%2Flibinput.git quirks: switch a few model quirks over to use the new evcode disabling Signed-off-by: Peter Hutterer --- diff --git a/quirks/30-vendor-aiptek.quirks b/quirks/30-vendor-aiptek.quirks index e5319d5..23194e0 100644 --- a/quirks/30-vendor-aiptek.quirks +++ b/quirks/30-vendor-aiptek.quirks @@ -4,4 +4,4 @@ MatchUdevType=tablet MatchBus=usb MatchVendor=0x08CA -ModelTabletNoTilt=1 +AttrEventCodeDisable=ABS_TILT_X;ABS_TILT_Y; diff --git a/quirks/30-vendor-kensington.quirks b/quirks/30-vendor-kensington.quirks index 02eb40f..d422a58 100644 --- a/quirks/30-vendor-kensington.quirks +++ b/quirks/30-vendor-kensington.quirks @@ -1,6 +1,7 @@ +# Kensington Orbit claims to have a middle button, same for [Kensington Orbit Scroll Wheel] MatchBus=usb MatchVendor=0x047d MatchProduct=0x2048 -ModelKensingtonOrbit=1 ModelTrackball=1 +AttrEventCodeDisable=BTN_MIDDLE diff --git a/quirks/30-vendor-logitech.quirks b/quirks/30-vendor-logitech.quirks index 12b48e4..7292234 100644 --- a/quirks/30-vendor-logitech.quirks +++ b/quirks/30-vendor-logitech.quirks @@ -4,12 +4,13 @@ MatchName=*Logitech M570* ModelTrackball=1 +# Logitech Marble Mouse claims to have a middle button [Logitech Marble Mouse Trackball] MatchUdevType=mouse MatchBus=usb MatchVendor=0x46D MatchProduct=0xC408 -ModelLogitechMarbleMouse=1 +AttrEventCodeDisable=BTN_MIDDLE [Logitech K400] MatchUdevType=mouse diff --git a/quirks/50-system-apple.quirks b/quirks/50-system-apple.quirks index 9f6d172..4da030b 100644 --- a/quirks/50-system-apple.quirks +++ b/quirks/50-system-apple.quirks @@ -19,12 +19,15 @@ ModelAppleTouchpad=1 MatchName=*Apple Inc. Apple Internal Keyboard* AttrKeyboardIntegration=internal +# 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 [Apple MagicMouse] MatchUdevType=mouse MatchBus=bluetooth MatchVendor=0x05AC MatchProduct=0x030D -ModelAppleMagicMouse=1 +AttrEventCodeDisable=EV_ABS [Apple Magic Trackpad v1 (2010, clickpad)] MatchUdevType=touchpad diff --git a/quirks/50-system-asus.quirks b/quirks/50-system-asus.quirks index e03c39e..5299e1b 100644 --- a/quirks/50-system-asus.quirks +++ b/quirks/50-system-asus.quirks @@ -10,7 +10,10 @@ MatchName=*ETPS/2 Elantech Touchpad* MatchDMIModalias=dmi:*svnASUSTeKComputerInc.:pnUX21E:* AttrPressureRange=24:10 +# 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 [Asus UX302LA] MatchName=*ETPS/2 Elantech Touchpad* MatchDMIModalias=dmi:*svnASUSTeKCOMPUTERINC.:pnUX302LA:* -ModelAsusUX302LATouchpad=1 +AttrEventCodeDisable=ABS_MT_PRESSURE;ABS_PRESSURE; diff --git a/quirks/50-system-cyborg.quirks b/quirks/50-system-cyborg.quirks index d999dc8..6a21f64 100644 --- a/quirks/50-system-cyborg.quirks +++ b/quirks/50-system-cyborg.quirks @@ -1,8 +1,31 @@ # Do not edit this file, it will be overwritten on update +# 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. [Saitek Cyborg RAT5] MatchUdevType=mouse MatchBus=usb MatchVendor=0x06A3 MatchProduct=0x0CD5 -ModelCyborgRat=1 +# EV_KEY 0x118, 0x119, 0x11a +AttrEventCodeDisable=EV_KEY:0x118;EV_KEY:0x119;EV_KEY:0x11a diff --git a/quirks/50-system-hp.quirks b/quirks/50-system-hp.quirks index c1562de..ac50c09 100644 --- a/quirks/50-system-hp.quirks +++ b/quirks/50-system-hp.quirks @@ -1,14 +1,18 @@ # Do not edit this file, it will be overwritten on update - +# +# Claims to have double/tripletap but doesn't actually send it +# https://bugs.freedesktop.org/show_bug.cgi?id=98538 [HP Compaq 6910p] MatchName=*SynPS/2 Synaptics TouchPad MatchDMIModalias=dmi:*svnHewlett-Packard:*pnHPCompaq6910p* -ModelHP6910Touchpad=1 +AttrEventCodeDisable=BTN_TOOL_DOUBLETAP;BTN_TOOL_TRIPLETAP; +# Claims to have double/tripletap but doesn't actually send it +# https://bugzilla.redhat.com/show_bug.cgi?id=1351285 and [HP Compaq 8510w] MatchName=*SynPS/2 Synaptics TouchPad MatchDMIModalias=dmi:*svnHewlett-Packard:*pnHPCompaq8510w* -ModelHP8510Touchpad=1 +AttrEventCodeDisable=BTN_TOOL_DOUBLETAP;BTN_TOOL_TRIPLETAP; [HP Pavillion dmi4] MatchName=*SynPS/2 Synaptics TouchPad diff --git a/quirks/50-system-lenovo.quirks b/quirks/50-system-lenovo.quirks index 2f1b8e8..6e05f3b 100644 --- a/quirks/50-system-lenovo.quirks +++ b/quirks/50-system-lenovo.quirks @@ -70,11 +70,12 @@ MatchName=AT Translated Set 2 keyboard MatchDMIModalias=dmi:*svnLENOVO:*pvrThinkPad*Yoga*:* ModelTabletModeNoSuspend=1 -# Lenovo Carbon X1 6th gen (RMI4 only, PS/2 is broken on this device) +# Lenovo Carbon X1 6th gen (RMI4 only, PS/2 is broken on this device, +# sends bogus ABS_MT_TOOL_TYPE events for MT_TOOL_PALM [Lenovo Carbon X1 6th gen] MatchName=Synaptics TM3288-011 MatchDMIModalias=dmi:*svnLenovo:*pvrThinkPadX1Carbon6th:* -ModelLenovoCarbonX16th=1 +AttrEventCodeDisable=ABS_MT_TOOL_TYPE [Lenovo X41 Tablet] MatchName=AT Translated Set 2 keyboard diff --git a/src/evdev.c b/src/evdev.c index 602cacc..4a998f4 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 b163d09..debedfb 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 c889873..735ed56 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,