From: Len Brown <lenb@kernel.org>
To: x86@kernel.org, sfi-devel@simplefirmware.org,
linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org
Cc: Feng Tang <feng.tang@intel.com>, Len Brown <len.brown@intel.com>
Subject: [PATCH 06/12] ACPI, x86: remove ACPI dependency on some IO-APIC routines
Date: Wed, 08 Jul 2009 00:13:52 -0400 [thread overview]
Message-ID: <bf8ea7cda3ad3f287f1c9164d366a94eae07a4a5.1247025117.git.len.brown@intel.com> (raw)
In-Reply-To: <1247026438-20891-1-git-send-email-lenb@kernel.org>
In-Reply-To: <8e4a93858bce74ed3080dd607aa471023f1a2737.1247025117.git.len.brown@intel.com>
From: Feng Tang <feng.tang@intel.com>
Both ACPI and SFI x86 systems will use these io_apic routines:
uniq_ioapic_id(u8 id);
io_apic_get_unique_id(int ioapic, int apic_id);
io_apic_get_version(int ioapic);
io_apic_get_redir_entries(int ioapic);
so move the 1st from acpi/boot.c to io_apic.c,
and remove the #ifdef ACPI around the other three.
Signed-off-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
---
arch/x86/include/asm/io_apic.h | 3 +--
arch/x86/kernel/acpi/boot.c | 22 ----------------------
arch/x86/kernel/apic/io_apic.c | 28 +++++++++++++++++++++-------
3 files changed, 22 insertions(+), 31 deletions(-)
diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h
index daf866e..1a097b9 100644
--- a/arch/x86/include/asm/io_apic.h
+++ b/arch/x86/include/asm/io_apic.h
@@ -150,11 +150,10 @@ extern int timer_through_8259;
#define io_apic_assign_pci_irqs \
(mp_irq_entries && !skip_ioapic_setup && io_apic_irqs)
-#ifdef CONFIG_ACPI
+extern u8 uniq_ioapic_id(u8 id);
extern int io_apic_get_unique_id(int ioapic, int apic_id);
extern int io_apic_get_version(int ioapic);
extern int io_apic_get_redir_entries(int ioapic);
-#endif /* CONFIG_ACPI */
struct io_apic_irq_attr;
extern int io_apic_set_pci_routing(struct device *dev, int irq,
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 6b8ca3a..a7f9e89 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -863,28 +863,6 @@ int mp_find_ioapic_pin(int ioapic, int gsi)
return gsi - mp_ioapic_routing[ioapic].gsi_base;
}
-static u8 __init uniq_ioapic_id(u8 id)
-{
-#ifdef CONFIG_X86_32
- if ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) &&
- !APIC_XAPIC(apic_version[boot_cpu_physical_apicid]))
- return io_apic_get_unique_id(nr_ioapics, id);
- else
- return id;
-#else
- int i;
- DECLARE_BITMAP(used, 256);
- bitmap_zero(used, 256);
- for (i = 0; i < nr_ioapics; i++) {
- struct mpc_ioapic *ia = &mp_ioapics[i];
- __set_bit(ia->apicid, used);
- }
- if (!test_bit(id, used))
- return id;
- return find_first_zero_bit(used, 256);
-#endif
-}
-
static int bad_ioapic(unsigned long address)
{
if (nr_ioapics >= MAX_IO_APICS) {
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 4d0216f..5884e60 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -3944,11 +3944,27 @@ int io_apic_set_pci_routing(struct device *dev, int irq,
return __io_apic_set_pci_routing(dev, irq, irq_attr);
}
-/* --------------------------------------------------------------------------
- ACPI-based IOAPIC Configuration
- -------------------------------------------------------------------------- */
-
-#ifdef CONFIG_ACPI
+u8 __init uniq_ioapic_id(u8 id)
+{
+#ifdef CONFIG_X86_32
+ if ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) &&
+ !APIC_XAPIC(apic_version[boot_cpu_physical_apicid]))
+ return io_apic_get_unique_id(nr_ioapics, id);
+ else
+ return id;
+#else
+ int i;
+ DECLARE_BITMAP(used, 256);
+ bitmap_zero(used, 256);
+ for (i = 0; i < nr_ioapics; i++) {
+ struct mpc_ioapic *ia = &mp_ioapics[i];
+ __set_bit(ia->apicid, used);
+ }
+ if (!test_bit(id, used))
+ return id;
+ return find_first_zero_bit(used, 256);
+#endif
+}
#ifdef CONFIG_X86_32
int __init io_apic_get_unique_id(int ioapic, int apic_id)
@@ -4057,8 +4073,6 @@ int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity)
return 0;
}
-#endif /* CONFIG_ACPI */
-
/*
* This function currently is only a helper for the i386 smp boot process where
* we need to reprogram the ioredtbls to cater for the cpus which have come online
--
1.6.0.6
next prev parent reply other threads:[~2009-07-08 4:16 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-08 4:13 [PATCH v2 for 2.6.32] SFI - Simple Firmware Interface support Len Brown
2009-07-08 4:13 ` [PATCH 01/12] SFI: Simple Firmware Interface - new MAINTAINERS entry Len Brown
2009-07-08 4:13 ` [PATCH 02/12] SFI, x86: add CONFIG_SFI Len Brown
2009-07-10 5:23 ` Ingo Molnar
2009-07-08 4:13 ` [PATCH 03/12] SFI: document boot param "sfi=off" Len Brown
2009-07-28 19:24 ` Bjorn Helgaas
2009-07-28 19:52 ` Len Brown
2009-07-08 4:13 ` [PATCH 04/12] SFI: create include/linux/sfi.h Len Brown
2009-07-10 6:48 ` Ingo Molnar
2009-07-08 4:13 ` [PATCH 05/12] SFI: add core support Len Brown
2009-07-10 7:40 ` Ingo Molnar
2009-07-08 4:13 ` Len Brown [this message]
2009-07-10 6:51 ` [PATCH 06/12] ACPI, x86: remove ACPI dependency on some IO-APIC routines Ingo Molnar
2009-07-08 4:13 ` [PATCH 07/12] SFI: add x86 support Len Brown
2009-07-10 6:37 ` Ingo Molnar
2009-07-10 6:48 ` Feng Tang
2009-07-08 4:13 ` [PATCH 08/12] SFI, x86: hook e820() for memory map initialization Len Brown
2009-07-08 21:37 ` H. Peter Anvin
2009-07-09 1:11 ` Feng Tang
2009-07-09 3:57 ` H. Peter Anvin
2009-07-08 4:13 ` [PATCH 09/12] SFI: Enable SFI to parse ACPI tables Len Brown
2009-07-10 6:10 ` Ingo Molnar
2009-07-08 4:13 ` [PATCH 10/12] ACPI: check acpi_disabled in acpi_table_parse() Len Brown
2009-07-08 4:13 ` [PATCH 11/12] SFI, PCI: Hook MMCONFIG Len Brown
2009-07-10 5:52 ` Ingo Molnar
2009-07-10 7:17 ` Feng Tang
2009-07-10 11:14 ` Ingo Molnar
2009-07-08 4:13 ` [PATCH 12/12] SFI: add boot-time initialization hooks Len Brown
2009-07-10 5:18 ` [PATCH v2 for 2.6.32] SFI - Simple Firmware Interface support Ingo Molnar
2009-07-11 1:01 ` Len Brown
2009-07-11 8:26 ` Ingo Molnar
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=bf8ea7cda3ad3f287f1c9164d366a94eae07a4a5.1247025117.git.len.brown@intel.com \
--to=lenb@kernel.org \
--cc=feng.tang@intel.com \
--cc=len.brown@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sfi-devel@simplefirmware.org \
--cc=x86@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®