From de1ca69f34bd830584be294c973ec04c46be64ef Mon Sep 17 00:00:00 2001 From: Zhang Jiejing Date: Thu, 3 Mar 2011 18:04:40 +0800 Subject: ENGR00140122 MX53_SMD: p1003: report single pointer. Since Ubuntu needs report single pointer, I add BTN_TOUCH event in single pointer event report. It will not affact Android, also made ubuntu touchscreen works. Signed-off-by: Zhang Jiejing --- drivers/input/touchscreen/p1003_v33-ts.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/input/touchscreen/p1003_v33-ts.c b/drivers/input/touchscreen/p1003_v33-ts.c index ede2e298867e..0f027328164b 100644 --- a/drivers/input/touchscreen/p1003_v33-ts.c +++ b/drivers/input/touchscreen/p1003_v33-ts.c @@ -147,6 +147,9 @@ static void p1003_work(struct work_struct *work) input_event(input, EV_ABS, ABS_MT_POSITION_Y, y1); input_event(input, EV_ABS, ABS_MT_TOUCH_MAJOR, 1); input_mt_sync(input); + input_event(input, EV_ABS, ABS_X, x1); + input_event(input, EV_ABS, ABS_Y, y1); + input_event(input, EV_KEY, BTN_TOUCH, 1); input_sync(input); old_state->x1 = x1; old_state->y1 = y1; @@ -186,6 +189,7 @@ static void p1003_work(struct work_struct *work) * release to user space. */ input_event(input, EV_ABS, ABS_MT_TOUCH_MAJOR, 0); input_mt_sync(input); + input_event(input, EV_KEY, BTN_TOUCH, 0); input_sync(input); old_state->state = data[0]; } @@ -276,6 +280,9 @@ static int __devinit p1003_probe(struct i2c_client *client, __set_bit(EV_ABS, input_dev->evbit); __set_bit(EV_KEY, input_dev->evbit); __set_bit(BTN_TOUCH, input_dev->keybit); + __set_bit(ABS_X, input_dev->absbit); + __set_bit(ABS_Y, input_dev->absbit); + __set_bit(ABS_PRESSURE, input_dev->absbit); input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, xmax, 0, 0); input_set_abs_params(input_dev, ABS_MT_POSITION_Y, 0, ymax, 0, 0); -- cgit v1.2.3