Re: [PATCH v2 1/2] iio: accel: kionix-kx022a: use scan struct for one-shot and trigger reads

Andy Shevchenko <[email protected]>
Newsgroups org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel
Organization Intel Finland Oy - BIC 0357606-4 - c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo
Message-ID <[email protected]>
On Tue, Aug 18, 2026 at 10:51:21PM +0100, Gabriel Rondon wrote:
> The driver kept two separate staging areas that hold the same thing:
> buffer[8], a DMA-aligned area used by the one-shot read in
> kx022a_get_axis() and by the triggered handler, and the scan struct,
> used by the FIFO flush path. Both are three __le16 channels plus room
> for the timestamp.
> 
> Drop buffer and route the one-shot read and the triggered handler
> through scan.channels, so the driver has a single staging area. Move the
> IIO_DMA_MINALIGN alignment onto scan, since it now backs the regmap bulk
> reads that buffer used to.
> 
> No functional change. get_axis() only runs via read_raw() under
> iio_device_claim_direct(), so it cannot run while the triggered buffer is
> active, and the triggered handler only runs while it is; the two never
> touch scan concurrently, exactly as they previously shared buffer.

...

> static int kx022a_get_axis(struct kx022a_data *data,

>  {

I would rather do this

	__le16 *buf = &data->scan.channels[0];

>  	int ret;
>  
> -	ret = regmap_bulk_read(data->regmap, chan->address, &data->buffer[0],
> -			       sizeof(__le16));
> +	ret = regmap_bulk_read(data->regmap, chan->address,
> +			       &data->scan.channels[0], sizeof(__le16));

	ret = regmap_bulk_read(data->regmap, chan->address, buf, sizeof(*buf));

>  	if (ret)
>  		return ret;
>  
> -	*val = (s16)le16_to_cpu(data->buffer[0]);
> +	*val = (s16)le16_to_cpu(data->scan.channels[0]);

	*val = (s16)le16_to_cpup(buf);

-- 
With Best Regards,
Andy Shevchenko
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.