Skip to content

Commit 5959851

Browse files
nunojsajic23
authored andcommitted
iio: adc: ad_sigma_delta: ensure proper DMA alignment
Aligning the buffer to the L1 cache is not sufficient in some platforms as they might have larger cacheline sizes for caches after L1 and thus, we can't guarantee DMA safety. That was the whole reason to introduce IIO_DMA_MINALIGN in [1]. Do the same for the sigma_delta ADCs. [1]: https://lore.kernel.org/linux-iio/[email protected]/ Fixes: 0fb6ee8 ("iio: ad_sigma_delta: Don't put SPI transfer buffer on the stack") Signed-off-by: Nuno Sa <[email protected]> Link: https://lore.kernel.org/r/20240117-dev_sigma_delta_no_irq_flags-v1-1-db39261592cf@analog.com Cc: <[email protected]> Signed-off-by: Jonathan Cameron <[email protected]>
1 parent 8e98b87 commit 5959851

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

include/linux/iio/adc/ad_sigma_delta.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#ifndef __AD_SIGMA_DELTA_H__
99
#define __AD_SIGMA_DELTA_H__
1010

11+
#include <linux/iio/iio.h>
12+
1113
enum ad_sigma_delta_mode {
1214
AD_SD_MODE_CONTINUOUS = 0,
1315
AD_SD_MODE_SINGLE = 1,
@@ -99,7 +101,7 @@ struct ad_sigma_delta {
99101
* 'rx_buf' is up to 32 bits per sample + 64 bit timestamp,
100102
* rounded to 16 bytes to take into account padding.
101103
*/
102-
uint8_t tx_buf[4] ____cacheline_aligned;
104+
uint8_t tx_buf[4] __aligned(IIO_DMA_MINALIGN);
103105
uint8_t rx_buf[16] __aligned(8);
104106
};
105107

0 commit comments

Comments
 (0)