2006-11-11 23:54:22

by Daniel Ritz

[permalink] [raw]
Subject: [PATCH] fix via586 irq routing for pirq 5

( for 2.6.19, and i think it would be good for -stable too... )

[PATCH] fix via586 irq routing for pirq 5

fix interrput 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 <[email protected]>
Cc: Adrian Bunk <[email protected]>
Signed-off-by: Daniel Ritz <[email protected]>


diff --git a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c
index dbc4aae..567126b 100644
--- a/arch/i386/pci/irq.c
+++ b/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;
}


2006-11-12 00:48:12

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] fix via586 irq routing for pirq 5

On Sun, 12 Nov 2006 00:52:44 +0100
Daniel Ritz <[email protected]> wrote:

> ( for 2.6.19, and i think it would be good for -stable too... )

Yup.

> [PATCH] fix via586 irq routing for pirq 5

Thanks very much for working this one out. Most impressive.