From: John W. L. <lin...@tu...> - 2005-08-01 01:25:35
|
Fix-up some basic compile failures related to APUS. Signed-off-by: John W. Linville <lin...@tu...> --- The "asm volatile" fixes in zorro.h were actually warning fix-ups, but easier to just include all the fixes for that file in one patch... arch/ppc/kernel/head.S | 4 ++-- include/asm-ppc/zorro.h | 37 +++++++++++++++++-------------------- 2 files changed, 19 insertions(+), 22 deletions(-) --- linux-apus/include/asm-ppc/zorro.h.orig 2005-07-31 14:18:57.000000000 -0400 +++ linux-apus/include/asm-ppc/zorro.h 2005-07-31 14:36:47.000000000 -0400 @@ -7,8 +7,8 @@ static inline unsigned int z_readb(unsig { unsigned int ret; - asm volatile ("lbz%U1%X1 %0,%1; eieio" - : "=r" (ret) : "m" (*(unsigned char *)addr)); + __asm__ __volatile__ ("lbz%U1%X1 %0,%1; eieio" + : "=r" (ret) : "m" (*(unsigned char *)addr)); return ret; } @@ -16,7 +16,7 @@ static inline unsigned int z_readw(unsig { unsigned int ret; - asm volatile ("lhz%U1%X1 %0,%1; eieio" + __asm__ __volatile__ ("lhz%U1%X1 %0,%1; eieio" : "=r" (ret) : "m" (*(unsigned short *)addr)); return ret; } @@ -25,42 +25,39 @@ static inline unsigned int z_readl(unsig { unsigned int ret; - asm volatile ("lwz%U1%X1 %0,%1; eieio" + __asm__ __volatile__ ("lwz%U1%X1 %0,%1; eieio" : "=r" (ret) : "m" (*(unsigned int *)addr)); return ret; } static inline void z_writeb(unsigned int val, unsigned long addr) { - asm volatile ("stb%U0%X0 %1,%0; eieio" - : "=m" (*(unsigned char *)addr) : "r" (val)); + volatile unsigned char *data = (unsigned char *)addr; + + __asm__ __volatile__ ("stb%U0%X0 %1,%0; eieio" + : "=m" (*data) : "r" (val)); } static inline void z_writew(unsigned int val, unsigned long addr) { - asm volatile ("sth%U0%X0 %1,%0; eieio" - : "=m" (*(unsigned short *)addr) : "r" (val)); + volatile unsigned short *data = (unsigned short *)addr; + + __asm__ __volatile__ ("sth%U0%X0 %1,%0; eieio" + : "=m" (*data) : "r" (val)); } -static inline void z_writel(unsigned int val,unsigned long addr) +static inline void z_writel(unsigned int val, unsigned long addr) { - asm volatile ("stw%U0%X0 %1,%0; eieio" - : "=m" (*(unsigned int *)addr) : "r" (val)); + volatile unsigned long *data = (unsigned long *)addr; + + __asm__ __volatile__ ("stw%U0%X0 %1,%0; eieio" + : "=m" (*data) : "r" (val)); } #define z_memset_io(a,b,c) memset((void *)(a),(b),(c)) #define z_memcpy_fromio(a,b,c) memcpy((a),(void *)(b),(c)) #define z_memcpy_toio(a,b,c) memcpy((void *)(a),(b),(c)) -extern void *__ioremap(unsigned long address, unsigned long size, - unsigned long flags); - -extern void *ioremap(unsigned long address, unsigned long size); -extern void iounmap(void *addr); - -extern void *__ioremap(unsigned long address, unsigned long size, - unsigned long flags); - #define z_ioremap ioremap #define z_iounmap iounmap --- linux-apus/arch/ppc/kernel/head.S.orig 2005-07-31 14:16:19.000000000 -0400 +++ linux-apus/arch/ppc/kernel/head.S 2005-07-31 14:16:31.000000000 -0400 @@ -355,11 +355,11 @@ i##n: \ b __secondary_start_gemini #elif defined(CONFIG_APUS) . = 0x100 - mfspr r4,HID0 + mfspr r4,SPRN_HID0 li r3,0 ori r3,r3,0xc000 andc r4,r4,r3 - mtspr HID0,r4 + mtspr SPRN_HID0,r4 isync sync lis r8,0x6170 -- John W. Linville lin...@tu... |