> -----Original Message----- > From: Lei Wen [mailto:lei...@marvell.com] > Sent: Tuesday, March 29, 2011 8:24 AM > To: Scott Wood; Heiko Schocher; Prafulla Wadaskar; Wolfgang Denk; u- > b...@lists.denx.de; Marek Vasut; Ashish Karkare; Prabhanjan Sarnaik; Yu > Tang; adrian.w...@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 <lei...@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 . . _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot