1 #include <linux/pci.h>
2 #include <linux/init.h>
3 
pci_range_ck(unsigned char bus,unsigned char dev)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  */
gt64120_board_pcibios_fixup_bus(struct pci_bus * bus)17 void __init gt64120_board_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 			pcibios_write_config_byte(bus, dev->devfn,
31 			                          PCI_INTERRUPT_LINE, irq);
32 			pcibios_set_master(dev);
33 		}
34 	}
35 }
36