ACPI: Add facility to remove all _OSI strings

This patch changes the "acpi_osi=" boot parameter implementation so
that:
1. "acpi_osi=!" can be used to disable all _OSI OS vendor strings by
   default.  It is meaningless to specify "acpi_osi=!" multiple
   times as it can only affect the default state of the target _OSI
   strings.
2. "acpi_osi=!*" can be used to remove all _OSI OS vendor strings
   and all _OSI feature group strings.  It is useful to specify
   "acpi_osi=!*" multiple times through kernel command line to
   override the current state of the target _OSI strings.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Reviewed-by: Zhang Rui <rui.zhang@intel.com>
Acked-by: Len Brown <len.brown@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Lv Zheng
2013-07-22 16:08:36 +08:00
committed by Rafael J. Wysocki
parent 5dc17986fd
commit 741d81280a
2 changed files with 34 additions and 1 deletions

View File

@@ -1380,6 +1380,13 @@ void __init acpi_osi_setup(char *str)
if (*str == '\0') {
osi_linux.default_disabling = 1;
return;
} else if (*str == '*') {
acpi_update_interfaces(ACPI_DISABLE_ALL_STRINGS);
for (i = 0; i < OSI_STRING_ENTRIES_MAX; i++) {
osi = &osi_setup_entries[i];
osi->enable = false;
}
return;
}
enable = false;
}