diff options
author | Michael Hennerich <michael.hennerich@analog.com> | 2011-08-02 18:41:37 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2011-08-03 01:17:44 -0400 |
commit | 4fecc2088fd02ce8a6580c12822987d3c6bab9b8 (patch) | |
tree | cc8aa9b806e1494f018c634c62936854b8275e62 /drivers/input | |
parent | 0a7a8fff7b8a3bc2d3528af07c9c88083250303d (diff) |
Input: ad7879 - fix deficient device disable
Input close or device disable should not interact with the exported
gpiolib functionality. However that's the case. __ad7879_disable()
clears the entire AD7879_REG_CTRL2, while it should just power down
the ADC and its reference.
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/touchscreen/ad7879.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/input/touchscreen/ad7879.c b/drivers/input/touchscreen/ad7879.c index bc3b5187f3a3..131f9d1c921b 100644 --- a/drivers/input/touchscreen/ad7879.c +++ b/drivers/input/touchscreen/ad7879.c | |||
@@ -249,12 +249,14 @@ static void __ad7879_enable(struct ad7879 *ts) | |||
249 | 249 | ||
250 | static void __ad7879_disable(struct ad7879 *ts) | 250 | static void __ad7879_disable(struct ad7879 *ts) |
251 | { | 251 | { |
252 | u16 reg = (ts->cmd_crtl2 & ~AD7879_PM(-1)) | | ||
253 | AD7879_PM(AD7879_PM_SHUTDOWN); | ||
252 | disable_irq(ts->irq); | 254 | disable_irq(ts->irq); |
253 | 255 | ||
254 | if (del_timer_sync(&ts->timer)) | 256 | if (del_timer_sync(&ts->timer)) |
255 | ad7879_ts_event_release(ts); | 257 | ad7879_ts_event_release(ts); |
256 | 258 | ||
257 | ad7879_write(ts, AD7879_REG_CTRL2, AD7879_PM(AD7879_PM_SHUTDOWN)); | 259 | ad7879_write(ts, AD7879_REG_CTRL2, reg); |
258 | } | 260 | } |
259 | 261 | ||
260 | 262 | ||