input: touchscreep :qtouch: report the finger tracking id
authormakarand.karvekar <makarand.karvekar@motorola.com>
Tue, 7 Sep 2010 19:54:28 +0000 (14:54 -0500)
committerColin Cross <ccross@android.com>
Wed, 6 Oct 2010 23:51:06 +0000 (16:51 -0700)
USE ABS_MT_TRACKING_ID to report the finger tracking id

Change-Id: I8198eea12c5a90607a6dab48d96c6872a1c5e783
Signed-off-by: makarand.karvekar <makarand.karvekar@motorola.com>
drivers/input/touchscreen/qtouch_obp_ts.c

index 3f47ee7e7d5ca5749589b7ac159cf1673914d037..3d84d300ee810b4f098ca9d6d948e0b0519edee4 100644 (file)
@@ -908,6 +908,8 @@ static int do_touch_multi_msg(struct qtouch_ts_data *ts, struct qtm_object *obj,
                                 ts->finger_data[i].x_data);
                input_report_abs(ts->input_dev, ABS_MT_POSITION_Y,
                                 ts->finger_data[i].y_data);
+               input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID,
+                                i+1);
                input_mt_sync(ts->input_dev);
        }
        input_sync(ts->input_dev);
@@ -1128,6 +1130,8 @@ static int qtouch_ts_register_input(struct qtouch_ts_data *ts)
                input_set_abs_params(ts->input_dev, ABS_MT_WIDTH_MAJOR,
                                     ts->pdata->abs_min_w, ts->pdata->abs_max_w,
                                     ts->pdata->fuzz_w, 0);
+               input_set_abs_params(ts->input_dev, ABS_MT_TRACKING_ID,
+                                    0, ts->pdata->multi_touch_cfg.num_touch, 1, 0);
        }
 
        memset(&ts->finger_data[0], 0,
@@ -1929,6 +1933,7 @@ static int qtouch_ts_resume(struct i2c_client *client)
                if (ts->finger_data[i].down == 0)
                        continue;
                input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0);
+               input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, i+1);
                input_mt_sync(ts->input_dev);
                memset(&ts->finger_data[i], 0, sizeof(struct coordinate_map));
        }