]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
fix via586 irq routing for pirq 5
authorDaniel Ritz <daniel.ritz@gmx.ch>
Wed, 15 Nov 2006 16:07:33 +0000 (17:07 +0100)
committerAdrian Bunk <bunk@stusta.de>
Wed, 15 Nov 2006 16:07:33 +0000 (17:07 +0100)
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

Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
arch/i386/pci/irq.c

index 3ca59cad05f33d41ac3e663070d4e44223449a37..e84f915b1398fc8557801d51c9ed6929f2bbc413 100644 (file)
@@ -256,13 +256,13 @@ static int pirq_via_set(struct pci_dev *router, struct pci_dev *dev, int pirq, i
  */
 static int pirq_via586_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
 {
-       static unsigned int pirqmap[4] = { 3, 2, 5, 1 };
+       static 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 unsigned int pirqmap[4] = { 3, 2, 5, 1 };
+       static unsigned int pirqmap[5] = { 3, 2, 5, 1, 1 };
        write_config_nybble(router, 0x55, pirqmap[pirq-1], irq);
        return 1;
 }