瀏覽代碼

Revert "Input: appletouch - fix integer overflow issue"

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>
Benjamin Herrenschmidt 15 年之前
父節點
當前提交
6e49c1a407
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      drivers/input/mouse/appletouch.c

+ 3 - 3
drivers/input/mouse/appletouch.c

@@ -205,8 +205,8 @@ struct atp {
 	bool			overflow_warned;
 	bool			overflow_warned;
 	int			x_old;		/* last reported x/y, */
 	int			x_old;		/* last reported x/y, */
 	int			y_old;		/* used for smoothing */
 	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			xy_acc[ATP_XSENSORS + ATP_YSENSORS];
 	int			idlecount;	/* number of empty packets */
 	int			idlecount;	/* number of empty packets */
 	struct work_struct	work;
 	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++) {
 	for (i = 0; i < ATP_XSENSORS + ATP_YSENSORS; i++) {
 		/* accumulate the change */
 		/* 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;
 		dev->xy_acc[i] -= change;
 
 
 		/* prevent down drifting */
 		/* prevent down drifting */