@@ -58,15 +58,6 @@ enum sca3300_scan_indexes {
58
58
SCA3300_SCAN_MAX
59
59
};
60
60
61
- /*
62
- * Buffer size max case:
63
- * Three accel channels, two bytes per channel.
64
- * Temperature channel, two bytes.
65
- * Three incli channels, two bytes per channel.
66
- * Timestamp channel, eight bytes.
67
- */
68
- #define SCA3300_MAX_BUFFER_SIZE (ALIGN(sizeof(s16) * SCA3300_SCAN_MAX, sizeof(s64)) + sizeof(s64))
69
-
70
61
#define SCA3300_ACCEL_CHANNEL (index , reg , axis ) { \
71
62
.type = IIO_ACCEL, \
72
63
.address = reg, \
@@ -193,17 +184,13 @@ struct sca3300_chip_info {
193
184
* @spi: SPI device structure
194
185
* @lock: Data buffer lock
195
186
* @chip: Sensor chip specific information
196
- * @buffer: Triggered buffer:
197
- * -SCA3300: 4 channel 16-bit data + 64-bit timestamp
198
- * -SCL3300: 7 channel 16-bit data + 64-bit timestamp
199
187
* @txbuf: Transmit buffer
200
188
* @rxbuf: Receive buffer
201
189
*/
202
190
struct sca3300_data {
203
191
struct spi_device * spi ;
204
192
struct mutex lock ;
205
193
const struct sca3300_chip_info * chip ;
206
- u8 buffer [SCA3300_MAX_BUFFER_SIZE ] __aligned (sizeof (s64 ));
207
194
u8 txbuf [4 ] __aligned (IIO_DMA_MINALIGN );
208
195
u8 rxbuf [4 ];
209
196
};
@@ -492,7 +479,7 @@ static irqreturn_t sca3300_trigger_handler(int irq, void *p)
492
479
struct iio_dev * indio_dev = pf -> indio_dev ;
493
480
struct sca3300_data * data = iio_priv (indio_dev );
494
481
int bit , ret , val , i = 0 ;
495
- s16 * channels = ( s16 * ) data -> buffer ;
482
+ IIO_DECLARE_BUFFER_WITH_TS ( s16 , channels , SCA3300_SCAN_MAX ) ;
496
483
497
484
iio_for_each_active_channel (indio_dev , bit ) {
498
485
ret = sca3300_read_reg (data , indio_dev -> channels [bit ].address , & val );
@@ -505,8 +492,7 @@ static irqreturn_t sca3300_trigger_handler(int irq, void *p)
505
492
channels [i ++ ] = val ;
506
493
}
507
494
508
- iio_push_to_buffers_with_ts (indio_dev , data -> buffer ,
509
- sizeof (data -> buffer ),
495
+ iio_push_to_buffers_with_ts (indio_dev , channels , sizeof (channels ),
510
496
iio_get_time_ns (indio_dev ));
511
497
out :
512
498
iio_trigger_notify_done (indio_dev -> trig );
0 commit comments