forked from Minki/linux
[MIPS] EV64120: Fix PCI interrupt allocation.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
4a4cf77923
commit
4e5852f31a
@ -26,7 +26,7 @@ obj-$(CONFIG_DDB5477) += fixup-ddb5477.o pci-ddb5477.o ops-ddb5477.o
|
||||
obj-$(CONFIG_LASAT) += pci-lasat.o
|
||||
obj-$(CONFIG_MIPS_ATLAS) += fixup-atlas.o
|
||||
obj-$(CONFIG_MIPS_COBALT) += fixup-cobalt.o
|
||||
obj-$(CONFIG_MIPS_EV64120) += fixup-ev64120.o
|
||||
obj-$(CONFIG_MIPS_EV64120) += pci-ev64120.o
|
||||
obj-$(CONFIG_SOC_AU1500) += fixup-au1000.o ops-au1000.o
|
||||
obj-$(CONFIG_SOC_AU1550) += fixup-au1000.o ops-au1000.o
|
||||
obj-$(CONFIG_SOC_PNX8550) += fixup-pnx8550.o ops-pnx8550.o
|
||||
|
@ -1,34 +0,0 @@
|
||||
#include <linux/pci.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
int pci_range_ck(unsigned char bus, unsigned char dev)
|
||||
{
|
||||
if (((bus == 0) || (bus == 1)) && (dev >= 6) && (dev <= 8))
|
||||
return 0;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* After detecting all agents over the PCI , this function is called
|
||||
* in order to give an interrupt number for each PCI device starting
|
||||
* from IRQ 20. It does also enables master for each device.
|
||||
*/
|
||||
void __devinit pcibios_fixup_bus(struct pci_bus *bus)
|
||||
{
|
||||
unsigned int irq = 20;
|
||||
struct pci_bus *current_bus = bus;
|
||||
struct pci_dev *dev;
|
||||
struct list_head *devices_link;
|
||||
|
||||
list_for_each(devices_link, &(current_bus->devices)) {
|
||||
dev = pci_dev_b(devices_link);
|
||||
if (dev != NULL) {
|
||||
dev->irq = irq++;
|
||||
|
||||
/* Assign an interrupt number for the device */
|
||||
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
|
||||
pcibios_set_master(dev);
|
||||
}
|
||||
}
|
||||
}
|
21
arch/mips/pci/pci-ev64120.c
Normal file
21
arch/mips/pci/pci-ev64120.c
Normal file
@ -0,0 +1,21 @@
|
||||
#include <linux/pci.h>
|
||||
|
||||
int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||
{
|
||||
int irq;
|
||||
|
||||
if (!pin)
|
||||
return 0;
|
||||
|
||||
irq = allocate_irqno();
|
||||
if (irq < 0)
|
||||
return 0;
|
||||
|
||||
return irq;
|
||||
}
|
||||
|
||||
/* Do platform specific device initialization at pci_enable_device() time */
|
||||
int pcibios_plat_dev_init(struct pci_dev *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user