[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>
This commit is contained in:
Родитель
8b126b7753
Коммит
f3ac84324f
|
@ -255,13 +255,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 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;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче