Commit 8885b7b6 authored by Thierry Reding's avatar Thierry Reding Committed by Bjorn Helgaas

PCI: Provide a default pcibios_update_irq()

Most architectures implement this in exactly the same way. Instead of
having each architecture duplicate this function, provide a single
implementation in the core and make it a weak symbol so that it can be
overridden on architectures where it is required.
Signed-off-by: default avatarThierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 3ddbebf8
...@@ -256,12 +256,6 @@ pcibios_fixup_bus(struct pci_bus *bus) ...@@ -256,12 +256,6 @@ pcibios_fixup_bus(struct pci_bus *bus)
} }
} }
void
pcibios_update_irq(struct pci_dev *dev, int irq)
{
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
int int
pcibios_enable_device(struct pci_dev *dev, int mask) pcibios_enable_device(struct pci_dev *dev, int mask)
{ {
......
...@@ -270,15 +270,6 @@ static void __devinit pci_fixup_it8152(struct pci_dev *dev) ...@@ -270,15 +270,6 @@ static void __devinit pci_fixup_it8152(struct pci_dev *dev)
} }
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ITE, PCI_DEVICE_ID_ITE_8152, pci_fixup_it8152); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ITE, PCI_DEVICE_ID_ITE_8152, pci_fixup_it8152);
void pcibios_update_irq(struct pci_dev *dev, int irq)
{
if (debug_pci)
printk("PCI: Assigning IRQ %02d to %s\n", irq, pci_name(dev));
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
/* /*
* If the bus contains any of these devices, then we must not turn on * If the bus contains any of these devices, then we must not turn on
* parity checking of any kind. Currently this is CyberPro 20x0 only. * parity checking of any kind. Currently this is CyberPro 20x0 only.
......
...@@ -461,14 +461,6 @@ void pcibios_set_master (struct pci_dev *dev) ...@@ -461,14 +461,6 @@ void pcibios_set_master (struct pci_dev *dev)
/* No special bus mastering setup handling */ /* No special bus mastering setup handling */
} }
void
pcibios_update_irq (struct pci_dev *dev, int irq)
{
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
/* ??? FIXME -- record old value for shutdown. */
}
int int
pcibios_enable_device (struct pci_dev *dev, int mask) pcibios_enable_device (struct pci_dev *dev, int mask)
{ {
......
...@@ -87,11 +87,6 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) ...@@ -87,11 +87,6 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
return 0; return 0;
} }
void pcibios_update_irq(struct pci_dev *dev, int irq)
{
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
void __devinit pcibios_fixup_bus(struct pci_bus *bus) void __devinit pcibios_fixup_bus(struct pci_bus *bus)
{ {
struct pci_dev *dev; struct pci_dev *dev;
......
...@@ -313,12 +313,6 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus) ...@@ -313,12 +313,6 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus)
} }
} }
void
pcibios_update_irq(struct pci_dev *dev, int irq)
{
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
#ifdef CONFIG_HOTPLUG #ifdef CONFIG_HOTPLUG
EXPORT_SYMBOL(PCIBIOS_MIN_IO); EXPORT_SYMBOL(PCIBIOS_MIN_IO);
EXPORT_SYMBOL(PCIBIOS_MIN_MEM); EXPORT_SYMBOL(PCIBIOS_MIN_MEM);
......
...@@ -192,11 +192,6 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) ...@@ -192,11 +192,6 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
return pci_enable_resources(dev, mask); return pci_enable_resources(dev, mask);
} }
void pcibios_update_irq(struct pci_dev *dev, int irq)
{
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
static void __init static void __init
pcibios_bus_report_status_early(struct pci_channel *hose, pcibios_bus_report_status_early(struct pci_channel *hose,
int top_bus, int current_bus, int top_bus, int current_bus,
......
...@@ -102,15 +102,6 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) ...@@ -102,15 +102,6 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
return pci_enable_resources(dev, mask); return pci_enable_resources(dev, mask);
} }
void pcibios_update_irq(struct pci_dev *dev, int irq)
{
#ifdef CONFIG_PCI_DEBUG
printk(KERN_DEBUG "LEONPCI: Assigning IRQ %02d to %s\n", irq,
pci_name(dev));
#endif
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
/* in/out routines taken from pcic.c /* in/out routines taken from pcic.c
* *
* This probably belongs here rather than ioport.c because * This probably belongs here rather than ioport.c because
......
...@@ -622,10 +622,6 @@ void __devinit pcibios_fixup_bus(struct pci_bus *pbus) ...@@ -622,10 +622,6 @@ void __devinit pcibios_fixup_bus(struct pci_bus *pbus)
{ {
} }
void pcibios_update_irq(struct pci_dev *pdev, int irq)
{
}
resource_size_t pcibios_align_resource(void *data, const struct resource *res, resource_size_t pcibios_align_resource(void *data, const struct resource *res,
resource_size_t size, resource_size_t align) resource_size_t size, resource_size_t align)
{ {
......
...@@ -403,14 +403,6 @@ void pcibios_set_master(struct pci_dev *dev) ...@@ -403,14 +403,6 @@ void pcibios_set_master(struct pci_dev *dev)
/* No special bus mastering setup handling. */ /* No special bus mastering setup handling. */
} }
/*
* This is called from the generic Linux layer.
*/
void pcibios_update_irq(struct pci_dev *dev, int irq)
{
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
/* /*
* Enable memory and/or address decoding, as appropriate, for the * Enable memory and/or address decoding, as appropriate, for the
* device described by the 'dev' struct. * device described by the 'dev' struct.
......
...@@ -1033,14 +1033,6 @@ char __devinit *pcibios_setup(char *str) ...@@ -1033,14 +1033,6 @@ char __devinit *pcibios_setup(char *str)
return str; return str;
} }
/*
* This is called from the generic Linux layer.
*/
void pcibios_update_irq(struct pci_dev *dev, int irq)
{
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
/* /*
* Enable memory address decoding, as appropriate, for the * Enable memory address decoding, as appropriate, for the
* device described by the 'dev' struct. The I/O decoding * device described by the 'dev' struct. The I/O decoding
......
...@@ -154,14 +154,6 @@ void __init puv3_pci_adjust_zones(unsigned long *zone_size, ...@@ -154,14 +154,6 @@ void __init puv3_pci_adjust_zones(unsigned long *zone_size,
zhole_size[0] = 0; zhole_size[0] = 0;
} }
void pcibios_update_irq(struct pci_dev *dev, int irq)
{
if (debug_pci)
printk(KERN_DEBUG "PCI: Assigning IRQ %02d to %s\n",
irq, pci_name(dev));
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
/* /*
* If the bus contains any of these devices, then we must not turn on * If the bus contains any of these devices, then we must not turn on
* parity checking of any kind. * parity checking of any kind.
......
...@@ -62,11 +62,6 @@ static int __init visws_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) ...@@ -62,11 +62,6 @@ static int __init visws_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
return irq; return irq;
} }
void pcibios_update_irq(struct pci_dev *dev, int irq)
{
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
int __init pci_visws_init(void) int __init pci_visws_init(void)
{ {
pcibios_enable_irq = &pci_visws_enable_irq; pcibios_enable_irq = &pci_visws_enable_irq;
......
...@@ -210,14 +210,6 @@ void pcibios_set_master(struct pci_dev *dev) ...@@ -210,14 +210,6 @@ void pcibios_set_master(struct pci_dev *dev)
/* No special bus mastering setup handling */ /* No special bus mastering setup handling */
} }
/* the next one is stolen from the alpha port... */
void
pcibios_update_irq(struct pci_dev *dev, int irq)
{
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
int pcibios_enable_device(struct pci_dev *dev, int mask) int pcibios_enable_device(struct pci_dev *dev, int mask)
{ {
u16 cmd, old_cmd; u16 cmd, old_cmd;
......
...@@ -17,6 +17,11 @@ ...@@ -17,6 +17,11 @@
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/cache.h> #include <linux/cache.h>
void __weak pcibios_update_irq(struct pci_dev *dev, int irq)
{
dev_dbg(&dev->dev, "assigning IRQ %02d\n", irq);
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
}
static void static void
pdev_fixup_irq(struct pci_dev *dev, pdev_fixup_irq(struct pci_dev *dev,
......
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