Commit 9ca0bc2c authored by Daniel Ritz's avatar Daniel Ritz Committed by Adrian Bunk

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
Signed-off-by: default avatarDaniel Ritz <daniel.ritz@gmx.ch>
Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
parent 891bdfcd
...@@ -256,13 +256,13 @@ static int pirq_via_set(struct pci_dev *router, struct pci_dev *dev, int pirq, i ...@@ -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 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]); 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 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); write_config_nybble(router, 0x55, pirqmap[pirq-1], irq);
return 1; return 1;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment