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. ...@@ -86,10 +86,13 @@ running once the system is up.
See also Documentation/scsi/ncr53c7xx.txt. See also Documentation/scsi/ncr53c7xx.txt.
acpi= [HW,ACPI] Advanced Configuration and Power Interface 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 force -- enables ACPI for systems with default off
off -- disabled ACPI for systems with default on off -- disabled ACPI for systems with default on
ht -- run only enough ACPI to enable Hyper Threading 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. See also Documentation/pm.txt.
acpi_pic_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode acpi_pic_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
......
...@@ -42,11 +42,12 @@ ...@@ -42,11 +42,12 @@
#define PREFIX "ACPI: " #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_ht __initdata = 1; /* enable HT */
int acpi_lapic; int acpi_lapic;
int acpi_ioapic; int acpi_ioapic;
int acpi_strict;
/* -------------------------------------------------------------------------- /* --------------------------------------------------------------------------
Boot-time Configuration Boot-time Configuration
......
...@@ -562,6 +562,11 @@ static void __init parse_cmdline_early (char ** cmdline_p) ...@@ -562,6 +562,11 @@ static void __init parse_cmdline_early (char ** cmdline_p)
acpi_disabled = 0; 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 */ /* Limit ACPI just to boot-time to enable HT */
else if (!memcmp(from, "acpi=ht", 7)) { else if (!memcmp(from, "acpi=ht", 7)) {
acpi_ht = 1; acpi_ht = 1;
......
...@@ -48,11 +48,12 @@ ...@@ -48,11 +48,12 @@
#define PREFIX "ACPI: " #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_ht __initdata = 1; /* enable HT */
int acpi_lapic; int acpi_lapic;
int acpi_ioapic; int acpi_ioapic;
int acpi_strict;
/* -------------------------------------------------------------------------- /* --------------------------------------------------------------------------
Boot-time Configuration Boot-time Configuration
......
...@@ -251,17 +251,5 @@ config ACPI_SYSTEM ...@@ -251,17 +251,5 @@ config ACPI_SYSTEM
This driver will enable your system to shut down using ACPI, and This driver will enable your system to shut down using ACPI, and
dump your ACPI DSDT table using /proc/acpi/dsdt. 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 endmenu
...@@ -154,8 +154,7 @@ acpi_ex_setup_region ( ...@@ -154,8 +154,7 @@ acpi_ex_setup_region (
field_datum_byte_offset, obj_desc->common_field.access_byte_width, field_datum_byte_offset, obj_desc->common_field.access_byte_width,
acpi_ut_get_node_name (rgn_desc->region.node), rgn_desc->region.length)); 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 * Allow access to the field if it is within the region size
* rounded up to a multiple of the access byte width. This * rounded up to a multiple of the access byte width. This
...@@ -186,9 +185,9 @@ acpi_ex_setup_region ( ...@@ -186,9 +185,9 @@ acpi_ex_setup_region (
return_ACPI_STATUS (AE_OK); return_ACPI_STATUS (AE_OK);
} }
} }
#else else {
return_ACPI_STATUS (AE_AML_REGION_LIMIT); return_ACPI_STATUS (AE_AML_REGION_LIMIT);
#endif }
} }
return_ACPI_STATUS (AE_OK); return_ACPI_STATUS (AE_OK);
......
...@@ -110,6 +110,7 @@ ...@@ -110,6 +110,7 @@
extern int acpi_lapic; extern int acpi_lapic;
extern int acpi_ioapic; extern int acpi_ioapic;
extern int acpi_noirq; extern int acpi_noirq;
extern int acpi_strict;
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */ /* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
#define FIX_ACPI_PAGES 4 #define FIX_ACPI_PAGES 4
......
...@@ -86,6 +86,8 @@ ia64_acpi_release_global_lock (unsigned int *lock) ...@@ -86,6 +86,8 @@ ia64_acpi_release_global_lock (unsigned int *lock)
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \ #define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \
((Acq) = ia64_acpi_release_global_lock((unsigned int *) GLptr)) ((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); const char *acpi_get_sysname (void);
int acpi_request_vector (u32 int_type); int acpi_request_vector (u32 int_type);
int acpi_register_irq (u32 gsi, u32 polarity, u32 trigger); int acpi_register_irq (u32 gsi, u32 polarity, u32 trigger);
......
...@@ -104,6 +104,7 @@ __acpi_release_global_lock (unsigned int *lock) ...@@ -104,6 +104,7 @@ __acpi_release_global_lock (unsigned int *lock)
extern int acpi_lapic; extern int acpi_lapic;
extern int acpi_ioapic; extern int acpi_ioapic;
extern int acpi_noirq; extern int acpi_noirq;
extern int acpi_strict;
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */ /* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
#define FIX_ACPI_PAGES 4 #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