[ARM] omap: Fix IO_ADDRESS() macros
OMAP1_IO_ADDRESS(), OMAP2_IO_ADDRESS() and IO_ADDRESS() returns cookies for use with __raw_{read|write}* for accessing registers. Therefore, these macros should return (void __iomem *) cookies, not integer values. Doing this improves typechecking, and means we can find those places where, eg, DMA controllers are incorrectly given virtual addresses to DMA to, or physical addresses are thrown through a virtual to physical address translation. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
d592dd1adc
commit
e8a91c953f
@ -18,7 +18,7 @@
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
#define OMAP_CM_REGADDR(module, reg) \
|
||||
(void __iomem *)IO_ADDRESS(OMAP2_CM_BASE + (module) + (reg))
|
||||
IO_ADDRESS(OMAP2_CM_BASE + (module) + (reg))
|
||||
#else
|
||||
#define OMAP2420_CM_REGADDR(module, reg) \
|
||||
IO_ADDRESS(OMAP2420_CM_BASE + (module) + (reg))
|
||||
|
@ -64,10 +64,8 @@ static struct resource gpmc_cs_mem[GPMC_CS_NUM];
|
||||
static DEFINE_SPINLOCK(gpmc_mem_lock);
|
||||
static unsigned gpmc_cs_map;
|
||||
|
||||
static void __iomem *gpmc_base =
|
||||
(void __iomem *) IO_ADDRESS(GPMC_BASE);
|
||||
static void __iomem *gpmc_cs_base =
|
||||
(void __iomem *) IO_ADDRESS(GPMC_BASE) + GPMC_CS0;
|
||||
static void __iomem *gpmc_base = IO_ADDRESS(GPMC_BASE);
|
||||
static void __iomem *gpmc_cs_base = IO_ADDRESS(GPMC_BASE) + GPMC_CS0;
|
||||
|
||||
static struct clk *gpmc_fck;
|
||||
|
||||
|
@ -21,11 +21,11 @@
|
||||
#include <mach/cpu.h>
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP2420)
|
||||
#define TAP_BASE io_p2v(0x48014000)
|
||||
#define TAP_BASE IO_ADDRESS(0x48014000)
|
||||
#elif defined(CONFIG_ARCH_OMAP2430)
|
||||
#define TAP_BASE io_p2v(0x4900A000)
|
||||
#define TAP_BASE IO_ADDRESS(0x4900A000)
|
||||
#elif defined(CONFIG_ARCH_OMAP34XX)
|
||||
#define TAP_BASE io_p2v(0x4830A000)
|
||||
#define TAP_BASE IO_ADDRESS(0x4830A000)
|
||||
#endif
|
||||
|
||||
#define OMAP_TAP_IDCODE 0x0204
|
||||
|
@ -32,7 +32,7 @@
|
||||
* for each bank.. when in doubt, consult the TRM.
|
||||
*/
|
||||
static struct omap_irq_bank {
|
||||
unsigned long base_reg;
|
||||
void __iomem *base_reg;
|
||||
unsigned int nr_irqs;
|
||||
} __attribute__ ((aligned(4))) irq_banks[] = {
|
||||
{
|
||||
@ -94,7 +94,7 @@ static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank)
|
||||
unsigned long tmp;
|
||||
|
||||
tmp = __raw_readl(bank->base_reg + INTC_REVISION) & 0xff;
|
||||
printk(KERN_INFO "IRQ: Found an INTC at 0x%08lx "
|
||||
printk(KERN_INFO "IRQ: Found an INTC at 0x%p "
|
||||
"(revision %ld.%ld) with %d interrupts\n",
|
||||
bank->base_reg, tmp >> 4, tmp & 0xf, bank->nr_irqs);
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
#define OMAP_PRM_REGADDR(module, reg) \
|
||||
(void __iomem *)IO_ADDRESS(OMAP2_PRM_BASE + (module) + (reg))
|
||||
IO_ADDRESS(OMAP2_PRM_BASE + (module) + (reg))
|
||||
#else
|
||||
#define OMAP2420_PRM_REGADDR(module, reg) \
|
||||
IO_ADDRESS(OMAP2420_PRM_BASE + (module) + (reg))
|
||||
|
@ -32,24 +32,24 @@ static struct clk * uart3_fck = NULL;
|
||||
|
||||
static struct plat_serial8250_port serial_platform_data[] = {
|
||||
{
|
||||
.membase = (char *)IO_ADDRESS(OMAP_UART1_BASE),
|
||||
.mapbase = (unsigned long)OMAP_UART1_BASE,
|
||||
.membase = IO_ADDRESS(OMAP_UART1_BASE),
|
||||
.mapbase = OMAP_UART1_BASE,
|
||||
.irq = 72,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = OMAP16XX_BASE_BAUD * 16,
|
||||
}, {
|
||||
.membase = (char *)IO_ADDRESS(OMAP_UART2_BASE),
|
||||
.mapbase = (unsigned long)OMAP_UART2_BASE,
|
||||
.membase = IO_ADDRESS(OMAP_UART2_BASE),
|
||||
.mapbase = OMAP_UART2_BASE,
|
||||
.irq = 73,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = OMAP16XX_BASE_BAUD * 16,
|
||||
}, {
|
||||
.membase = (char *)IO_ADDRESS(OMAP_UART3_BASE),
|
||||
.mapbase = (unsigned long)OMAP_UART3_BASE,
|
||||
.membase = IO_ADDRESS(OMAP_UART3_BASE),
|
||||
.mapbase = OMAP_UART3_BASE,
|
||||
.irq = 74,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
@ -71,7 +71,7 @@ static inline void serial_write_reg(struct plat_serial8250_port *p, int offset,
|
||||
int value)
|
||||
{
|
||||
offset <<= p->regshift;
|
||||
__raw_writeb(value, (unsigned long)(p->membase + offset));
|
||||
__raw_writeb(value, p->membase + offset);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user