Re: [PATCH v2 1/2] dmaengine: Add an enum for the dmaengine alignment constraints

From: Maxime Ripard
Date: Mon Jul 27 2015 - 02:50:22 EST


On Mon, Jul 20, 2015 at 11:03:25AM +0200, Thomas Petazzoni wrote:
> Maxime,
>
> On Mon, 20 Jul 2015 10:41:32 +0200, Maxime Ripard wrote:
>
> > /**
> > + * enum dmaengine_alignment - defines alignment of the DMA async tx
> > + * buffers
> > + */
> > +enum dmaengine_alignment {
> > + DMAENGINE_ALIGN_1_BYTE = 0,
> > + DMAENGINE_ALIGN_2_BYTES = 1,
> > + DMAENGINE_ALIGN_4_BYTES = 2,
> > + DMAENGINE_ALIGN_8_BYTES = 3,
> > + DMAENGINE_ALIGN_16_BYTES = 4,
> > + DMAENGINE_ALIGN_32_BYTES = 5,
> > + DMAENGINE_ALIGN_64_BYTES = 6,
> > +};
>
> Sorry I didn't think about this during the first iteration, but this
> define is just the log2 of the values, no? So maybe you could simply do
> something like:
>
> static inline unsigned int dmaengine_alignment(size_t bytes)
> {
> return ilog2(bytes);
> }

I could, but all the rest of the other similar case so far in
dmaengine are made through enum, so I guess it's still better for
consistency. And we also provide a comprehensive list of the valid
values this way, something a function would not provide (or at least
not at compilation time)

Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

Attachment: signature.asc
Description: Digital signature