mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
bitkeeper revision 1.1389.15.8 (4281bcbaUAXd-mXY9bU_xjLtHjFVJg)
Xen parses IOAPIC entries in the ACPI MADT. Signed-off-by: Keir Fraser <keir@xensource.com>
This commit is contained in:
1 parent
080cccdae9
commit
8efee44486
1 file changed
+12
-8
@@ -37,7 +37,9 @@
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mpspec.h>
|
||||
|
||||
int sbf_port; /* XXX XEN */
|
||||
int sbf_port;
|
||||
#define end_pfn_map max_page
|
||||
#define CONFIG_ACPI_PCI
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
|
||||
@@ -109,7 +111,7 @@ char *__acpi_map_table(unsigned long phys_addr, unsigned long size)
|
||||
if (!phys_addr || !size)
|
||||
return NULL;
|
||||
|
||||
if (phys_addr < (max_page << PAGE_SHIFT))
|
||||
if (phys_addr < (end_pfn_map << PAGE_SHIFT))
|
||||
return __va(phys_addr);
|
||||
|
||||
return NULL;
|
||||
@@ -279,7 +281,7 @@ acpi_parse_lapic_nmi (
|
||||
|
||||
#endif /*CONFIG_X86_LOCAL_APIC*/
|
||||
|
||||
#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_ACPI_INTERPRETER)
|
||||
#if defined(CONFIG_X86_IO_APIC) /*&& defined(CONFIG_ACPI_INTERPRETER)*/
|
||||
|
||||
static int __init
|
||||
acpi_parse_ioapic (
|
||||
@@ -302,6 +304,7 @@ acpi_parse_ioapic (
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ACPI_INTERPRETER
|
||||
/*
|
||||
* Parse Interrupt Source Override for the ACPI SCI
|
||||
*/
|
||||
@@ -335,6 +338,7 @@ acpi_sci_ioapic_setup(u32 gsi, u16 polarity, u16 trigger)
|
||||
acpi_sci_override_gsi = gsi;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int __init
|
||||
acpi_parse_int_src_ovr (
|
||||
@@ -349,11 +353,13 @@ acpi_parse_int_src_ovr (
|
||||
|
||||
acpi_table_print_madt_entry(header);
|
||||
|
||||
#ifdef CONFIG_ACPI_INTERPRETER
|
||||
if (intsrc->bus_irq == acpi_fadt.sci_int) {
|
||||
acpi_sci_ioapic_setup(intsrc->global_irq,
|
||||
intsrc->flags.polarity, intsrc->flags.trigger);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (acpi_skip_timer_override &&
|
||||
intsrc->bus_irq == 0 && intsrc->global_irq == 2) {
|
||||
@@ -698,7 +704,7 @@ acpi_parse_madt_lapic_entries(void)
|
||||
}
|
||||
#endif /* CONFIG_X86_LOCAL_APIC */
|
||||
|
||||
#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_ACPI_INTERPRETER)
|
||||
#if defined(CONFIG_X86_IO_APIC) /*&& defined(CONFIG_ACPI_INTERPRETER)*/
|
||||
/*
|
||||
* Parse IOAPIC related entries in MADT
|
||||
* returns 0 on success, < 0 on error
|
||||
@@ -744,12 +750,14 @@ acpi_parse_madt_ioapic_entries(void)
|
||||
return count;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ACPI_INTERPRETER
|
||||
/*
|
||||
* If BIOS did not supply an INT_SRC_OVR for the SCI
|
||||
* 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);
|
||||
#endif
|
||||
|
||||
/* Fill in identity legacy mapings where no override */
|
||||
mp_config_acpi_legacy_irqs();
|
||||
@@ -856,10 +864,6 @@ acpi_boot_table_init(void)
|
||||
return error;
|
||||
}
|
||||
|
||||
#if 0 /*def __i386__*/
|
||||
check_acpi_pci();
|
||||
#endif
|
||||
|
||||
acpi_table_parse(ACPI_BOOT, acpi_parse_sbf);
|
||||
|
||||
/*
|
||||
|
||||