From: Mike Frysinger Date: Thu, 19 May 2011 00:46:03 +0000 (-0400) Subject: Blackfin: fix addr type with bfin_write_{or,and} helpers X-Git-Tag: upstream/snapshot3+hdmi~10163^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7a7a430f7498cd55820232d8e3f144161138f91a;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git Blackfin: fix addr type with bfin_write_{or,and} helpers Since the bfin_write() func needs proper type information in order to expand into the right bfin_writeX() variant, preserve the addr's type when setting up the local __addr. Otherwise the helpers will detect the variant based upon sizeof(void) which is almost never right. Signed-off-by: Mike Frysinger --- diff --git a/arch/blackfin/include/asm/def_LPBlackfin.h b/arch/blackfin/include/asm/def_LPBlackfin.h index 6bc2db6..8236790 100644 --- a/arch/blackfin/include/asm/def_LPBlackfin.h +++ b/arch/blackfin/include/asm/def_LPBlackfin.h @@ -69,13 +69,13 @@ do { \ #define bfin_write_or(addr, bits) \ do { \ - void *__addr = (void *)(addr); \ + typeof(addr) __addr = (addr); \ bfin_write(__addr, bfin_read(__addr) | (bits)); \ } while (0) #define bfin_write_and(addr, bits) \ do { \ - void *__addr = (void *)(addr); \ + typeof(addr) __addr = (addr); \ bfin_write(__addr, bfin_read(__addr) & (bits)); \ } while (0)