|
@@ -1280,6 +1280,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))
|