]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - drivers/input/mouse/synaptics.c
Merge tag 'v4.15' into next
[thirdparty/kernel/stable.git] / drivers / input / mouse / synaptics.c
index cd9f61cb3fc67fd3f5f8fe7a55fb1094d5bf1672..3d2e23a0ae39dd6b9475db31ce2b30cc930ddc93 100644 (file)
@@ -1281,6 +1281,16 @@ static void set_input_params(struct psmouse *psmouse,
                                    INPUT_MT_POINTER |
                                    (cr48_profile_sensor ?
                                        INPUT_MT_TRACK : INPUT_MT_SEMI_MT));
+
+               /*
+                * For semi-mt devices we send ABS_X/Y ourselves instead of
+                * input_mt_report_pointer_emulation. But
+                * input_mt_init_slots() resets the fuzz to 0, leading to a
+                * filtered ABS_MT_POSITION_X but an unfiltered ABS_X
+                * position. Let's re-initialize ABS_X/Y here.
+                */
+               if (!cr48_profile_sensor)
+                       set_abs_position_params(dev, &priv->info, ABS_X, ABS_Y);
        }
 
        if (SYN_CAP_PALMDETECT(info->capabilities))