From 450c8223e74748fb384754a75ff41f718a473b7e Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Sun, 12 Aug 2012 21:21:59 +0200 Subject: [PATCH] --- yaml --- r: 323429 b: refs/heads/master c: f17953abc92a7d536f4b9b9ce42cf8e07d8d3489 h: refs/heads/master i: 323427: 1ac05f2db4b13bba34e5b6a257ec4e2de88106f7 v: v3 --- [refs] | 2 +- trunk/drivers/input/mouse/bcm5974.c | 25 +++++++++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index a3309bada8b2..a489f383a57d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 43f482b48d0322df7c0cc6f97d0ec7c77db6777b +refs/heads/master: f17953abc92a7d536f4b9b9ce42cf8e07d8d3489 diff --git a/trunk/drivers/input/mouse/bcm5974.c b/trunk/drivers/input/mouse/bcm5974.c index 39ac9ff3da81..2de974ce56b2 100644 --- a/trunk/drivers/input/mouse/bcm5974.c +++ b/trunk/drivers/input/mouse/bcm5974.c @@ -183,18 +183,19 @@ struct tp_finger { __le16 abs_y; /* absolute y coodinate */ __le16 rel_x; /* relative x coodinate */ __le16 rel_y; /* relative y coodinate */ - __le16 size_major; /* finger size, major axis? */ - __le16 size_minor; /* finger size, minor axis? */ + __le16 tool_major; /* tool area, major axis */ + __le16 tool_minor; /* tool area, minor axis */ __le16 orientation; /* 16384 when point, else 15 bit angle */ - __le16 force_major; /* trackpad force, major axis? */ - __le16 force_minor; /* trackpad force, minor axis? */ + __le16 touch_major; /* touch area, major axis */ + __le16 touch_minor; /* touch area, minor axis */ __le16 unused[3]; /* zeros */ __le16 multi; /* one finger: varies, more fingers: constant */ } __attribute__((packed,aligned(2))); /* trackpad finger data size, empirically at least ten fingers */ +#define MAX_FINGERS 16 #define SIZEOF_FINGER sizeof(struct tp_finger) -#define SIZEOF_ALL_FINGERS (16 * SIZEOF_FINGER) +#define SIZEOF_ALL_FINGERS (MAX_FINGERS * SIZEOF_FINGER) #define MAX_FINGER_ORIENTATION 16384 /* device-specific parameters */ @@ -482,13 +483,13 @@ static void report_finger_data(struct input_dev *input, const struct tp_finger *f) { input_report_abs(input, ABS_MT_TOUCH_MAJOR, - raw2int(f->force_major) << 1); + raw2int(f->touch_major) << 1); input_report_abs(input, ABS_MT_TOUCH_MINOR, - raw2int(f->force_minor) << 1); + raw2int(f->touch_minor) << 1); input_report_abs(input, ABS_MT_WIDTH_MAJOR, - raw2int(f->size_major) << 1); + raw2int(f->tool_major) << 1); input_report_abs(input, ABS_MT_WIDTH_MINOR, - raw2int(f->size_minor) << 1); + raw2int(f->tool_minor) << 1); input_report_abs(input, ABS_MT_ORIENTATION, MAX_FINGER_ORIENTATION - raw2int(f->orientation)); input_report_abs(input, ABS_MT_POSITION_X, raw2int(f->abs_x)); @@ -521,8 +522,8 @@ static int report_tp_state(struct bcm5974 *dev, int size) for (i = 0; i < raw_n; i++) report_finger_data(input, c, &f[i]); - raw_p = raw2int(f->force_major); - raw_w = raw2int(f->size_major); + raw_p = raw2int(f->touch_major); + raw_w = raw2int(f->tool_major); raw_x = raw2int(f->abs_x); raw_y = raw2int(f->abs_y); @@ -542,7 +543,7 @@ static int report_tp_state(struct bcm5974 *dev, int size) abs_y = int2bound(&c->y, c->y.devmax - raw_y); while (raw_n--) { ptest = int2bound(&c->p, - raw2int(f->force_major)); + raw2int(f->touch_major)); if (ptest > PRESSURE_LOW) nmax++; if (ptest > PRESSURE_HIGH)