summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/ppc/platforms/pmac_pci.c6
-rw-r--r--arch/ppc/syslib/indirect_pci.c16
-rw-r--r--include/asm-ppc/pci-bridge.h4
3 files changed, 12 insertions, 14 deletions
diff --git a/arch/ppc/platforms/pmac_pci.c b/arch/ppc/platforms/pmac_pci.c
index 555c06188fd4..1828209c0fa3 100644
--- a/arch/ppc/platforms/pmac_pci.c
+++ b/arch/ppc/platforms/pmac_pci.c
@@ -659,8 +659,7 @@ static void __init
setup_bandit(struct pci_controller* hose, struct reg_property* addr)
{
hose->ops = &macrisc_pci_ops;
- hose->cfg_addr = (volatile unsigned int *)
- ioremap(addr->address + 0x800000, 0x1000);
+ hose->cfg_addr = ioremap(addr->address + 0x800000, 0x1000);
hose->cfg_data = ioremap(addr->address + 0xc00000, 0x1000);
init_bandit(hose);
}
@@ -670,8 +669,7 @@ setup_chaos(struct pci_controller* hose, struct reg_property* addr)
{
/* assume a `chaos' bridge */
hose->ops = &chaos_pci_ops;
- hose->cfg_addr = (volatile unsigned int *)
- ioremap(addr->address + 0x800000, 0x1000);
+ hose->cfg_addr = ioremap(addr->address + 0x800000, 0x1000);
hose->cfg_data = ioremap(addr->address + 0xc00000, 0x1000);
}
diff --git a/arch/ppc/syslib/indirect_pci.c b/arch/ppc/syslib/indirect_pci.c
index 1e19d4f4aed5..a5a752609e2c 100644
--- a/arch/ppc/syslib/indirect_pci.c
+++ b/arch/ppc/syslib/indirect_pci.c
@@ -112,11 +112,11 @@ static struct pci_ops indirect_pci_ops =
};
void __init
-setup_indirect_pci_nomap(struct pci_controller* hose, u32 cfg_addr,
- u32 cfg_data)
+setup_indirect_pci_nomap(struct pci_controller* hose, void __iomem * cfg_addr,
+ void __iomem * cfg_data)
{
- hose->cfg_addr = (unsigned int *)cfg_addr;
- hose->cfg_data = (void __iomem *)cfg_data;
+ hose->cfg_addr = cfg_addr;
+ hose->cfg_data = cfg_data;
hose->ops = &indirect_pci_ops;
}
@@ -124,12 +124,12 @@ void __init
setup_indirect_pci(struct pci_controller* hose, u32 cfg_addr, u32 cfg_data)
{
unsigned long base = cfg_addr & PAGE_MASK;
- char *mbase;
+ void __iomem *mbase, *addr, *data;
mbase = ioremap(base, PAGE_SIZE);
- cfg_addr = (u32)(mbase + (cfg_addr & ~PAGE_MASK));
+ addr = mbase + (cfg_addr & ~PAGE_MASK);
if ((cfg_data & PAGE_MASK) != base)
mbase = ioremap(cfg_data & PAGE_MASK, PAGE_SIZE);
- cfg_data = (u32)(mbase + (cfg_data & ~PAGE_MASK));
- setup_indirect_pci_nomap(hose, cfg_addr, cfg_data);
+ data = mbase + (cfg_data & ~PAGE_MASK);
+ setup_indirect_pci_nomap(hose, addr, data);
}
diff --git a/include/asm-ppc/pci-bridge.h b/include/asm-ppc/pci-bridge.h
index 727421e8b17b..78e9be619f14 100644
--- a/include/asm-ppc/pci-bridge.h
+++ b/include/asm-ppc/pci-bridge.h
@@ -57,7 +57,7 @@ struct pci_controller {
unsigned long pci_mem_offset;
struct pci_ops *ops;
- volatile unsigned int *cfg_addr;
+ volatile unsigned int __iomem *cfg_addr;
volatile void __iomem *cfg_data;
/*
* If set, indirect method will set the cfg_type bit as
@@ -95,7 +95,7 @@ int early_write_config_dword(struct pci_controller *hose, int bus, int dev_fn,
int where, u32 val);
extern void setup_indirect_pci_nomap(struct pci_controller* hose,
- u32 cfg_addr, u32 cfg_data);
+ void __iomem *cfg_addr, void __iomem *cfg_data);
extern void setup_indirect_pci(struct pci_controller* hose,
u32 cfg_addr, u32 cfg_data);
extern void setup_grackle(struct pci_controller *hose);