Commit 4e5852f3 authored by Ralf Baechle's avatar Ralf Baechle

[MIPS] EV64120: Fix PCI interrupt allocation.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 4a4cf779
......@@ -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
......
#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);
}
}
}
#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;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment