1 #include <linux/pci.h> 2 #include <linux/init.h> 3 pci_range_ck(unsigned char bus,unsigned char dev)4int 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)17void __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