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.