OSDN Git Service

Revert "Input: appletouch - fix integer overflow issue"
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 9 Aug 2010 03:48:08 +0000 (13:48 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 9 Aug 2010 03:48:08 +0000 (13:48 +1000)
This reverts commit 04b4b88cca0ebe3813b4b6f014fb6a0db380b137.

While the original problem only caused a slight disturbance on the
edge of the touchpad, the commit above to "fix" it completely breaks
operation on some other models such as mine.

We'll sort this out separately, revert the patch for now.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
drivers/input/mouse/appletouch.c

index 05edd75..a9cf768 100644 (file)
@@ -205,8 +205,8 @@ struct atp {
        bool                    overflow_warned;
        int                     x_old;          /* last reported x/y, */
        int                     y_old;          /* used for smoothing */
-       u8                      xy_cur[ATP_XSENSORS + ATP_YSENSORS];
-       u8                      xy_old[ATP_XSENSORS + ATP_YSENSORS];
+       signed char             xy_cur[ATP_XSENSORS + ATP_YSENSORS];
+       signed char             xy_old[ATP_XSENSORS + ATP_YSENSORS];
        int                     xy_acc[ATP_XSENSORS + ATP_YSENSORS];
        int                     idlecount;      /* number of empty packets */
        struct work_struct      work;
@@ -531,7 +531,7 @@ static void atp_complete_geyser_1_2(struct urb *urb)
 
        for (i = 0; i < ATP_XSENSORS + ATP_YSENSORS; i++) {
                /* accumulate the change */
-               int change = dev->xy_old[i] - dev->xy_cur[i];
+               signed char change = dev->xy_old[i] - dev->xy_cur[i];
                dev->xy_acc[i] -= change;
 
                /* prevent down drifting */