Re: [PATCH] iio: amplifiers: ada4250: use DMA-safe memory for regmap_bulk_read()

Nuno Sá
2025-04-21T13:00:29Z

On Mon, 2025-04-21 at 11:57 +0100, Jonathan Cameron wrote:
> On Sat, 19 Apr 2025 13:07:25 -0500
> David Lechner <dlechner@baylibre.com> wrote:
>
> > On 4/19/25 10:03 AM, Andy Shevchenko wrote:
> > > On Fri, Apr 18, 2025 at 02:09:04PM -0500, David Lechner wrote:
> > > > On 4/18/25 1:58 PM, Andy Shevchenko wrote:
> > > > > пʼятниця, 18 квітня 2025 р. David Lechner
> > > > > <dlechner@baylibre.com <mailto:dlechner@baylibre.com>> пише:
> > > > >
> > > > >     Use DMA-safe memory instead of stack-allocated memory for the call
> > > > > to
> > > > >     regmap_bulk_read() in the ada4250_init() function as this could be
> > > > > used
> > > > >     directly by a SPI controller.
> > > > >
> > > > > Sorry, but can you elaborate more on this? If driver doesn’t override
> > > > > the
> > > > > callbacks the regmap SPI uses spi_write_then_read() which is supposed
> > > > > to be
> > > > > dma safe.
> > > >
> > > > Ah, I didn't dig that far down. Will send a new patch that just cleans
> > > > up the
> > > > unnecessary alignment and unaligned call.
> > >
> > > But do you have a real life issue with that? Coincidentally we discussed
> > > similar case in another driver with colleague of mine, and he insists that
> > > it
> > > might be still broken (somewhere).
> > >
> >
> > Some drivers that use regmap with SPI implement their own read and write
> > callbacks if the default one doesn't work, so maybe something like that?
> >
>
> I asked Mark about this long ago. Maybe the guidance has changed, but the
> request
> if my memory is correct was to treat bulk regmap accesses with the same care
> wrt to
> DMA safety that we treat direct use of the underlying bus accessors.
> (unfortunately I have no idea what thread this was in!)
>
> The reasoning I think was that it was an implementation detail whether
> regmap copied the data or not for bulk accesses.  Back then I chased through
> the SPI case and couldn't find a path that didn't bounce the data (though some
> paths could have been made zero copy).
>

Looking on the implementation, indeed it looks like that everything should be
fine... However, IMO, David's reasoning about potential drivers using their own
regmap_bus (or just overriding read and write) is perhaps justification enough
for doing it.

- Nuno Sá

> Anyhow, +CC Mark as maybe I remembered that wrong or his view has
> changed!
>
> Jonathan