Input: bcm5974 - Report button also for zero fingers
authorHenrik Rydberg <rydberg@euromail.se>
Fri, 25 Feb 2011 17:33:13 +0000 (09:33 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sun, 27 Feb 2011 09:48:30 +0000 (01:48 -0800)
With the current code, pressing the integrated button with an
isolating tool does not result in any button report. Fixed
with this this patch.

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

index b952317..d248372 100644 (file)
@@ -390,10 +390,6 @@ static int report_tp_state(struct bcm5974 *dev, int size)
                ptest = int2bound(&c->p, raw_p);
                origin = raw2int(f->origin);
 
-               /* set the integrated button if applicable */
-               if (c->tp_type == TYPE2)
-                       ibt = raw2int(dev->tp_data[BUTTON_TYPE2]);
-
                /* while tracking finger still valid, count all fingers */
                if (ptest > PRESSURE_LOW && origin) {
                        abs_p = ptest;
@@ -412,6 +408,10 @@ static int report_tp_state(struct bcm5974 *dev, int size)
                }
        }
 
+       /* set the integrated button if applicable */
+       if (c->tp_type == TYPE2)
+               ibt = raw2int(dev->tp_data[BUTTON_TYPE2]);
+
        if (dev->fingers < nmin)
                dev->fingers = nmin;
        if (dev->fingers > nmax)