sparc32: fix sparse warning in auxio_32.c
PATCH 4/12 sparc32: fix sparse warning in auxio_32.c
Fix following warning:
auxio_32.c:133:33: warning: cast removes address space of expression
To fix this auxio_power_register had to be defined as u8 _iomem. Use proper sbus operations on the pointer.
Signed-off-by Sam Ravnborg <[email protected]>
--- arch/sparc/include/asm/auxio_32.h | 2 +- arch/sparc/kernel/auxio_32.c | 6 +++--- arch/sparc/kernel/process_32.c | 8 ++++++-- 3 files changed, 10 insertions(+), 6 deletions(-)
arch/sparc/include/asm/auxio_32.h +1 -1
@@ -78,7 +78,7 @@ do { \/* AUXIO2 (Power Off Control) */ -extern __volatile__ unsigned char * auxio_power_register; +extern volatile u8 __iomem *auxio_power_register;#define AUXIO_POWER_DETECT_FAILURE 32#define AUXIO_POWER_CLEAR_FAILURE 2
arch/sparc/kernel/auxio_32.c +2 -3
@@ -106,7 +106,7 @@ EXPORT_SYMBOL(set_auxio);/* sun4m power control register (AUXIO2) */ -volatile unsigned char * auxio_power_register =NULL ; +volatile u8 __iomem *auxio_power_register =NULL ;void __init auxio_power_probe (void ) {
@@ -130,8 +130,8 @@ void __init auxio_power_probe(void) r.flags = regs.which_io &0xF ; r.start = regs.phys_addr; r.end = regs.phys_addr + regs.reg_size -1 ; - auxio_power_register = (unsigned char *)of_ioremap (&r,0 , - regs.reg_size,"auxpower" ); + auxio_power_register + (u8 __iomem *)of_ioremap (&r,0 , regs.reg_size,"auxpower" );/* Display a quick message on the console. */ if (auxio_power_register)
arch/sparc/kernel/process_32.c +6 -2
@@ -106,8 +106,12 @@ void machine_restart(char * cmd)void machine_power_off (void ) {if (auxio_power_register && - (strcmp (of_console_device->type,"serial" ) || scons_pwroff)) - *auxio_power_register |=AUXIO_POWER_OFF ; + (strcmp (of_console_device->type,"serial" ) || scons_pwroff)) { +u8 power_register =sbus_readb (auxio_power_register); + power_register |=AUXIO_POWER_OFF ; +sbus_writeb (power_register, auxio_power_register); + } +machine_halt (); }
Signature · 1 line
1.9.0