aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/input/touchscreen/tsc2007.c4
-rw-r--r--include/linux/i2c/tsc2007.h1
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/input/touchscreen/tsc2007.c b/drivers/input/touchscreen/tsc2007.c
index df4ae354969d..8c48a91a6783 100644
--- a/drivers/input/touchscreen/tsc2007.c
+++ b/drivers/input/touchscreen/tsc2007.c
@@ -75,6 +75,7 @@ struct tsc2007 {
75 75
76 u16 model; 76 u16 model;
77 u16 x_plate_ohms; 77 u16 x_plate_ohms;
78 u16 max_rt;
78 79
79 bool pendown; 80 bool pendown;
80 int irq; 81 int irq;
@@ -185,7 +186,7 @@ static void tsc2007_work(struct work_struct *work)
185 tsc2007_read_values(ts, &tc); 186 tsc2007_read_values(ts, &tc);
186 187
187 rt = tsc2007_calculate_pressure(ts, &tc); 188 rt = tsc2007_calculate_pressure(ts, &tc);
188 if (rt > MAX_12BIT) { 189 if (rt > ts->max_rt) {
189 /* 190 /*
190 * Sample found inconsistent by debouncing or pressure is 191 * Sample found inconsistent by debouncing or pressure is
191 * beyond the maximum. Don't report it to user space, 192 * beyond the maximum. Don't report it to user space,
@@ -294,6 +295,7 @@ static int __devinit tsc2007_probe(struct i2c_client *client,
294 295
295 ts->model = pdata->model; 296 ts->model = pdata->model;
296 ts->x_plate_ohms = pdata->x_plate_ohms; 297 ts->x_plate_ohms = pdata->x_plate_ohms;
298 ts->max_rt = pdata->max_rt ? : MAX_12BIT;
297 ts->get_pendown_state = pdata->get_pendown_state; 299 ts->get_pendown_state = pdata->get_pendown_state;
298 ts->clear_penirq = pdata->clear_penirq; 300 ts->clear_penirq = pdata->clear_penirq;
299 301
diff --git a/include/linux/i2c/tsc2007.h b/include/linux/i2c/tsc2007.h
index c6361fbb7bf9..d95f11347314 100644
--- a/include/linux/i2c/tsc2007.h
+++ b/include/linux/i2c/tsc2007.h
@@ -6,6 +6,7 @@
6struct tsc2007_platform_data { 6struct tsc2007_platform_data {
7 u16 model; /* 2007. */ 7 u16 model; /* 2007. */
8 u16 x_plate_ohms; 8 u16 x_plate_ohms;
9 u16 max_rt; /* max. resistance above which samples are ignored */
9 10
10 int (*get_pendown_state)(void); 11 int (*get_pendown_state)(void);
11 void (*clear_penirq)(void); /* If needed, clear 2nd level 12 void (*clear_penirq)(void); /* If needed, clear 2nd level