Merge branch 'master'
[linux-2.6] / arch / mips / pci / fixup-ev64120.c
1 #include <linux/pci.h>
2 #include <linux/init.h>
3
4 int pci_range_ck(unsigned char bus, unsigned char dev)
5 {
6         if (((bus == 0) || (bus == 1)) && (dev >= 6) && (dev <= 8))
7                 return 0;
8
9         return -1;
10 }
11
12 /*
13  * After detecting all agents over the PCI , this function is called
14  * in order to give an interrupt number for each PCI device starting
15  * from IRQ 20. It does also enables master for each device.
16  */
17 void __devinit pcibios_fixup_bus(struct pci_bus *bus)
18 {
19         unsigned int irq = 20;
20         struct pci_bus *current_bus = bus;
21         struct pci_dev *dev;
22         struct list_head *devices_link;
23
24         list_for_each(devices_link, &(current_bus->devices)) {
25                 dev = pci_dev_b(devices_link);
26                 if (dev != NULL) {
27                         dev->irq = irq++;
28
29                         /* Assign an interrupt number for the device */
30                         pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
31                         pcibios_set_master(dev);
32                 }
33         }
34 }