Re: [PATCH] drivers: iio: pressure: Add SPI support for BMP38x and BMP390

From: Vasileios Amoiridis
Date: Fri Feb 16 2024 - 08:29:48 EST


On Fri, Feb 16, 2024 at 11:05:43AM +0000, Jonathan Cameron wrote:
> On Thu, 15 Feb 2024 19:03:27 +0200
> Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
>
> > On Thu, Feb 15, 2024 at 05:43:32PM +0100, Vasileios Amoiridis wrote:
> > > According to the datasheet of BMP38x and BMP390 devices, in SPI
> > > operation, the first byte that returns after a read operation is
> > > garbage and it needs to be dropped and return the rest of the
> > > bytes.
> >
> > Thank you for the patch, my comments below.
> >
> > ...
> >
> > > +static int bmp380_regmap_spi_read(void *context, const void *reg,
> > > + size_t reg_size, void *val, size_t val_size)
> > > +{
> > > + struct spi_device *spi = to_spi_device(context);
> > > + u8 ret[BMP380_SPI_MAX_REG_COUNT_READ + 1];
> > > + ssize_t status;
> > > + u8 buf;
> >
> > AFAIU this buffer is not DMA-capable.
>
> Doesn't matter in this case as spi_write_then_read() bounces anyway so you don't need
> to provide it with a dma safe buffer. It's in the docs, so we can rely
> on this not changing.
>
> https://elixir.bootlin.com/linux/latest/source/drivers/spi/spi.c#L4391
>

Since the read_flag_mask can be used in the struct regmap_bus, there is no need for an
extra u8 buffer to manipulate the bits. Instead, the reg value from the function inputs
can be used as in any other case.