summaryrefslogtreecommitdiff
path: root/arch/powerpc/platforms/pasemi/pci.c
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2007-02-04 16:36:54 -0600
committerPaul Mackerras <paulus@samba.org>2007-02-07 14:03:22 +1100
commitf9fba5b72dbedc691dcb10ae666ec03f279b07f4 (patch)
treecfd2350baf2a8d6dd2cef23070b95f21ff1e8211 /arch/powerpc/platforms/pasemi/pci.c
parentc388cfebbf22acd2b6adf757b35e28d4be66ac7c (diff)
[POWERPC] pasemi: Configure DMA controller interrupts
The DMA controller on PWRficient is somewhat special -- has a PCI header so it looks like it's on the root PCI (-Express) root bus, but it uses more than the default number of interrupts (and they are hardwired). We need to wire up all interrupts for the DMA controller. The generic IRQ code will only map the primary interrupt from the PCI header (128), so add 129->211 by hand. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/pasemi/pci.c')
-rw-r--r--arch/powerpc/platforms/pasemi/pci.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/pasemi/pci.c b/arch/powerpc/platforms/pasemi/pci.c
index faa618e04047..7ecb2ba24db9 100644
--- a/arch/powerpc/platforms/pasemi/pci.c
+++ b/arch/powerpc/platforms/pasemi/pci.c
@@ -163,6 +163,19 @@ static void __init pas_fixup_phb_resources(void)
}
+void __devinit pas_pci_irq_fixup(struct pci_dev *dev)
+{
+ /* DMA is special, 84 interrupts (128 -> 211), all but 128
+ * need to be mapped by hand here.
+ */
+ if (dev->vendor == 0x1959 && dev->device == 0xa007) {
+ int i;
+ for (i = 129; i < 212; i++)
+ irq_create_mapping(NULL, i);
+ }
+}
+
+
void __init pas_pci_init(void)
{
struct device_node *np, *root;