[U-Boot] [PATCH V5.1 1/6] io: add and* and or* operation api to set and clear bit
Prafulla Wadaskar
prafulla at marvell.com
Tue Mar 29 07:40:26 CEST 2011
> -----Original Message-----
> From: Lei Wen [mailto:leiwen at marvell.com]
> Sent: Tuesday, March 29, 2011 8:24 AM
> To: Scott Wood; Heiko Schocher; Prafulla Wadaskar; Wolfgang Denk; u-
> boot at lists.denx.de; Marek Vasut; Ashish Karkare; Prabhanjan Sarnaik; Yu
> Tang; adrian.wenl at gmail.com
> Subject: [PATCH V5.1 1/6] io: add and* and or* operation api to set and
> clear bit
>
> Those api take use of read*/write* to align the current dmb usage.
> Also this could short the code length in one line.
>
> Signed-off-by: Lei Wen <leiwen at marvell.com>
> ---
> Changelog:
> V2:
> V3:
> V4:
> Move original driver specific bit set to the general place
>
> V5:
> fix code style issue
>
> V5.1:
> Add parentheses for the around incoming parameters to prevent
> parsing the complex expression wrong.
>
> arch/arm/include/asm/io.h | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
> index 1fbc531..71e85e8 100644
> --- a/arch/arm/include/asm/io.h
> +++ b/arch/arm/include/asm/io.h
> @@ -141,6 +141,14 @@ extern inline void __raw_readsl(unsigned int addr,
> void *data, int longlen)
> #define readw(c) ({ u16 __v = __arch_getw(c); __iormb(); __v; })
> #define readl(c) ({ u32 __v = __arch_getl(c); __iormb(); __v; })
>
> +#define orb(v, c) writeb(readb(c) | (v), c)
If I am not wrong, this should be like
#define orb(v, c) writeb((readb(c) | v), c)
Regards..
Prafulla . .
More information about the U-Boot
mailing list