Commit daa74787 authored by Len Brown's avatar Len Brown Committed by Len Brown

[ACPI] include CONFIG_ACPI_RELAXED_AML code always

  add acpi=strict option to disable platform workarounds
parent c86eccb1
......@@ -86,10 +86,13 @@ running once the system is up.
See also Documentation/scsi/ncr53c7xx.txt.
acpi= [HW,ACPI] Advanced Configuration and Power Interface
Format: { force | off | ht }
Format: { force | off | ht | strict }
force -- enables ACPI for systems with default off
off -- disabled ACPI for systems with default on
ht -- run only enough ACPI to enable Hyper Threading
strict -- Be less tolerant of platforms that are not
strictly ACPI specification compliant.
See also Documentation/pm.txt.
acpi_pic_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
......
......@@ -42,11 +42,12 @@
#define PREFIX "ACPI: "
int acpi_noirq __initdata = 0; /* skip ACPI IRQ initialization */
int acpi_noirq __initdata; /* skip ACPI IRQ initialization */
int acpi_ht __initdata = 1; /* enable HT */
int acpi_lapic;
int acpi_ioapic;
int acpi_strict;
/* --------------------------------------------------------------------------
Boot-time Configuration
......
......@@ -562,6 +562,11 @@ static void __init parse_cmdline_early (char ** cmdline_p)
acpi_disabled = 0;
}
/* acpi=strict disables out-of-spec workarounds */
else if (!memcmp(from, "acpi=strict", 11)) {
acpi_strict = 1;
}
/* Limit ACPI just to boot-time to enable HT */
else if (!memcmp(from, "acpi=ht", 7)) {
acpi_ht = 1;
......
......@@ -48,11 +48,12 @@
#define PREFIX "ACPI: "
int acpi_noirq __initdata = 0; /* skip ACPI IRQ initialization */
int acpi_noirq __initdata; /* skip ACPI IRQ initialization */
int acpi_ht __initdata = 1; /* enable HT */
int acpi_lapic;
int acpi_ioapic;
int acpi_strict;
/* --------------------------------------------------------------------------
Boot-time Configuration
......
......@@ -251,17 +251,5 @@ config ACPI_SYSTEM
This driver will enable your system to shut down using ACPI, and
dump your ACPI DSDT table using /proc/acpi/dsdt.
config ACPI_RELAXED_AML
bool "Relaxed AML"
depends on ACPI_INTERPRETER
depends on !IA64_SGI_SN
default n
help
If you say `Y' here, the ACPI interpreter will relax its checking
for valid AML and will ignore some AML mistakes, such as off-by-one
errors in region sizes. Some laptops may require this option. In
particular, many Toshiba laptops require this for correct operation
of the AC module.
endmenu
......@@ -154,8 +154,7 @@ acpi_ex_setup_region (
field_datum_byte_offset, obj_desc->common_field.access_byte_width,
acpi_ut_get_node_name (rgn_desc->region.node), rgn_desc->region.length));
#ifdef CONFIG_ACPI_RELAXED_AML
{
if (!acpi_strict) {
/*
* Allow access to the field if it is within the region size
* rounded up to a multiple of the access byte width. This
......@@ -186,9 +185,9 @@ acpi_ex_setup_region (
return_ACPI_STATUS (AE_OK);
}
}
#else
else {
return_ACPI_STATUS (AE_AML_REGION_LIMIT);
#endif
}
}
return_ACPI_STATUS (AE_OK);
......
......@@ -110,6 +110,7 @@
extern int acpi_lapic;
extern int acpi_ioapic;
extern int acpi_noirq;
extern int acpi_strict;
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
#define FIX_ACPI_PAGES 4
......
......@@ -86,6 +86,8 @@ ia64_acpi_release_global_lock (unsigned int *lock)
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \
((Acq) = ia64_acpi_release_global_lock((unsigned int *) GLptr))
#define acpi_strict 1 /* no ACPI spec workarounds on IA64 */
const char *acpi_get_sysname (void);
int acpi_request_vector (u32 int_type);
int acpi_register_irq (u32 gsi, u32 polarity, u32 trigger);
......
......@@ -104,6 +104,7 @@ __acpi_release_global_lock (unsigned int *lock)
extern int acpi_lapic;
extern int acpi_ioapic;
extern int acpi_noirq;
extern int acpi_strict;
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
#define FIX_ACPI_PAGES 4
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment