Use IIO_DECLARE_BUFFER_WITH_TS to declare the buffer that gets used with
iio_push_to_buffers_with_ts(). This makes the code a bit easier to read
and understand.
The data type is changed so that we can drop the casts when the buffer
is used.
Signed-off-by: David Lechner <dlechner@baylibre.com>
---
drivers/iio/pressure/bmp280-core.c | 8 ++++----
drivers/iio/pressure/bmp280.h | 3 +--
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c
index c20cc4a98c9c494a9c8843518ba2f17b41be18a9..847340e38fd069643c3d38037dab1bab727dcc8f 100644
--- a/drivers/iio/pressure/bmp280-core.c
+++ b/drivers/iio/pressure/bmp280-core.c
@@ -1107,7 +1107,7 @@ static irqreturn_t bmp280_trigger_handler(int irq, void *p)
struct bmp280_data *data = iio_priv(indio_dev);
u32 adc_temp, adc_press, comp_press;
s32 t_fine, comp_temp;
- s32 *chans = (s32 *)data->sensor_data;
+ s32 *chans = data->sensor_data;
int ret;
guard(mutex)(&data->lock);
@@ -1228,7 +1228,7 @@ static irqreturn_t bme280_trigger_handler(int irq, void *p)
struct bmp280_data *data = iio_priv(indio_dev);
u32 adc_temp, adc_press, adc_humidity, comp_press, comp_humidity;
s32 t_fine, comp_temp;
- s32 *chans = (s32 *)data->sensor_data;
+ s32 *chans = data->sensor_data;
int ret;
guard(mutex)(&data->lock);
@@ -1903,7 +1903,7 @@ static irqreturn_t bmp380_trigger_handler(int irq, void *p)
struct bmp280_data *data = iio_priv(indio_dev);
u32 adc_temp, adc_press, comp_press;
s32 t_fine, comp_temp;
- s32 *chans = (s32 *)data->sensor_data;
+ s32 *chans = data->sensor_data;
int ret;
guard(mutex)(&data->lock);
@@ -2957,7 +2957,7 @@ static irqreturn_t bmp180_trigger_handler(int irq, void *p)
struct iio_dev *indio_dev = pf->indio_dev;
struct bmp280_data *data = iio_priv(indio_dev);
int ret, comp_temp, comp_press;
- s32 *chans = (s32 *)data->sensor_data;
+ s32 *chans = data->sensor_data;
guard(mutex)(&data->lock);
diff --git a/drivers/iio/pressure/bmp280.h b/drivers/iio/pressure/bmp280.h
index 5b2ee1d0ee464797d1d9993a014d8f84c37d5596..86ec525ae40d92cc562e998dbe992f091343d88a 100644
--- a/drivers/iio/pressure/bmp280.h
+++ b/drivers/iio/pressure/bmp280.h
@@ -456,8 +456,7 @@ struct bmp280_data {
* Data to push to userspace triggered buffer. Up to 3 channels and
* s64 timestamp, aligned.
*/
- u8 sensor_data[ALIGN(sizeof(s32) * BME280_NUM_MAX_CHANNELS, sizeof(s64))
- + sizeof(s64)] __aligned(sizeof(s64));
+ IIO_DECLARE_BUFFER_WITH_TS(s32, sensor_data, BME280_NUM_MAX_CHANNELS);
/* Value to hold the current operation mode of the device */
enum bmp280_op_mode op_mode;
--
2.43.0
On Fri, Apr 18, 2025 at 05:58:35PM -0500, David Lechner wrote: > Use IIO_DECLARE_BUFFER_WITH_TS to declare the buffer that gets used with > iio_push_to_buffers_with_ts(). This makes the code a bit easier to read > and understand. > > The data type is changed so that we can drop the casts when the buffer > is used. This one is good, with the comment to have it DMA aligned. Reviewed-by: Andy Shevchenko <andy@kernel.org> -- With Best Regards, Andy Shevchenko
On 4/19/25 11:39 AM, Andy Shevchenko wrote: > On Fri, Apr 18, 2025 at 05:58:35PM -0500, David Lechner wrote: >> Use IIO_DECLARE_BUFFER_WITH_TS to declare the buffer that gets used with >> iio_push_to_buffers_with_ts(). This makes the code a bit easier to read >> and understand. >> >> The data type is changed so that we can drop the casts when the buffer >> is used. > > This one is good, with the comment to have it DMA aligned. > > Reviewed-by: Andy Shevchenko <andy@kernel.org> > Strictly speaking, this one doesn't need to be DMA-safe. This buffer isn't passed to SPI or any other bus. It is just used for iio_push_to_buffers_with_ts() and has data copied to it from elsewhere just before that.
On Sat, 19 Apr 2025 13:04:08 -0500 David Lechner <dlechner@baylibre.com> wrote: > On 4/19/25 11:39 AM, Andy Shevchenko wrote: > > On Fri, Apr 18, 2025 at 05:58:35PM -0500, David Lechner wrote: > >> Use IIO_DECLARE_BUFFER_WITH_TS to declare the buffer that gets used with > >> iio_push_to_buffers_with_ts(). This makes the code a bit easier to read > >> and understand. > >> > >> The data type is changed so that we can drop the casts when the buffer > >> is used. > > > > This one is good, with the comment to have it DMA aligned. > > > > Reviewed-by: Andy Shevchenko <andy@kernel.org> > > > > Strictly speaking, this one doesn't need to be DMA-safe. This buffer isn't > passed to SPI or any other bus. It is just used for iio_push_to_buffers_with_ts() > and has data copied to it from elsewhere just before that. Silly question. Why is it not just locally on the stack? It's only 16 or 24 bytes... I think that other than the bme280 we can use structures. (That one has 3 32bit channels) So we can have the more readable form in all but one place in the driver. Jonathan
© 2016 - 2025 Red Hat, Inc.