Commit 9a74fa0d authored by Daniel Ritz's avatar Daniel Ritz Committed by Chris Wright

[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: default avatarDaniel Ritz <daniel.ritz@gmx.ch>
Cc: <stable@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
parent 37ccc3f9
...@@ -255,13 +255,13 @@ static int pirq_via_set(struct pci_dev *router, struct pci_dev *dev, int pirq, i ...@@ -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 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]); 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 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); 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