@@ -153,15 +153,29 @@ enum {
*/
struct ser_req {
+ u16 sample;
+ /*
+ * DMA (thus cache coherency maintenance) requires the
+ * transfer buffers to live in their own cache lines.
+ */
+ char __padalign[L1_CACHE_BYTES - sizeof(u16)];
+
u16 reset;
u16 ref_on;
u16 command;
- u16 sample;
struct spi_message msg;
struct spi_transfer xfer[6];
};
struct ad7877 {
+ u16 conversion_data[AD7877_NR_SENSE];
+ /*
+ * DMA (thus cache coherency maintenance) requires the
+ * transfer buffers to live in their own cache lines.
+ */
+ char __padalign[L1_CACHE_BYTES -
+ AD7877_NR_SENSE * sizeof(u16)];
+
struct input_dev *input;
char phys[32];
@@ -182,8 +196,6 @@ struct ad7877 {
u8 averaging;
u8 pen_down_acc_interval;
- u16 conversion_data[AD7877_NR_SENSE];
-
struct spi_transfer xfer[AD7877_NR_SENSE + 2];
struct spi_message msg;