Commit 8fb303c7 authored by Ralf Baechle's avatar Ralf Baechle

[MIPS] SB1250: Fix bugs/warnings by creative use of volatile.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 41a8198f
...@@ -218,8 +218,7 @@ void sb1_dma_init(void) ...@@ -218,8 +218,7 @@ void sb1_dma_init(void)
for (i = 0; i < DM_NUM_CHANNELS; i++) { for (i = 0; i < DM_NUM_CHANNELS; i++) {
const u64 base_val = CPHYSADDR(&page_descr[i]) | const u64 base_val = CPHYSADDR(&page_descr[i]) |
V_DM_DSCR_BASE_RINGSZ(1); V_DM_DSCR_BASE_RINGSZ(1);
volatile void *base_reg = void *base_reg = IOADDR(A_DM_REGISTER(i, R_DM_DSCR_BASE));
IOADDR(A_DM_REGISTER(i, R_DM_DSCR_BASE));
__raw_writeq(base_val, base_reg); __raw_writeq(base_val, base_reg);
__raw_writeq(base_val | M_DM_DSCR_BASE_RESET, base_reg); __raw_writeq(base_val | M_DM_DSCR_BASE_RESET, base_reg);
......
...@@ -216,7 +216,7 @@ static int __init bcm1480_pcibios_init(void) ...@@ -216,7 +216,7 @@ static int __init bcm1480_pcibios_init(void)
/* /*
* See if the PCI bus has been configured by the firmware. * See if the PCI bus has been configured by the firmware.
*/ */
reg = *((volatile uint64_t *) IOADDR(A_SCD_SYSTEM_CFG)); reg = __raw_readq(IOADDR(A_SCD_SYSTEM_CFG));
if (!(reg & M_BCM1480_SYS_PCI_HOST)) { if (!(reg & M_BCM1480_SYS_PCI_HOST)) {
bcm1480_bus_status |= PCI_DEVICE_MODE; bcm1480_bus_status |= PCI_DEVICE_MODE;
} else { } else {
......
...@@ -228,7 +228,7 @@ static int __init sb1250_pcibios_init(void) ...@@ -228,7 +228,7 @@ static int __init sb1250_pcibios_init(void)
/* /*
* See if the PCI bus has been configured by the firmware. * See if the PCI bus has been configured by the firmware.
*/ */
reg = *((volatile uint64_t *) IOADDR(A_SCD_SYSTEM_CFG)); reg = __raw_readq(IOADDR(A_SCD_SYSTEM_CFG));
if (!(reg & M_SYS_PCI_HOST)) { if (!(reg & M_SYS_PCI_HOST)) {
sb1250_bus_status |= PCI_DEVICE_MODE; sb1250_bus_status |= PCI_DEVICE_MODE;
} else { } else {
......
...@@ -34,21 +34,21 @@ extern void smp_call_function_interrupt(void); ...@@ -34,21 +34,21 @@ extern void smp_call_function_interrupt(void);
* independent of board/firmware * independent of board/firmware
*/ */
static volatile void *mailbox_0_set_regs[] = { static void *mailbox_0_set_regs[] = {
IOADDR(A_BCM1480_IMR_CPU0_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU), IOADDR(A_BCM1480_IMR_CPU0_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU),
IOADDR(A_BCM1480_IMR_CPU1_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU), IOADDR(A_BCM1480_IMR_CPU1_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU),
IOADDR(A_BCM1480_IMR_CPU2_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU), IOADDR(A_BCM1480_IMR_CPU2_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU),
IOADDR(A_BCM1480_IMR_CPU3_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU), IOADDR(A_BCM1480_IMR_CPU3_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU),
}; };
static volatile void *mailbox_0_clear_regs[] = { static void *mailbox_0_clear_regs[] = {
IOADDR(A_BCM1480_IMR_CPU0_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU), IOADDR(A_BCM1480_IMR_CPU0_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU),
IOADDR(A_BCM1480_IMR_CPU1_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU), IOADDR(A_BCM1480_IMR_CPU1_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU),
IOADDR(A_BCM1480_IMR_CPU2_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU), IOADDR(A_BCM1480_IMR_CPU2_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU),
IOADDR(A_BCM1480_IMR_CPU3_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU), IOADDR(A_BCM1480_IMR_CPU3_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU),
}; };
static volatile void *mailbox_0_regs[] = { static void *mailbox_0_regs[] = {
IOADDR(A_BCM1480_IMR_CPU0_BASE + R_BCM1480_IMR_MAILBOX_0_CPU), IOADDR(A_BCM1480_IMR_CPU0_BASE + R_BCM1480_IMR_MAILBOX_0_CPU),
IOADDR(A_BCM1480_IMR_CPU1_BASE + R_BCM1480_IMR_MAILBOX_0_CPU), IOADDR(A_BCM1480_IMR_CPU1_BASE + R_BCM1480_IMR_MAILBOX_0_CPU),
IOADDR(A_BCM1480_IMR_CPU2_BASE + R_BCM1480_IMR_MAILBOX_0_CPU), IOADDR(A_BCM1480_IMR_CPU2_BASE + R_BCM1480_IMR_MAILBOX_0_CPU),
......
...@@ -169,17 +169,19 @@ void __init plat_mem_setup(void) ...@@ -169,17 +169,19 @@ void __init plat_mem_setup(void)
#define LEDS_PHYS MLEDS_PHYS #define LEDS_PHYS MLEDS_PHYS
#endif #endif
#define setled(index, c) \
((unsigned char *)(IOADDR(LEDS_PHYS)+0x20))[(3-(index))<<3] = (c)
void setleds(char *str) void setleds(char *str)
{ {
void *reg;
int i; int i;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
if (!str[i]) { reg = IOADDR(LEDS_PHYS) + 0x20 + ((3 - i) << 3);
setled(i, ' ');
} else { if (!str[i])
setled(i, str[i]); writeb(' ', reg);
} else
writeb(str[i], reg);
} }
} }
#endif
#endif /* LEDS_PHYS */
...@@ -243,7 +243,7 @@ struct sbmac_softc { ...@@ -243,7 +243,7 @@ struct sbmac_softc {
* Controller-specific things * Controller-specific things
*/ */
volatile void __iomem *sbm_base; /* MAC's base address */ void __iomem *sbm_base; /* MAC's base address */
sbmac_state_t sbm_state; /* current state */ sbmac_state_t sbm_state; /* current state */
volatile void __iomem *sbm_macenable; /* MAC Enable Register */ volatile void __iomem *sbm_macenable; /* MAC Enable Register */
......
...@@ -67,6 +67,6 @@ extern void bcm1480_smp_finish(void); ...@@ -67,6 +67,6 @@ extern void bcm1480_smp_finish(void);
#endif #endif
#define IOADDR(a) ((volatile void __iomem *)(IO_BASE + (a))) #define IOADDR(a) ((void __iomem *)(IO_BASE + (a)))
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment