diff options
| -rw-r--r-- | drivers/input/touchscreen/ad7877.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c index e019d53d1ab4..0d2d7e54b465 100644 --- a/drivers/input/touchscreen/ad7877.c +++ b/drivers/input/touchscreen/ad7877.c | |||
| @@ -156,9 +156,14 @@ struct ser_req { | |||
| 156 | u16 reset; | 156 | u16 reset; |
| 157 | u16 ref_on; | 157 | u16 ref_on; |
| 158 | u16 command; | 158 | u16 command; |
| 159 | u16 sample; | ||
| 160 | struct spi_message msg; | 159 | struct spi_message msg; |
| 161 | struct spi_transfer xfer[6]; | 160 | struct spi_transfer xfer[6]; |
| 161 | |||
| 162 | /* | ||
| 163 | * DMA (thus cache coherency maintenance) requires the | ||
| 164 | * transfer buffers to live in their own cache lines. | ||
| 165 | */ | ||
| 166 | u16 sample ____cacheline_aligned; | ||
| 162 | }; | 167 | }; |
| 163 | 168 | ||
| 164 | struct ad7877 { | 169 | struct ad7877 { |
| @@ -182,8 +187,6 @@ struct ad7877 { | |||
| 182 | u8 averaging; | 187 | u8 averaging; |
| 183 | u8 pen_down_acc_interval; | 188 | u8 pen_down_acc_interval; |
| 184 | 189 | ||
| 185 | u16 conversion_data[AD7877_NR_SENSE]; | ||
| 186 | |||
| 187 | struct spi_transfer xfer[AD7877_NR_SENSE + 2]; | 190 | struct spi_transfer xfer[AD7877_NR_SENSE + 2]; |
| 188 | struct spi_message msg; | 191 | struct spi_message msg; |
| 189 | 192 | ||
| @@ -195,6 +198,12 @@ struct ad7877 { | |||
| 195 | spinlock_t lock; | 198 | spinlock_t lock; |
| 196 | struct timer_list timer; /* P: lock */ | 199 | struct timer_list timer; /* P: lock */ |
| 197 | unsigned pending:1; /* P: lock */ | 200 | unsigned pending:1; /* P: lock */ |
| 201 | |||
| 202 | /* | ||
| 203 | * DMA (thus cache coherency maintenance) requires the | ||
| 204 | * transfer buffers to live in their own cache lines. | ||
| 205 | */ | ||
| 206 | u16 conversion_data[AD7877_NR_SENSE] ____cacheline_aligned; | ||
| 198 | }; | 207 | }; |
| 199 | 208 | ||
| 200 | static int gpio3; | 209 | static int gpio3; |
