mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Kimball Murray <kimball.murray@gmail.com>
To: <akpm@digeo.com>
Cc: Kimball Murray <kimball.murray@gmail.com>, <len.brown@intel.com>,
	<ak@suse.de>, <kimball.murray@gmail.com>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH] ACPI SCI interrupt source override
Date: Wed, 2 Aug 2006 12:24:09 -0400	[thread overview]
Message-ID: <20060802162210.30097.44577.sendpatchset@dhcp83-86.boston.redhat.com> (raw)

This is a repost of a patch sent to linux-acpi a few months ago.  Casting it
out to a wider audience now.

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.

This patch was generated against Linus' git tree.

Signed-off by: David Bulkow	<david.bulkow@stratus.com>

---------------- snip -----------------------------------------
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
index 0db6387..efeeaab 100644
--- a/arch/i386/kernel/acpi/boot.c
+++ b/arch/i386/kernel/acpi/boot.c
@@ -325,7 +325,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;
@@ -345,13 +345,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;
 }

@@ -369,7 +369,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;
@@ -793,7 +793,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();


                 reply	other threads:[~2006-08-02 16:24 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20060802162210.30097.44577.sendpatchset@dhcp83-86.boston.redhat.com \
    --to=kimball.murray@gmail.com \
    --cc=ak@suse.de \
    --cc=akpm@digeo.com \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®