int plen;
bus_dev = pdev->bus->self;
+ bus_pcp = bus_dev->sysdata;
regs_dev = pdev;
+ regs_pcp = regs_dev->sysdata;
while (bus_dev->bus &&
- bus_dev->bus->number != pbm->pci_first_busno) {
+ bus_dev->bus->number != pbm->pci_first_busno &&
+ prom_getproplen(bus_pcp->prom_node,
+ "interrupt-map") <= 0) {
regs_dev = bus_dev;
+ regs_pcp = regs_dev->sysdata;
+
bus_dev = bus_dev->bus->self;
+ bus_pcp = bus_dev->sysdata;
}
- regs_pcp = regs_dev->sysdata;
pregs = regs_pcp->prom_regs;
- bus_pcp = bus_dev->sysdata;
/* But if the PCI bridge has it's own interrupt map
* and mask properties, use that and the regs of the
return 0;
}
+ intmask = &bridge_local_intmask;
+
if (pdev->bus->self != bus_dev)
map_slot = 1;
} else {