sh: pci: Convert the SH-5 code over to the new interface.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
Paul Mundt
2009-04-20 20:40:48 +09:00
parent 3444f5ec49
commit 48e4237d96
4 changed files with 24 additions and 53 deletions

View File

@ -27,12 +27,6 @@
unsigned long pcicr_virt;
unsigned long PCI_IO_AREA;
int __init sh5_pci_init(struct pci_channel *chan)
{
pr_debug("PCI: Starting intialization.\n");
return pcibios_init_platform();
}
/* Rounds a number UP to the nearest power of two. Used for
* sizing the PCI window.
*/
@ -95,8 +89,21 @@ static irqreturn_t pcish5_serr_irq(int irq, void *dev_id)
return IRQ_NONE;
}
int __init sh5pci_init(unsigned long memStart, unsigned long memSize)
static struct resource sh5_io_resource = { /* place holder */ };
static struct resource sh5_mem_resource = { /* place holder */ };
static struct pci_channel sh5pci_controller = {
.pci_ops = &sh5_pci_ops,
.mem_resource = &sh5_mem_resource,
.mem_offset = 0x00000000,
.io_resource = &sh5_io_resource,
.io_offset = 0x00000000,
};
static int __init sh5pci_init(void)
{
unsigned long memStart = __pa(memory_start);
unsigned long memSize = __pa(memory_end) - memStart;
u32 lsr0;
u32 uval;
@ -203,35 +210,14 @@ int __init sh5pci_init(unsigned long memStart, unsigned long memSize)
SH5PCI_WRITE(AINTM, ~0);
SH5PCI_WRITE(PINTM, ~0);
sh5_io_resource.start = PCI_IO_AREA;
sh5_io_resource.end = PCI_IO_AREA + 0x10000;
sh5_mem_resource.start = memStart;
sh5_mem_resource.end = memStart + memSize;
register_pci_controller(&sh5pci_controller);
return 0;
}
#define xPCIBIOS_MIN_IO board_pci_channels->io_resource->start
#define xPCIBIOS_MIN_MEM board_pci_channels->mem_resource->start
void __devinit pcibios_fixup_bus(struct pci_bus *bus)
{
struct pci_dev *dev = bus->self;
int i;
if (dev) {
for (i= 0; i < 3; i++) {
bus->resource[i] =
&dev->resource[PCI_BRIDGE_RESOURCES+i];
bus->resource[i]->name = bus->name;
}
bus->resource[0]->flags |= IORESOURCE_IO;
bus->resource[1]->flags |= IORESOURCE_MEM;
/* For now, propagate host limits to the bus;
* we'll adjust them later. */
bus->resource[0]->end = 64*1024 - 1 ;
bus->resource[1]->end = xPCIBIOS_MIN_MEM+(256*1024*1024)-1;
bus->resource[0]->start = xPCIBIOS_MIN_IO;
bus->resource[1]->start = xPCIBIOS_MIN_MEM;
/* Turn off downstream PF memory address range by default */
bus->resource[2]->start = 1024*1024;
bus->resource[2]->end = bus->resource[2]->start - 1;
}
}
arch_initcall(sh5pci_init);