Input: bcm5974 - add BTN_TOUCH event for mousedev benefit
authorHenrik Rydberg <rydberg@euromail.se>
Fri, 5 Sep 2008 02:28:31 +0000 (22:28 -0400)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 5 Sep 2008 02:57:26 +0000 (22:57 -0400)
The mousedev driver requires the use of BTN_TOUCH events to process
ABS_X and ABS_Y events properly, which is what is needed for the
bcm5974-based apple computers to have a functional pointer out-of-the-box.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/mouse/bcm5974.c

index 8568211..18f4d7f 100644 (file)
@@ -253,6 +253,7 @@ static void setup_events_to_report(struct input_dev *input_dev,
                                0, cfg->y.dim, cfg->y.fuzz, 0);
 
        __set_bit(EV_KEY, input_dev->evbit);
                                0, cfg->y.dim, cfg->y.fuzz, 0);
 
        __set_bit(EV_KEY, input_dev->evbit);
+       __set_bit(BTN_TOUCH, input_dev->keybit);
        __set_bit(BTN_TOOL_FINGER, input_dev->keybit);
        __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
        __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit);
        __set_bit(BTN_TOOL_FINGER, input_dev->keybit);
        __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
        __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit);
@@ -320,6 +321,7 @@ static int report_tp_state(struct bcm5974 *dev, int size)
        if (dev->fingers > nmax)
                dev->fingers = nmax;
 
        if (dev->fingers > nmax)
                dev->fingers = nmax;
 
+       input_report_key(input, BTN_TOUCH, dev->fingers > 0);
        input_report_key(input, BTN_TOOL_FINGER, dev->fingers == 1);
        input_report_key(input, BTN_TOOL_DOUBLETAP, dev->fingers == 2);
        input_report_key(input, BTN_TOOL_TRIPLETAP, dev->fingers > 2);
        input_report_key(input, BTN_TOOL_FINGER, dev->fingers == 1);
        input_report_key(input, BTN_TOOL_DOUBLETAP, dev->fingers == 2);
        input_report_key(input, BTN_TOOL_TRIPLETAP, dev->fingers > 2);