struct edt_ft5x06_ts_data {
        struct i2c_client *client;
        struct input_dev *input;
+       struct touchscreen_properties prop;
        u16 num_x;
        u16 num_y;
 
                if (!down)
                        continue;
 
-               input_report_abs(tsdata->input, ABS_MT_POSITION_X, x);
-               input_report_abs(tsdata->input, ABS_MT_POSITION_Y, y);
+               touchscreen_report_pos(tsdata->input, &tsdata->prop, x, y,
+                                      true);
        }
 
        input_mt_report_pointer_emulation(tsdata->input, true);
        input_set_abs_params(input, ABS_MT_POSITION_Y,
                             0, tsdata->num_y * 64 - 1, 0, 0);
 
-       touchscreen_parse_properties(input, true, NULL);
+       touchscreen_parse_properties(input, true, &tsdata->prop);
 
        error = input_mt_init_slots(input, tsdata->max_support_points,
                                INPUT_MT_DIRECT);