diff options
Diffstat (limited to 'drivers/input/touchscreen/ads7846.c')
-rw-r--r-- | drivers/input/touchscreen/ads7846.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c index fd9c5d51870a..58934a40f5ce 100644 --- a/drivers/input/touchscreen/ads7846.c +++ b/drivers/input/touchscreen/ads7846.c | |||
@@ -116,6 +116,7 @@ struct ads7846 { | |||
116 | // FIXME remove "irq_disabled" | 116 | // FIXME remove "irq_disabled" |
117 | unsigned irq_disabled:1; /* P: lock */ | 117 | unsigned irq_disabled:1; /* P: lock */ |
118 | unsigned disabled:1; | 118 | unsigned disabled:1; |
119 | unsigned is_suspended:1; | ||
119 | 120 | ||
120 | int (*filter)(void *data, int data_idx, int *val); | 121 | int (*filter)(void *data, int data_idx, int *val); |
121 | void *filter_data; | 122 | void *filter_data; |
@@ -203,7 +204,7 @@ static void ads7846_disable(struct ads7846 *ts); | |||
203 | static int device_suspended(struct device *dev) | 204 | static int device_suspended(struct device *dev) |
204 | { | 205 | { |
205 | struct ads7846 *ts = dev_get_drvdata(dev); | 206 | struct ads7846 *ts = dev_get_drvdata(dev); |
206 | return dev->power.power_state.event != PM_EVENT_ON || ts->disabled; | 207 | return ts->is_suspended || ts->disabled; |
207 | } | 208 | } |
208 | 209 | ||
209 | static int ads7846_read12_ser(struct device *dev, unsigned command) | 210 | static int ads7846_read12_ser(struct device *dev, unsigned command) |
@@ -794,7 +795,7 @@ static int ads7846_suspend(struct spi_device *spi, pm_message_t message) | |||
794 | 795 | ||
795 | spin_lock_irq(&ts->lock); | 796 | spin_lock_irq(&ts->lock); |
796 | 797 | ||
797 | spi->dev.power.power_state = message; | 798 | ts->is_suspended = 1; |
798 | ads7846_disable(ts); | 799 | ads7846_disable(ts); |
799 | 800 | ||
800 | spin_unlock_irq(&ts->lock); | 801 | spin_unlock_irq(&ts->lock); |
@@ -809,7 +810,7 @@ static int ads7846_resume(struct spi_device *spi) | |||
809 | 810 | ||
810 | spin_lock_irq(&ts->lock); | 811 | spin_lock_irq(&ts->lock); |
811 | 812 | ||
812 | spi->dev.power.power_state = PMSG_ON; | 813 | ts->is_suspended = 0; |
813 | ads7846_enable(ts); | 814 | ads7846_enable(ts); |
814 | 815 | ||
815 | spin_unlock_irq(&ts->lock); | 816 | spin_unlock_irq(&ts->lock); |
@@ -871,7 +872,6 @@ static int __devinit ads7846_probe(struct spi_device *spi) | |||
871 | } | 872 | } |
872 | 873 | ||
873 | dev_set_drvdata(&spi->dev, ts); | 874 | dev_set_drvdata(&spi->dev, ts); |
874 | spi->dev.power.power_state = PMSG_ON; | ||
875 | 875 | ||
876 | ts->spi = spi; | 876 | ts->spi = spi; |
877 | ts->input = input_dev; | 877 | ts->input = input_dev; |