static void __init
pcibios_allocate_bus_resources(struct list_head *bus_list)
{
- struct list_head *ln;
struct pci_bus *bus;
int i;
struct resource *res, *pr;
/* Depth-First Search on bus tree */
- for (ln = bus_list->next; ln != bus_list; ln=ln->next) {
- bus = pci_bus_b(ln);
+ list_for_each_entry(bus, bus_list, node) {
for (i = 0; i < 4; ++i) {
if ((res = bus->resource[i]) == NULL || !res->flags
|| res->start > res->end)
struct pci_bus *bus;
struct pci_dev *dev;
struct resource *r;
- struct list_head *ln;
int i;
for (r = pr->child; r != NULL; r = r->sibling) {
return 1;
}
}
- for (ln = parent->children.next; ln != &parent->children;
- ln = ln->next) {
- bus = pci_bus_b(ln);
+ list_for_each_entry(bus, &parent->children, node) {
for (i = 0; i < 4; ++i) {
if ((r = bus->resource[i]) == NULL)
continue;
}
}
}
- for (ln = parent->devices.next; ln != &parent->devices; ln=ln->next) {
- dev = pci_dev_b(ln);
+ list_for_each_entry(dev, &parent->devices, bus_list) {
for (i = 0; i < 6; ++i) {
r = &dev->resource[i];
if (!r->flags || (r->flags & IORESOURCE_UNSET))
static int __init
check_for_io_childs(struct pci_bus *bus, struct resource* res, int *found_vga)
{
- struct list_head *ln;
+ struct pci_dev *dev;
int i;
int rc = 0;
res->end = ((res->end + __sz) / (__sz + 1)) * (__sz + 1) + __sz; \
} while (0)
- for (ln=bus->devices.next; ln != &bus->devices; ln=ln->next) {
- struct pci_dev *dev = pci_dev_b(ln);
+ list_for_each_entry(dev, &bus->devices, bus_list) {
u16 class = dev->class >> 8;
if (class == PCI_CLASS_DISPLAY_VGA ||
static void __init
do_fixup_p2p_level(struct pci_bus *bus)
{
- struct list_head *ln;
+ struct pci_bus *b;
int i, parent_io;
int has_vga = 0;
if (parent_io >= 4)
return;
- for (ln=bus->children.next; ln != &bus->children; ln=ln->next) {
- struct pci_bus *b = pci_bus_b(ln);
+ list_for_each_entry(b, &bus->children, node) {
struct pci_dev *d = b->self;
struct pci_controller* hose = (struct pci_controller *)d->sysdata;
struct resource *res = b->resource[0];
static void
pcibios_fixup_p2p_bridges(void)
{
- struct list_head *ln;
+ struct pci_bus *b;
- for(ln=pci_root_buses.next; ln != &pci_root_buses; ln=ln->next) {
- struct pci_bus *b = pci_bus_b(ln);
+ list_for_each_entry(b, &pci_root_buses, node)
do_fixup_p2p_level(b);
- }
}
#endif /* CONFIG_PPC_PMAC */
__pci_mmap_set_flags(dev, vma, mmap_state);
__pci_mmap_set_pgprot(dev, vma, mmap_state, write_combine);
- ret = remap_page_range(vma, vma->vm_start, vma->vm_pgoff << PAGE_SHIFT,
+ ret = remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
vma->vm_end - vma->vm_start, vma->vm_page_prot);
return ret;
if (flags & IORESOURCE_IO)
return ioport_map(start, len);
if (flags & IORESOURCE_MEM)
- return (void __iomem *) start;
+ /* Not checking IORESOURCE_CACHEABLE because PPC does
+ * not currently distinguish between ioremap and
+ * ioremap_nocache.
+ */
+ return ioremap(start, len);
/* What? */
return NULL;
}