Fix Maple PATA IRQ assignment.
authorDavid Woodhouse <dwmw2@infradead.org>
Mon, 1 Jan 2007 19:31:15 +0000 (19:31 +0000)
committerJeff Garzik <jeff@garzik.org>
Fri, 26 Jan 2007 22:27:40 +0000 (17:27 -0500)
commit8cdf92a98fa0f91068615443f2a8597b7f2c34ca
treec33ae8216599533068dbcf2ef46c19a1f5b942a9
parentdfd7a3db3898e299bdc25f0c77081a8632b3a73c
Fix Maple PATA IRQ assignment.

On the Maple board, the AMD8111 IDE is in legacy mode... except that it
appears on IRQ 20 instead of IRQ 15. For drivers/ide this was handled by
the architecture's "pci_get_legacy_ide_irq()" function, but in libata we
just hard-code the numbers 14 and 15.

This patch provides asm-powerpc/libata-portmap.h which maps the IRQ as
appropriate, having added a pci_dev argument to the
ATA_{PRIM,SECOND}ARY_IRQ macros.

There's probably a better way to do this -- especially if we observe
that the _only_ case in which this seemingly-generic
"pci_get_legacy_ide_irq()" function returns anything other than 14 and
15 for primary and secondary respectively is the case of the AMD8111 on
the Maple board -- couldn't we handle that with a special case in the
pata_amd driver, or perhaps with a PCI quirk for Maple to switch it into
native mode during early boot and assign resources properly?

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
arch/powerpc/Kconfig
drivers/ata/Kconfig
drivers/ata/libata-sff.c
include/asm-generic/libata-portmap.h
include/asm-powerpc/libata-portmap.h [new file with mode: 0644]