[patch 20/30] fix via586 irq routing for pirq 5

From: Chris Wright
Date: Wed Nov 15 2006 - 21:51:59 EST


-stable review patch. If anyone has any objections, please let us know.
------------------

From: Daniel Ritz <daniel.ritz-ml@xxxxxxxxxxxxxx>

Fix interrupt routing for via 586 bridges. pirq can be 5 which needs to be
mapped to INTD. But currently the access functions can handle only pirq
1-4. this is similar to the other via chipsets where pirq 4 and 5 are both
mapped to INTD. Fixes bugzilla #7490

Cc: Daniel Paschka <monkey20181@xxxxxxx>
Cc: Adrian Bunk <bunk@xxxxxxxx>
Signed-off-by: Daniel Ritz <daniel.ritz@xxxxxx>
Cc: <stable@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
Signed-off-by: Chris Wright <chrisw@xxxxxxxxxxxx>
---

arch/i386/pci/irq.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- linux-2.6.18.2.orig/arch/i386/pci/irq.c
+++ linux-2.6.18.2/arch/i386/pci/irq.c
@@ -255,13 +255,13 @@ static int pirq_via_set(struct pci_dev *
*/
static int pirq_via586_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
{
- static const unsigned int pirqmap[4] = { 3, 2, 5, 1 };
+ static const unsigned int pirqmap[5] = { 3, 2, 5, 1, 1 };
return read_config_nybble(router, 0x55, pirqmap[pirq-1]);
}

static int pirq_via586_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
{
- static const unsigned int pirqmap[4] = { 3, 2, 5, 1 };
+ static const unsigned int pirqmap[5] = { 3, 2, 5, 1, 1 };
write_config_nybble(router, 0x55, pirqmap[pirq-1], irq);
return 1;
}

--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/