aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging
diff options
context:
space:
mode:
authorNaveen Kumar Gaddipati <naveen.gaddipati@stericsson.com>2011-02-21 20:01:03 +0530
committerSrinidhi KASAGAR <srinidhi.kasagar@stericsson.com>2011-02-22 07:53:40 +0100
commited08186c43017d7603002c09f4e4dff7b6acfcda (patch)
tree6e58a38963b0a0fc0503451bc4574627c16f29ca /drivers/staging
parentea29c03fbe127c447edac6d5b6b5ac941f534de4 (diff)
synaptics:Removed lines in settings menu keeps flashing
Removed the lines in settings menu keeps flashing when touching the display by checking the delta with previous co-ordinates ST-Ericsson Id: ER 324943 Signed-off-by: Naveen Kumar Gaddipati <naveen.gaddipati@stericsson.com> Change-Id: Ie7eda6828ec4a9604dd6fa90389a7a5c0ef53619 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/16596 Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c b/drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c
index c2a0394767a..871ff199506 100644
--- a/drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c
+++ b/drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c
@@ -37,6 +37,7 @@
/* TODO: for multiple device support will need a per-device mutex */
#define DRIVER_NAME "synaptics_rmi4_i2c"
+#define DELTA 8
#define MAX_ERROR_REPORT 6
#define TIMEOUT_PERIOD 1
#define MAX_WIDTH_MAJOR 255
@@ -458,6 +459,8 @@ static int synpatics_rmi4_touchpad_report(struct synaptics_rmi4_data *pdata,
int x[RMI4_NUMBER_OF_MAX_FINGERS];
int y[RMI4_NUMBER_OF_MAX_FINGERS];
int w[RMI4_NUMBER_OF_MAX_FINGERS];
+ static int prv_x[RMI4_NUMBER_OF_MAX_FINGERS];
+ static int prv_y[RMI4_NUMBER_OF_MAX_FINGERS];
struct i2c_client *client = pdata->i2c_client;
/* get 2D sensor finger data */
@@ -537,6 +540,14 @@ static int synpatics_rmi4_touchpad_report(struct synaptics_rmi4_data *pdata,
y[touch_count] =
pdata->sensor_max_y - 1;
}
+ if ((abs(x[finger] - prv_x[finger]) < DELTA) &&
+ (abs(y[finger] - prv_y[finger]) < DELTA)) {
+ x[finger] = prv_x[finger];
+ y[finger] = prv_y[finger];
+ } else {
+ prv_x[finger] = x[finger];
+ prv_y[finger] = y[finger];
+ }
/* number of active touch points */
touch_count++;
}