From 445d159132be81d00ba3ffa2d82da2c2c5e94eff Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Mon, 9 Oct 2006 13:27:28 +1000 Subject: [PATCH] --- yaml --- r: 39267 b: refs/heads/master c: 1e1b20a119ac45a290bbc6261f69a2a6a2cc064a h: refs/heads/master i: 39265: 7318991c93a35afc8766e12fea3e2a70d8b32d4a 39263: 0537e9f5644fd41e618920abf040496f3aa5e7b0 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/platforms/maple/pci.c | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index f61e094c68d2..593f155b5aa7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c10af8c38da7a0bc9010d6609237c1ab6d2da12c +refs/heads/master: 1e1b20a119ac45a290bbc6261f69a2a6a2cc064a diff --git a/trunk/arch/powerpc/platforms/maple/pci.c b/trunk/arch/powerpc/platforms/maple/pci.c index 8debae3aa3c9..63b4d1bff359 100644 --- a/trunk/arch/powerpc/platforms/maple/pci.c +++ b/trunk/arch/powerpc/platforms/maple/pci.c @@ -516,8 +516,21 @@ void __init maple_pcibios_fixup(void) dev->irq = irq_create_mapping(NULL, 1); if (dev->irq != NO_IRQ) set_irq_type(dev->irq, IRQ_TYPE_LEVEL_LOW); - } else - pci_read_irq_line(dev); + continue; + } + + /* Hide AMD8111 IDE interrupt when in legacy mode so + * the driver calls pci_get_legacy_ide_irq() + */ + if (dev->vendor == PCI_VENDOR_ID_AMD && + dev->device == PCI_DEVICE_ID_AMD_8111_IDE && + (dev->class & 5) != 5) { + dev->irq = NO_IRQ; + continue; + } + + /* For all others, map the interrupt from the device-tree */ + pci_read_irq_line(dev); } DBG(" <- maple_pcibios_fixup\n");