From: Len Brown <len.brown@intel.com>
To: linux-acpi@vger.kernel.org
Cc: Kimball Murray <kimball.murray@gmail.com>,
David Bulkow <david.bulkow@stratus.com>,
Andrew Morton <akpm@osdl.org>, Len Brown <len.brown@intel.com>
Subject: [PATCH 24/28] ACPI: SCI interrupt source override
Date: Sat, 14 Oct 2006 04:06:05 -0400
Date: Tue, 10 Oct 2006 14:20:33 -0700 [thread overview]
Message-ID: <11608132003550-git-send-email-len.brown@intel.com> (raw)
Message-ID: <281ea49b0c294649a6de47a6f8fbe5611137726b.1160812999.git.len.brown@intel.com> (raw)
In-Reply-To: <11608131691346-git-send-email-len.brown@intel.com>
In-Reply-To: <288f3ad406460f03642a41bb945826891a7b866f.1160812999.git.len.brown@intel.com>
From: Kimball Murray <kimball.murray@gmail.com>
The Linux group at Stratus Technologies has come across an issue with SCI
routing under ACPI. We were bitten by this when we made an x86_64 platform
whose BIOS provides an Interrupt Source Override for the SCI itself.
Apparently the override has no effect for the System Control Interrupt, and
this appears to be because of the way the SCI is setup in the ACPI code.
It does not handle the case where busirq != gsi.
The code that sets up the SCI routing assumes that bus irq == global irq.
So there is simply no provision for telling it otherwise. The attached
patch provides this mechanism.
This patch provided by David Bulkow, was tested on an i386 platform, which
does not use the SCI override, and also on an x86_64 platform which does
use an override.
Signed-off-by: David Bulkow <david.bulkow@stratus.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
---
arch/i386/kernel/acpi/boot.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
index 92f79cd..ab974ff 100644
--- a/arch/i386/kernel/acpi/boot.c
+++ b/arch/i386/kernel/acpi/boot.c
@@ -332,7 +332,7 @@ acpi_parse_ioapic(acpi_table_entry_heade
/*
* Parse Interrupt Source Override for the ACPI SCI
*/
-static void acpi_sci_ioapic_setup(u32 gsi, u16 polarity, u16 trigger)
+static void acpi_sci_ioapic_setup(u32 bus_irq, u32 gsi, u16 polarity, u16 trigger)
{
if (trigger == 0) /* compatible SCI trigger is level */
trigger = 3;
@@ -352,13 +352,13 @@ static void acpi_sci_ioapic_setup(u32 gs
* If GSI is < 16, this will update its flags,
* else it will create a new mp_irqs[] entry.
*/
- mp_override_legacy_irq(gsi, polarity, trigger, gsi);
+ mp_override_legacy_irq(bus_irq, polarity, trigger, gsi);
/*
* stash over-ride to indicate we've been here
* and for later update of acpi_fadt
*/
- acpi_sci_override_gsi = gsi;
+ acpi_sci_override_gsi = bus_irq;
return;
}
@@ -376,7 +376,7 @@ acpi_parse_int_src_ovr(acpi_table_entry_
acpi_table_print_madt_entry(header);
if (intsrc->bus_irq == acpi_fadt.sci_int) {
- acpi_sci_ioapic_setup(intsrc->global_irq,
+ acpi_sci_ioapic_setup(intsrc->bus_irq, intsrc->global_irq,
intsrc->flags.polarity,
intsrc->flags.trigger);
return 0;
@@ -879,7 +879,7 @@ static int __init acpi_parse_madt_ioapic
* pretend we got one so we can set the SCI flags.
*/
if (!acpi_sci_override_gsi)
- acpi_sci_ioapic_setup(acpi_fadt.sci_int, 0, 0);
+ acpi_sci_ioapic_setup(acpi_fadt.sci_int, acpi_fadt.sci_int, 0, 0);
/* Fill in identity legacy mapings where no override */
mp_config_acpi_legacy_irqs();
--
1.4.3.rc2.g23bed-dirty
next prev parent reply other threads:[~2006-10-14 8:03 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-14 8:05 ACPI patches pushed to linux-2.6.19-rc2 Len Brown
2006-10-14 8:05 ` [PATCH 1/28] ACPI: asus_acpi: W3000 support Len Brown
2006-10-14 8:05 ` Len Brown
2006-10-14 8:05 ` [PATCH 2/28] ACPI: ibm_acpi: Remove experimental status for brightness and volume Len Brown
2006-10-14 8:05 ` Len Brown
2006-10-14 8:05 ` [PATCH 3/28] ACPI: ibm_acpi: Update documentation " Len Brown
2006-10-14 8:05 ` Len Brown
2006-10-14 8:05 ` [PATCH 4/28] ACPI: ibm_acpi: Documentation the wan feature Len Brown
2006-10-14 8:05 ` Len Brown
2006-10-14 8:05 ` [PATCH 5/28] ACPI: sbs: check for NULL device pointer Len Brown
2006-10-14 8:05 ` Len Brown
2006-10-14 8:05 ` [PATCH 6/28] ACPI: sbs: fix module_param() initializers Len Brown
2006-10-14 8:05 ` Len Brown
2006-10-14 8:05 ` [PATCH 7/28] ACPI: Processor native C-states using MWAIT Len Brown
2006-10-14 8:05 ` Len Brown
2006-10-14 8:05 ` [PATCH 8/28] ACPI: consolidate functions in acpi ec driver Len Brown
2006-10-14 8:05 ` Len Brown
2006-10-14 8:05 ` [PATCH 14/28] ACPI: EC: export ec_transaction() for msi-laptop driver Len Brown
2006-10-14 8:05 ` Len Brown
2006-10-14 8:05 ` [PATCH 15/28] MSI S270 Laptop support: backlight, wlan, bluetooth states Len Brown
2006-10-14 8:05 ` Len Brown
2006-10-14 8:05 ` [PATCH 18/28] ACPI: ibm_acpi: delete obsolete documentation Len Brown
2006-10-14 8:05 ` Len Brown
2006-10-14 8:06 ` [PATCH 19/28] ACPI: fix potential OOPS in power driver with CONFIG_ACPI_DEBUG Len Brown
2006-10-14 8:06 ` Len Brown
2006-10-14 8:06 ` [PATCH 20/28] ACPI: acpi_pci_link_set() can allocate with either GFP_ATOMIC or GFP_KERNEL Len Brown
2006-10-14 8:06 ` Len Brown
2006-10-14 8:06 ` [PATCH 21/28] ACPI: update comments in motherboard.c Len Brown
2006-10-14 8:06 ` Len Brown
2007-01-07 4:56 ` Bjorn Helgaas
2006-10-14 8:06 ` [PATCH 22/28] ACPI: fix section for CPU init functions Len Brown
2006-10-14 8:06 ` Len Brown
2006-10-14 8:06 ` [PATCH 23/28] ACPI: fix printk format warnings Len Brown
2006-10-14 8:06 ` Len Brown
2006-10-14 8:06 ` Len Brown [this message]
2006-10-14 8:06 ` [PATCH 24/28] ACPI: SCI interrupt source override Len Brown
2006-10-14 8:06 ` [PATCH 25/28] ACPI: asus_acpi: fix proc files parsing Len Brown
2006-10-14 8:06 ` Len Brown
2006-10-14 8:06 ` [PATCH 26/28] ACPI: asus_acpi: don't printk on writing garbage to proc files Len Brown
2006-10-14 8:06 ` Len Brown
2006-10-14 8:06 ` [PATCH 27/28] ACPICA: Fix incorrect handling of PCI Express Root Bridge _HID Len Brown
2006-10-14 8:06 ` Len Brown
2006-10-14 8:06 ` [PATCH 28/28] ACPI: check battery status on resume for un/plug events during sleep Len Brown
2006-10-14 8:06 ` Len Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11608132003550-git-send-email-len.brown@intel.com \
--to=len.brown@intel.com \
--cc=akpm@osdl.org \
--cc=david.bulkow@stratus.com \
--cc=kimball.murray@gmail.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.