[PATCH] fix via586 irq routing for pirq 5

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@gmx.net>
Cc: Adrian Bunk <bunk@susta.de>
Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Daniel Ritz and committed by Linus Torvalds f3ac8432 8b126b77

+2 -2
+2 -2
arch/i386/pci/irq.c
··· 255 */ 256 static int pirq_via586_get(struct pci_dev *router, struct pci_dev *dev, int pirq) 257 { 258 - static const unsigned int pirqmap[4] = { 3, 2, 5, 1 }; 259 return read_config_nybble(router, 0x55, pirqmap[pirq-1]); 260 } 261 262 static int pirq_via586_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) 263 { 264 - static const unsigned int pirqmap[4] = { 3, 2, 5, 1 }; 265 write_config_nybble(router, 0x55, pirqmap[pirq-1], irq); 266 return 1; 267 }
··· 255 */ 256 static int pirq_via586_get(struct pci_dev *router, struct pci_dev *dev, int pirq) 257 { 258 + static const unsigned int pirqmap[5] = { 3, 2, 5, 1, 1 }; 259 return read_config_nybble(router, 0x55, pirqmap[pirq-1]); 260 } 261 262 static int pirq_via586_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) 263 { 264 + static const unsigned int pirqmap[5] = { 3, 2, 5, 1, 1 }; 265 write_config_nybble(router, 0x55, pirqmap[pirq-1], irq); 266 return 1; 267 }