mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-05-05 18:08:09 +02:00
touchpad: add a quirk for the HP Pavilion dm4
This touchpad has cursor jumps for 2-finger scrolling that also affects the single-finger emulation. So disable any multitouch bits on this device and disallow the 2-finger scroll method. This still allows for 2-finger tapping/clicking. https://bugs.freedesktop.org/show_bug.cgi?id=91135 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
4bb3da4115
commit
996b845d68
4 changed files with 17 additions and 1 deletions
|
|
@ -1770,8 +1770,12 @@ tp_init_slots(struct tp_dispatch *tp,
|
||||||
* If three fingers are set down in the same frame, one slot has the
|
* If three fingers are set down in the same frame, one slot has the
|
||||||
* coordinates 0/0 and may not get updated for several frames.
|
* coordinates 0/0 and may not get updated for several frames.
|
||||||
* See https://bugzilla.redhat.com/show_bug.cgi?id=1295073
|
* See https://bugzilla.redhat.com/show_bug.cgi?id=1295073
|
||||||
|
*
|
||||||
|
* The HP Pavilion DM4 touchpad has random jumps in slots, including
|
||||||
|
* for single-finger movement. See fdo bug 91135
|
||||||
*/
|
*/
|
||||||
if (tp->semi_mt) {
|
if (tp->semi_mt ||
|
||||||
|
device->model_flags & EVDEV_MODEL_HP_PAVILION_DM4_TOUCHPAD) {
|
||||||
tp->num_slots = 1;
|
tp->num_slots = 1;
|
||||||
tp->slot = 0;
|
tp->slot = 0;
|
||||||
tp->has_mt = false;
|
tp->has_mt = false;
|
||||||
|
|
@ -1874,6 +1878,12 @@ tp_scroll_get_methods(struct tp_dispatch *tp)
|
||||||
{
|
{
|
||||||
uint32_t methods = LIBINPUT_CONFIG_SCROLL_EDGE;
|
uint32_t methods = LIBINPUT_CONFIG_SCROLL_EDGE;
|
||||||
|
|
||||||
|
/* Any movement with more than one finger has random cursor
|
||||||
|
* jumps. Don't allow for 2fg scrolling on this device, see
|
||||||
|
* fdo bug 91135 */
|
||||||
|
if (tp->device->model_flags & EVDEV_MODEL_HP_PAVILION_DM4_TOUCHPAD)
|
||||||
|
return LIBINPUT_CONFIG_SCROLL_EDGE;
|
||||||
|
|
||||||
if (tp->ntouches >= 2)
|
if (tp->ntouches >= 2)
|
||||||
methods |= LIBINPUT_CONFIG_SCROLL_2FG;
|
methods |= LIBINPUT_CONFIG_SCROLL_2FG;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2186,6 +2186,7 @@ evdev_read_model_flags(struct evdev_device *device)
|
||||||
MODEL(HP8510_TOUCHPAD),
|
MODEL(HP8510_TOUCHPAD),
|
||||||
MODEL(HP6910_TOUCHPAD),
|
MODEL(HP6910_TOUCHPAD),
|
||||||
MODEL(HP_ZBOOK_STUDIO_G3),
|
MODEL(HP_ZBOOK_STUDIO_G3),
|
||||||
|
MODEL(HP_PAVILION_DM4_TOUCHPAD),
|
||||||
#undef MODEL
|
#undef MODEL
|
||||||
{ "ID_INPUT_TRACKBALL", EVDEV_MODEL_TRACKBALL },
|
{ "ID_INPUT_TRACKBALL", EVDEV_MODEL_TRACKBALL },
|
||||||
{ NULL, EVDEV_MODEL_DEFAULT },
|
{ NULL, EVDEV_MODEL_DEFAULT },
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,7 @@ enum evdev_device_model {
|
||||||
EVDEV_MODEL_HP8510_TOUCHPAD = (1 << 21),
|
EVDEV_MODEL_HP8510_TOUCHPAD = (1 << 21),
|
||||||
EVDEV_MODEL_HP6910_TOUCHPAD = (1 << 22),
|
EVDEV_MODEL_HP6910_TOUCHPAD = (1 << 22),
|
||||||
EVDEV_MODEL_HP_ZBOOK_STUDIO_G3 = (1 << 23),
|
EVDEV_MODEL_HP_ZBOOK_STUDIO_G3 = (1 << 23),
|
||||||
|
EVDEV_MODEL_HP_PAVILION_DM4_TOUCHPAD = (1 << 24),
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mt_slot {
|
struct mt_slot {
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,10 @@ libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnHewlett-Packard:*pnHPCompaq6910
|
||||||
libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnHewlett-Packard:*pnHPCompaq8510w*
|
libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnHewlett-Packard:*pnHPCompaq8510w*
|
||||||
LIBINPUT_MODEL_HP8510_TOUCHPAD=1
|
LIBINPUT_MODEL_HP8510_TOUCHPAD=1
|
||||||
|
|
||||||
|
# HP Pavillion dm4
|
||||||
|
libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnHewlett-Packard:*pnHPPaviliondm4NotebookPC*
|
||||||
|
LIBINPUT_MODEL_HP_PAVILION_DM4_TOUCHPAD=1
|
||||||
|
|
||||||
# HP Stream 11
|
# HP Stream 11
|
||||||
libinput:name:SYN1EDE:00 06CB:7442:dmi:*svnHewlett-Packard:pnHPStreamNotebookPC11*
|
libinput:name:SYN1EDE:00 06CB:7442:dmi:*svnHewlett-Packard:pnHPStreamNotebookPC11*
|
||||||
LIBINPUT_MODEL_HP_STREAM11_TOUCHPAD=1
|
LIBINPUT_MODEL_HP_STREAM11_TOUCHPAD=1
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue