mfd: Add BTN_TOUCH event to ucb1x00-ts
authorJochen Friedrich <jochen@scram.de>
Sun, 30 Jan 2011 12:40:56 +0000 (13:40 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Wed, 23 Mar 2011 09:41:45 +0000 (10:41 +0100)
Add BTN_TOUCH event reporting to ucb1x00_ts touchscreen driver.
This will make this touchscreen driver behave consistently wrt.
BTN_TOUCH.

Signed-off-by: Jochen Friedrich <jochen@scram.de>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/ucb1x00-ts.c

index 92b85e2..38ffbd5 100644 (file)
@@ -60,6 +60,7 @@ static inline void ucb1x00_ts_evt_add(struct ucb1x00_ts *ts, u16 pressure, u16 x
        input_report_abs(idev, ABS_X, x);
        input_report_abs(idev, ABS_Y, y);
        input_report_abs(idev, ABS_PRESSURE, pressure);
+       input_report_key(idev, BTN_TOUCH, 1);
        input_sync(idev);
 }
 
@@ -68,6 +69,7 @@ static inline void ucb1x00_ts_event_release(struct ucb1x00_ts *ts)
        struct input_dev *idev = ts->idev;
 
        input_report_abs(idev, ABS_PRESSURE, 0);
+       input_report_key(idev, BTN_TOUCH, 0);
        input_sync(idev);
 }
 
@@ -384,7 +386,8 @@ static int ucb1x00_ts_add(struct ucb1x00_dev *dev)
        idev->open       = ucb1x00_ts_open;
        idev->close      = ucb1x00_ts_close;
 
-       __set_bit(EV_ABS, idev->evbit);
+       idev->evbit[0]   = BIT_MASK(EV_ABS) | BIT_MASK(EV_KEY);
+       idev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
 
        input_set_drvdata(idev, ts);