Commit 749e8081 authored by Roy Zang's avatar Roy Zang Committed by Kumar Gala

[POWERPC] Remove redundant pci_read_irq_line() function for 85xx platform

Remove redundant pci_read_irq_line() function for 85xx CDS board.
This function has been realized in common ppc pci code.
Signed-off-by: default avatarRoy Zang <tie-fei.zang@freescale.com>
Acked-by: default avatarAndy Fleming <afleming@freescale.com>
Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
parent 80a7cc6c
...@@ -69,52 +69,44 @@ static int mpc85xx_exclude_device(struct pci_controller *hose, ...@@ -69,52 +69,44 @@ static int mpc85xx_exclude_device(struct pci_controller *hose,
return PCIBIOS_SUCCESSFUL; return PCIBIOS_SUCCESSFUL;
} }
static void __init mpc85xx_cds_pcibios_fixup(void) static void __init mpc85xx_cds_pci_irq_fixup(struct pci_dev *dev)
{ {
struct pci_dev *dev; u_char c;
u_char c; if (dev->vendor == PCI_VENDOR_ID_VIA) {
switch (dev->device) {
if ((dev = pci_get_device(PCI_VENDOR_ID_VIA, case PCI_DEVICE_ID_VIA_82C586_1:
PCI_DEVICE_ID_VIA_82C586_1, NULL))) { /*
* U-Boot does not set the enable bits
* for the IDE device. Force them on here.
*/
pci_read_config_byte(dev, 0x40, &c);
c |= 0x03; /* IDE: Chip Enable Bits */
pci_write_config_byte(dev, 0x40, c);
/*
* Since only primary interface works, force the
* IDE function to standard primary IDE interrupt
* w/ 8259 offset
*/
dev->irq = 14;
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
break;
/* /*
* U-Boot does not set the enable bits * Force legacy USB interrupt routing
* for the IDE device. Force them on here.
*/ */
pci_read_config_byte(dev, 0x40, &c); case PCI_DEVICE_ID_VIA_82C586_2:
c |= 0x03; /* IDE: Chip Enable Bits */ /* There are two USB controllers.
pci_write_config_byte(dev, 0x40, c); * Identify them by functon number
/*
* Since only primary interface works, force the
* IDE function to standard primary IDE interrupt
* w/ 8259 offset
*/ */
dev->irq = 14; if (PCI_FUNC(dev->devfn))
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); dev->irq = 11;
pci_dev_put(dev); else
} dev->irq = 10;
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
/* default:
* Force legacy USB interrupt routing break;
*/ }
if ((dev = pci_get_device(PCI_VENDOR_ID_VIA,
PCI_DEVICE_ID_VIA_82C586_2, NULL))) {
dev->irq = 10;
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, 10);
pci_dev_put(dev);
}
if ((dev = pci_get_device(PCI_VENDOR_ID_VIA,
PCI_DEVICE_ID_VIA_82C586_2, dev))) {
dev->irq = 11;
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, 11);
pci_dev_put(dev);
} }
/* Now map all the PCI irqs */
dev = NULL;
for_each_pci_dev(dev)
pci_read_irq_line(dev);
} }
#ifdef CONFIG_PPC_I8259 #ifdef CONFIG_PPC_I8259
...@@ -229,7 +221,7 @@ static void __init mpc85xx_cds_setup_arch(void) ...@@ -229,7 +221,7 @@ static void __init mpc85xx_cds_setup_arch(void)
for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;) for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
mpc85xx_add_bridge(np); mpc85xx_add_bridge(np);
ppc_md.pcibios_fixup = mpc85xx_cds_pcibios_fixup; ppc_md.pci_irq_fixup = mpc85xx_cds_pci_irq_fixup;
ppc_md.pci_exclude_device = mpc85xx_exclude_device; ppc_md.pci_exclude_device = mpc85xx_exclude_device;
#endif #endif
} }
......
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