From: "Nuno Sá" <noname.nuno@gmail.com>
To: "Jonathan Cameron" <jic23@kernel.org>,
linux-iio@vger.kernel.org,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Subject: Re: [PATCH v2 06/20] iio: dummy: Use a fixed structure to build up scan to push to buffers.
Date: Mon, 07 Apr 2025 17:34:48 +0100 [thread overview]
Message-ID: <b3bf13448a0eda9e83fd501fb4fc7e29070bf0cc.camel@gmail.com> (raw)
In-Reply-To: <20250406172001.2167607-7-jic23@kernel.org>
On Sun, 2025-04-06 at 18:19 +0100, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
> It has long been discouraged for drivers to make use of iio_dev->scan_bytes
> directly as that is an implementation detail of the core. As such our
> example driver should definitely not be doing so.
>
> A simple anonymous structure definition suffices here as even though
> we have a mixture of signed and unsigned channels only the signed ones
> use the full storage so the unsigned channels can used signed types as
> well.
>
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> ---
> v2: Add a comment about stack buffers not being DMA safe.
> ---
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
> drivers/iio/dummy/iio_simple_dummy_buffer.c | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/iio/dummy/iio_simple_dummy_buffer.c
> b/drivers/iio/dummy/iio_simple_dummy_buffer.c
> index 288880346707..eca5f0652d23 100644
> --- a/drivers/iio/dummy/iio_simple_dummy_buffer.c
> +++ b/drivers/iio/dummy/iio_simple_dummy_buffer.c
> @@ -46,11 +46,14 @@ static irqreturn_t iio_simple_dummy_trigger_h(int irq,
> void *p)
> struct iio_poll_func *pf = p;
> struct iio_dev *indio_dev = pf->indio_dev;
> int i = 0, j;
> - u16 *data;
> -
> - data = kzalloc(indio_dev->scan_bytes, GFP_KERNEL);
> - if (!data)
> - goto done;
> + /*
> + * Note that some buses such as SPI require DMA safe buffers which
> + * cannot be on the stack.
> + */
> + struct {
> + s16 data[ARRAY_SIZE(fakedata)];
> + aligned_s64 timestamp;
> + } scan;
>
> /*
> * Three common options here:
> @@ -69,14 +72,11 @@ static irqreturn_t iio_simple_dummy_trigger_h(int irq,
> void *p)
> * constant table fakedata.
> */
> iio_for_each_active_channel(indio_dev, j)
> - data[i++] = fakedata[j];
> + scan.data[i++] = fakedata[j];
>
> - iio_push_to_buffers_with_timestamp(indio_dev, data,
> + iio_push_to_buffers_with_timestamp(indio_dev, &scan,
> iio_get_time_ns(indio_dev));
>
> - kfree(data);
> -
> -done:
> /*
> * Tell the core we are done with this trigger and ready for the
> * next one.
next prev parent reply other threads:[~2025-04-07 16:34 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-06 17:19 [PATCH v2 00/20] IIO: Introduce iio_push_to_buffers_with_ts() taking an input buffer length argument Jonathan Cameron
2025-04-06 17:19 ` [PATCH v2 01/20] iio: adc: ad7266: Fix potential timestamp alignment issue Jonathan Cameron
2025-04-07 9:16 ` Andy Shevchenko
2025-04-07 16:23 ` Nuno Sá
2025-04-06 17:19 ` [PATCH v2 02/20] iio: adc: ad7768-1: Fix insufficient alignment of timestamp Jonathan Cameron
2025-04-07 9:16 ` Andy Shevchenko
2025-04-07 16:23 ` Nuno Sá
2025-04-06 17:19 ` [PATCH v2 03/20] iio: adc: dln2: Use aligned_s64 for timestamp Jonathan Cameron
2025-04-07 9:11 ` Andy Shevchenko
2025-04-06 17:19 ` [PATCH v2 04/20] iio: accel: adxl355: Make timestamp 64 bit aligned using aligned_s64 Jonathan Cameron
2025-04-07 9:15 ` Andy Shevchenko
2025-04-07 16:24 ` Nuno Sá
2025-04-06 17:19 ` [PATCH v2 05/20] iio: introduced iio_push_to_buffers_with_ts() that takes a data_total_len argument Jonathan Cameron
2025-04-07 9:18 ` Andy Shevchenko
2025-04-13 9:51 ` Jonathan Cameron
2025-04-07 16:25 ` Nuno Sá
2025-04-06 17:19 ` [PATCH v2 06/20] iio: dummy: Use a fixed structure to build up scan to push to buffers Jonathan Cameron
2025-04-07 9:23 ` Andy Shevchenko
2025-04-07 16:34 ` Nuno Sá
2025-04-13 10:05 ` Jonathan Cameron
2025-04-07 16:34 ` Nuno Sá [this message]
2025-04-13 10:05 ` Jonathan Cameron
2025-04-06 17:19 ` [PATCH v2 07/20] iio: dummy: Switch to iio_push_to_buffers_with_ts() and provide size of storage Jonathan Cameron
2025-04-07 9:25 ` Andy Shevchenko
2025-04-07 16:37 ` Nuno Sá
2025-04-06 17:19 ` [PATCH v2 08/20] iio: adc: ti-ads131e08: Use new iio_push_to_buffers_with_ts() to provide length sanity check Jonathan Cameron
2025-04-07 9:26 ` Andy Shevchenko
2025-04-06 17:19 ` [PATCH v2 09/20] iio: adc: Use iio_push_to_buffers_with_ts() to provide length for runtime checks Jonathan Cameron
2025-04-07 9:30 ` Andy Shevchenko
2025-04-13 10:18 ` Jonathan Cameron
2025-04-06 17:19 ` [PATCH v2 10/20] iio: accel: " Jonathan Cameron
2025-04-07 9:33 ` Andy Shevchenko
2025-04-06 17:19 ` [PATCH v2 11/20] iio: accel: hid: " Jonathan Cameron
2025-04-06 17:19 ` [PATCH v2 12/20] iio: chemical: " Jonathan Cameron
2025-04-06 17:19 ` [PATCH v2 13/20] iio: temp: maxim-thermocouple: Fix potential lack of DMA safe buffer Jonathan Cameron
2025-04-06 17:19 ` [PATCH v2 14/20] iio: temperature: Use iio_push_to_buffers_with_ts() to provide length for runtime checks Jonathan Cameron
2025-04-06 17:19 ` [PATCH v2 15/20] iio: resolver: " Jonathan Cameron
2025-04-06 17:19 ` [PATCH v2 16/20] iio: proximity: irsd200: Use a struct for scan and iio_push_to_buffers_with_ts() Jonathan Cameron
2025-04-06 17:19 ` [PATCH v2 17/20] iio: proximity: Use iio_push_to_buffers_with_ts() to provide length for runtime checks Jonathan Cameron
2025-04-06 17:19 ` [PATCH v2 18/20] iio: pressure: zpa2326: Use aligned_s64 for the timestamp Jonathan Cameron
2025-04-06 17:20 ` [PATCH v2 19/20] iio: pressure: Use iio_push_to_buffers_with_ts() to provide length for runtime checks Jonathan Cameron
2025-04-07 11:27 ` Matti Vaittinen
2025-04-06 17:20 ` [PATCH v2 20/20] iio: magnetometer: " Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b3bf13448a0eda9e83fd501fb4fc7e29070bf0cc.camel@gmail.com \
--to=noname.nuno@gmail.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=andy@kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=nuno.sa@analog.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.