Re: [PATCH 2/2] iio: adc: ti-adc161s626: use DMA-safe memory for spi_read()

From: Jonathan Cameron

Date: Sat Mar 21 2026 - 16:19:29 EST


On Mon, 16 Mar 2026 21:53:30 +0200
Andy Shevchenko <andriy.shevchenko@xxxxxxxxx> wrote:

> On Mon, Mar 16, 2026 at 06:31:17PM +0000, Jonathan Cameron wrote:
> > On Sat, 14 Mar 2026 18:13:32 -0500
> > David Lechner <dlechner@xxxxxxxxxxxx> wrote:
>
> ...
>
> > > u8 shift;
> > > + u8 buf[3] __aligned(IIO_DMA_MINALIGN);
> > On this. There is new generic infrastructure for marking these.
> > https://elixir.bootlin.com/linux/v7.0-rc3/source/include/linux/dma-mapping.h#L720
> > https://lore.kernel.org/all/01ea88055ded4d70cac70ba557680fd5fa7d9ff5.1767601130.git.mst@xxxxxxxxxx/
> >
> > Would look like
> > __dma_from_device_group_begin();
> > u8 buf[3];
> > __dma_from_device_group_end();
> >
> > Do you think we should adopt them rather than doing our own thing?
> > Slowly though I don't want the noise of a mass conversion.
> >
> > As normal, advantage of standard infrastructure is cutting down
> > in subsystem specific magic.
> >
> > I 'think' result is the same (though it also forces the trailing padding if anything
> > comes after this and needs it).
>
> As I read it it will be an equivalent to
>
> u8 shift; __aligned(IIO_DMA_MINALIGN);
> u8 buf[3] __aligned(IIO_DMA_MINALIGN);
I think it ends up as
u8 shift; //unmoved
__u8 something[0] __aligned(IIO_DMA_MINALIGN);
u8 buf[3];
__u8 something_else[0] __aligned(IIO_DMA_MINALING);

Who doesn't like forcing alignment on 0 sized things.

I assume someone who is more familiar with the C spec than I am
established that works.


>
>