diff options
author | Naveen Kumar Gaddipati <naveen.gaddipati@stericsson.com> | 2011-02-21 20:01:03 +0530 |
---|---|---|
committer | Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> | 2011-02-22 07:53:40 +0100 |
commit | ed08186c43017d7603002c09f4e4dff7b6acfcda (patch) | |
tree | 6e58a38963b0a0fc0503451bc4574627c16f29ca /drivers/staging | |
parent | ea29c03fbe127c447edac6d5b6b5ac941f534de4 (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.c | 11 |
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++; } |