Commit 16aa2ed9 authored by Len Brown's avatar Len Brown Committed by Len Brown

[ACPI] create disable_acpi()

parent 550a411a
...@@ -668,7 +668,7 @@ acpi_boot_init (void) ...@@ -668,7 +668,7 @@ acpi_boot_init (void)
*/ */
error = acpi_table_init(); error = acpi_table_init();
if (error) { if (error) {
acpi_disabled = 1; disable_acpi();
return error; return error;
} }
...@@ -680,7 +680,7 @@ acpi_boot_init (void) ...@@ -680,7 +680,7 @@ acpi_boot_init (void)
error = acpi_blacklisted(); error = acpi_blacklisted();
if (error) { if (error) {
printk(KERN_WARNING PREFIX "BIOS listed in blacklist, disabling ACPI support\n"); printk(KERN_WARNING PREFIX "BIOS listed in blacklist, disabling ACPI support\n");
acpi_disabled = 1; disable_acpi();
return error; return error;
} }
......
...@@ -523,13 +523,13 @@ static __init int print_if_true(struct dmi_blacklist *d) ...@@ -523,13 +523,13 @@ static __init int print_if_true(struct dmi_blacklist *d)
#ifdef CONFIG_ACPI_BOOT #ifdef CONFIG_ACPI_BOOT
extern int acpi_disabled, acpi_force; extern int acpi_force;
static __init __attribute__((unused)) int acpi_disable(struct dmi_blacklist *d) static __init __attribute__((unused)) int dmi_disable_acpi(struct dmi_blacklist *d)
{ {
if (!acpi_force) { if (!acpi_force) {
printk(KERN_NOTICE "%s detected: acpi off\n",d->ident); printk(KERN_NOTICE "%s detected: acpi off\n",d->ident);
acpi_disabled = 1; disable_acpi();
} else { } else {
printk(KERN_NOTICE printk(KERN_NOTICE
"Warning: DMI blacklist says broken, but acpi forced\n"); "Warning: DMI blacklist says broken, but acpi forced\n");
...@@ -537,8 +537,6 @@ static __init __attribute__((unused)) int acpi_disable(struct dmi_blacklist *d) ...@@ -537,8 +537,6 @@ static __init __attribute__((unused)) int acpi_disable(struct dmi_blacklist *d)
return 0; return 0;
} }
extern int acpi_ht;
/* /*
* Limit ACPI to CPU enumeration for HT * Limit ACPI to CPU enumeration for HT
*/ */
...@@ -546,7 +544,7 @@ static __init __attribute__((unused)) int force_acpi_ht(struct dmi_blacklist *d) ...@@ -546,7 +544,7 @@ static __init __attribute__((unused)) int force_acpi_ht(struct dmi_blacklist *d)
{ {
if (!acpi_force) { if (!acpi_force) {
printk(KERN_NOTICE "%s detected: force use of acpi=ht\n", d->ident); printk(KERN_NOTICE "%s detected: force use of acpi=ht\n", d->ident);
acpi_disabled = 1; disable_acpi();
acpi_ht = 1; acpi_ht = 1;
} else { } else {
printk(KERN_NOTICE printk(KERN_NOTICE
...@@ -933,7 +931,7 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={ ...@@ -933,7 +931,7 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={
* Boxes that need ACPI disabled * Boxes that need ACPI disabled
*/ */
{ acpi_disable, "IBM Thinkpad", { { dmi_disable_acpi, "IBM Thinkpad", {
MATCH(DMI_BOARD_VENDOR, "IBM"), MATCH(DMI_BOARD_VENDOR, "IBM"),
MATCH(DMI_BOARD_NAME, "2629H1G"), MATCH(DMI_BOARD_NAME, "2629H1G"),
NO_MATCH, NO_MATCH }}, NO_MATCH, NO_MATCH }},
...@@ -1063,8 +1061,7 @@ static __init void dmi_check_blacklist(void) ...@@ -1063,8 +1061,7 @@ static __init void dmi_check_blacklist(void)
if (disable && !acpi_force) { if (disable && !acpi_force) {
printk(KERN_NOTICE "ACPI disabled because your bios is from %s and too old\n", s); printk(KERN_NOTICE "ACPI disabled because your bios is from %s and too old\n", s);
printk(KERN_NOTICE "You can enable it with acpi=force\n"); printk(KERN_NOTICE "You can enable it with acpi=force\n");
acpi_disabled = 1; disable_acpi();
acpi_ht = 0;
} }
} }
} }
......
...@@ -78,7 +78,6 @@ EXPORT_SYMBOL_GPL(mmu_cr4_features); ...@@ -78,7 +78,6 @@ EXPORT_SYMBOL_GPL(mmu_cr4_features);
EXPORT_SYMBOL(acpi_disabled); EXPORT_SYMBOL(acpi_disabled);
#ifdef CONFIG_ACPI_BOOT #ifdef CONFIG_ACPI_BOOT
extern int __initdata acpi_ht;
int __initdata acpi_force = 0; int __initdata acpi_force = 0;
#endif #endif
...@@ -570,14 +569,13 @@ static void __init parse_cmdline_early (char ** cmdline_p) ...@@ -570,14 +569,13 @@ static void __init parse_cmdline_early (char ** cmdline_p)
#ifdef CONFIG_ACPI_BOOT #ifdef CONFIG_ACPI_BOOT
/* "acpi=off" disables both ACPI table parsing and interpreter */ /* "acpi=off" disables both ACPI table parsing and interpreter */
else if (!memcmp(from, "acpi=off", 8)) { else if (!memcmp(from, "acpi=off", 8)) {
acpi_ht = 0; disable_acpi();
acpi_disabled = 1;
} }
/* acpi=force to over-ride black-list */ /* acpi=force to over-ride black-list */
else if (!memcmp(from, "acpi=force", 10)) { else if (!memcmp(from, "acpi=force", 10)) {
acpi_force = 1; acpi_force = 1;
acpi_ht=1; acpi_ht = 1;
acpi_disabled = 0; acpi_disabled = 0;
} }
...@@ -588,8 +586,9 @@ static void __init parse_cmdline_early (char ** cmdline_p) ...@@ -588,8 +586,9 @@ static void __init parse_cmdline_early (char ** cmdline_p)
/* 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)) {
if (!acpi_force)
disable_acpi();
acpi_ht = 1; acpi_ht = 1;
if (!acpi_force) acpi_disabled = 1;
} }
/* "pci=noacpi" disables ACPI interrupt routing */ /* "pci=noacpi" disables ACPI interrupt routing */
......
...@@ -62,8 +62,6 @@ void (*pm_power_off) (void); ...@@ -62,8 +62,6 @@ void (*pm_power_off) (void);
unsigned char acpi_kbd_controller_present = 1; unsigned char acpi_kbd_controller_present = 1;
unsigned char acpi_legacy_devices; unsigned char acpi_legacy_devices;
int acpi_disabled; /* XXX this shouldn't be needed---we can't boot without ACPI! */
const char * const char *
acpi_get_sysname (void) acpi_get_sysname (void)
{ {
......
...@@ -704,29 +704,14 @@ static int __init acpi_init (void) ...@@ -704,29 +704,14 @@ static int __init acpi_init (void)
pm_active = 1; pm_active = 1;
else { else {
printk(KERN_INFO PREFIX "APM is already active, exiting\n"); printk(KERN_INFO PREFIX "APM is already active, exiting\n");
acpi_disabled = 1; disable_acpi();
result = -ENODEV; result = -ENODEV;
} }
#endif #endif
} else } else
acpi_disabled = 1; disable_acpi();
return_VALUE(result); return_VALUE(result);
} }
static int __init acpi_setup(char *str)
{
while (str && *str) {
if (strncmp(str, "off", 3) == 0)
acpi_disabled = 1;
str = strchr(str, ',');
if (str)
str += strspn(str, ", \t");
}
return 1;
}
subsys_initcall(acpi_init); subsys_initcall(acpi_init);
__setup("acpi=", acpi_setup);
...@@ -396,7 +396,6 @@ struct sonypi_device { ...@@ -396,7 +396,6 @@ struct sonypi_device {
} }
#ifdef CONFIG_ACPI #ifdef CONFIG_ACPI
extern int acpi_disabled;
#define SONYPI_ACPI_ACTIVE (!acpi_disabled) #define SONYPI_ACPI_ACTIVE (!acpi_disabled)
#else #else
#define SONYPI_ACPI_ACTIVE 0 #define SONYPI_ACPI_ACTIVE 0
......
...@@ -32,8 +32,6 @@ ...@@ -32,8 +32,6 @@
#define PREFIX "ACPI: " #define PREFIX "ACPI: "
extern int acpi_disabled;
/* TBD: Make dynamic */ /* TBD: Make dynamic */
#define ACPI_MAX_HANDLES 10 #define ACPI_MAX_HANDLES 10
struct acpi_handle_list { struct acpi_handle_list {
......
...@@ -116,6 +116,9 @@ extern int acpi_lapic; ...@@ -116,6 +116,9 @@ extern int acpi_lapic;
extern int acpi_ioapic; extern int acpi_ioapic;
extern int acpi_noirq; extern int acpi_noirq;
extern int acpi_strict; extern int acpi_strict;
extern int acpi_disabled;
extern int acpi_ht;
static inline void disable_acpi(void) { acpi_disabled = 1; acpi_ht = 0; }
/* 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
......
...@@ -88,7 +88,9 @@ ia64_acpi_release_global_lock (unsigned int *lock) ...@@ -88,7 +88,9 @@ 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_disabled 0 /* ACPI always enabled on IA64 */
#define acpi_strict 1 /* no ACPI spec workarounds on IA64 */ #define acpi_strict 1 /* no ACPI spec workarounds on IA64 */
static inline void disable_acpi(void) { }
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);
......
...@@ -105,6 +105,9 @@ extern int acpi_lapic; ...@@ -105,6 +105,9 @@ extern int acpi_lapic;
extern int acpi_ioapic; extern int acpi_ioapic;
extern int acpi_noirq; extern int acpi_noirq;
extern int acpi_strict; extern int acpi_strict;
extern int acpi_disabled;
extern int acpi_ht;
static inline void disable_acpi(void) { acpi_disabled = 1; acpi_ht = 0; }
/* 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