]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
x86, acpi/irq: Handle isa irqs that are not identity mapped to gsi's.
authorEric W. Biederman <ebiederm@xmission.com>
Tue, 30 Mar 2010 08:07:15 +0000 (01:07 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 4 May 2010 20:35:17 +0000 (13:35 -0700)
commit988856ee1623bd37e384105f7bb2b7fe44c009f6
tree399f084e7fcddd680b3873a4c9dc6b554405a867
parent4afc51a835d3aeba11c35090f524e05c84586d27
x86, acpi/irq: Handle isa irqs that are not identity mapped to gsi's.

ACPI irq source overrides are allowed for the 16 isa irqs and are
allowed to map any gsi to any isa irq.  A few motherboards have been
seen to take advantage of this and put the isa irqs on the 2nd or
3rd ioapic.  This causes some problems, most notably the fact
that we can not use any gsi < 16.

To correct this move the gsis that are not isa irqs and have
a gsi number < 16 into the linux irq space just past gsi_end.
This is what the es7000 platform is doing today.  Moving only the
low 16 gsis above the rest of the gsi's only penalizes weird
platforms, leaving sane acpi implementations with a 1-1 mapping
of gsis and irqs.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
LKML-Reference: <1269936436-7039-14-git-send-email-ebiederm@xmission.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/kernel/acpi/boot.c
arch/x86/kernel/apic/io_apic.c