forked from Minki/linux
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:
parent
5dc17986fd
commit
741d81280a
@ -237,6 +237,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||||||
acpi_osi= [HW,ACPI] Modify list of supported OS interface strings
|
acpi_osi= [HW,ACPI] Modify list of supported OS interface strings
|
||||||
acpi_osi="string1" # add string1
|
acpi_osi="string1" # add string1
|
||||||
acpi_osi="!string2" # remove string2
|
acpi_osi="!string2" # remove string2
|
||||||
|
acpi_osi=!* # remove all strings
|
||||||
acpi_osi=! # disable all built-in OS vendor
|
acpi_osi=! # disable all built-in OS vendor
|
||||||
strings
|
strings
|
||||||
acpi_osi= # disable all strings
|
acpi_osi= # disable all strings
|
||||||
@ -248,7 +249,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||||||
it cannot affect the default state of the feature group
|
it cannot affect the default state of the feature group
|
||||||
strings and the current state of the OS vendor strings,
|
strings and the current state of the OS vendor strings,
|
||||||
specifying it multiple times through kernel command line
|
specifying it multiple times through kernel command line
|
||||||
is meaningless.
|
is meaningless. This command is useful when one do not
|
||||||
|
care about the state of the feature group strings which
|
||||||
|
should be controlled by the OSPM.
|
||||||
Examples:
|
Examples:
|
||||||
1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalent
|
1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalent
|
||||||
to 'acpi_osi="Windows 2000" acpi_osi=!', they all
|
to 'acpi_osi="Windows 2000" acpi_osi=!', they all
|
||||||
@ -264,6 +267,29 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||||||
1. 'acpi_osi=' can make 'CondRefOf(_OSI, Local1)'
|
1. 'acpi_osi=' can make 'CondRefOf(_OSI, Local1)'
|
||||||
FALSE.
|
FALSE.
|
||||||
|
|
||||||
|
'acpi_osi=!*' can be used in combination with single or
|
||||||
|
multiple 'acpi_osi="string1"' to support specific
|
||||||
|
string(s). Note that such command can affect the
|
||||||
|
current state of both the OS vendor strings and the
|
||||||
|
feature group strings, thus specifying it multiple times
|
||||||
|
through kernel command line is meaningful. But it may
|
||||||
|
still not able to affect the final state of a string if
|
||||||
|
there are quirks related to this string. This command
|
||||||
|
is useful when one want to control the state of the
|
||||||
|
feature group strings to debug BIOS issues related to
|
||||||
|
the OSPM features.
|
||||||
|
Examples:
|
||||||
|
1. 'acpi_osi="Module Device" acpi_osi=!*' can make
|
||||||
|
'_OSI("Module Device")' FALSE.
|
||||||
|
2. 'acpi_osi=!* acpi_osi="Module Device"' can make
|
||||||
|
'_OSI("Module Device")' TRUE.
|
||||||
|
3. 'acpi_osi=! acpi_osi=!* acpi_osi="Windows 2000"' is
|
||||||
|
equivalent to
|
||||||
|
'acpi_osi=!* acpi_osi=! acpi_osi="Windows 2000"'
|
||||||
|
and
|
||||||
|
'acpi_osi=!* acpi_osi="Windows 2000" acpi_osi=!',
|
||||||
|
they all will make '_OSI("Windows 2000")' TRUE.
|
||||||
|
|
||||||
acpi_pm_good [X86]
|
acpi_pm_good [X86]
|
||||||
Override the pmtimer bug detection: force the kernel
|
Override the pmtimer bug detection: force the kernel
|
||||||
to assume that this machine's pmtimer latches its value
|
to assume that this machine's pmtimer latches its value
|
||||||
|
@ -1380,6 +1380,13 @@ void __init acpi_osi_setup(char *str)
|
|||||||
if (*str == '\0') {
|
if (*str == '\0') {
|
||||||
osi_linux.default_disabling = 1;
|
osi_linux.default_disabling = 1;
|
||||||
return;
|
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;
|
enable = false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user