Re: [PATCH 03/32 v3] dmaengine: ste_dma40: Use the BIT macro toreplace ugly '(1 << x)'s

From: Rabin Vincent
Date: Wed Apr 24 2013 - 15:24:51 EST

2013/4/24 Lee Jones <lee.jones@xxxxxxxxxx>:
> The aim is to make the code that little more readable.
> Acked-by: Vinod Koul <vnod.koul@xxxxxxxxx>
> Acked-by: Arnd Bergmann <arnd@xxxxxxxx>
> Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>

Please pay closer attention to the semantics of each usage instead of
just replacing all x left shifts of 1 by BIT(x) for "readability".

> if (seg_max > STEDMA40_MAX_SEG_SIZE)
> - seg_max -= (1 << max_w);
> + seg_max -= BIT(max_w);
> - if (!IS_ALIGNED(size, 1 << max_w))
> + if (!IS_ALIGNED(size, BIT(max_w)))
> return -EINVAL;

Here and in all other places where the values are from cfg->data_width,
the semantic purpose of the shift is not for setting a particular bit
but instead for converting the data_width field into the data width
value in bytes. You should not change these usages to BIT().

It would be instead better to just make the cfg->data_width as the
number of bytes and convert them to the appropriate hardware field
values when the descriptors are constructed. That of course should be
in another patch.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at