static int __init ks8695_pci_setup(int nr, struct pci_sys_data *sys) { if (nr > 0) return 0; request_resource(&iomem_resource, &pci_mem); request_resource(&ioport_resource, &pci_io); pci_add_resource_offset(&sys->resources, &pci_io, sys->io_offset); pci_add_resource_offset(&sys->resources, &pci_mem, sys->mem_offset); /* Assign and enable processor bridge */ ks8695_local_writeconfig(PCI_BASE_ADDRESS_0, KS8695_PCIMEM_PA); /* Enable bus-master & Memory Space access */ ks8695_local_writeconfig(PCI_COMMAND, PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY); /* Set cache-line size & latency. */ ks8695_local_writeconfig(PCI_CACHE_LINE_SIZE, (32 << 8) | (L1_CACHE_BYTES / sizeof(u32))); /* Reserve PCI memory space for PCI-AHB resources */ if (!request_mem_region(KS8695_PCIMEM_PA, SZ_64M, "PCI-AHB Bridge")) { printk(KERN_ERR "Cannot allocate PCI-AHB Bridge memory.\n"); return -EBUSY; } return 1; }
static int __init ks8695_pci_setup(int nr, struct pci_sys_data *sys) { if (nr > 0) return 0; request_resource(&iomem_resource, &pci_mem); request_resource(&ioport_resource, &pci_io); sys->resource[0] = &pci_io; sys->resource[1] = &pci_mem; sys->resource[2] = NULL; ks8695_local_writeconfig(PCI_BASE_ADDRESS_0, KS8695_PCIMEM_PA); ks8695_local_writeconfig(PCI_COMMAND, PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY); ks8695_local_writeconfig(PCI_CACHE_LINE_SIZE, (32 << 8) | (L1_CACHE_BYTES / sizeof(u32))); if (!request_mem_region(KS8695_PCIMEM_PA, SZ_64M, "PCI-AHB Bridge")) { printk(KERN_ERR "Cannot allocate PCI-AHB Bridge memory.\n"); return -EBUSY; } return 1; }