Re: [PATCH 3/4] iio: add helper function for reading channel offset in buffer
From: Andy Shevchenko <hidden>
Date: 2022-08-19 08:19:27
Also in:
linux-iio, linux-mips, lkml
From: Andy Shevchenko <hidden>
Date: 2022-08-19 08:19:27
Also in:
linux-iio, linux-mips, lkml
On Wed, Aug 17, 2022 at 1:58 PM Artur Rojek [off-list ref] wrote:
This is useful for consumers that wish to parse raw buffer data.
...
+int iio_find_channel_offset_in_buffer(struct iio_dev *indio_dev,
+ const struct iio_chan_spec *chan,
+ struct iio_buffer *buffer)
+{
+ int length, offset = 0;
+ unsigned int si;
+
+ if (chan->scan_index < 0 ||
+ !test_bit(chan->scan_index, buffer->scan_mask)) {
+ return -EINVAL;
+ }
Have you run checkpatch? The {} are redundant. But personally I would
split this into two separate conditionals.
+ for (si = 0; si < chan->scan_index; ++si) {Just a side crying: where did you, people, get this pre-increment pattern from?!
+ if (!test_bit(si, buffer->scan_mask)) + continue;
NIH for_each_set_bit()
+ length = iio_storage_bytes_for_si(indio_dev, si); + + /* Account for channel alignment. */ + if (offset % length) + offset += length - (offset % length); + offset += length; + } + + return offset; +} +EXPORT_SYMBOL_GPL(iio_find_channel_offset_in_buffer);
Same Q as per previous patch: IIO namespace? -- With Best Regards, Andy Shevchenko