diff options
author | Len Brown <len.brown@intel.com> | 2007-05-29 18:43:33 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-05-29 18:43:33 -0400 |
commit | ae00d812436dc968f4a5dea7757b6a94910b6dc4 (patch) | |
tree | 6acd68850bead001cc74597369307a82bc711f6e /drivers/acpi/utilities | |
parent | c420bc9f09a0926b708c3edb27eacba434a4f4ba (diff) |
ACPI: extend "acpi_osi=" boot option
The boot option "acpi_osi=" has always disabled Linux _OSI support,
thus disabling all OS Interface strings which are advertised
by Linux to the BIOS.
Now...
acpi_osi="string" adds the interface string, and
acpi_osi="!string" invalidates the pre-defined interface string
eg. acpi_osi="!Windows 2006"
would disable Linux's claim of Vista compatibility.
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/utilities')
-rw-r--r-- | drivers/acpi/utilities/uteval.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/drivers/acpi/utilities/uteval.c b/drivers/acpi/utilities/uteval.c index 13d5879cd98b..a10120ad6982 100644 --- a/drivers/acpi/utilities/uteval.c +++ b/drivers/acpi/utilities/uteval.c | |||
@@ -59,7 +59,7 @@ acpi_ut_translate_one_cid(union acpi_operand_object *obj_desc, | |||
59 | /* | 59 | /* |
60 | * Strings supported by the _OSI predefined (internal) method. | 60 | * Strings supported by the _OSI predefined (internal) method. |
61 | */ | 61 | */ |
62 | static const char *acpi_interfaces_supported[] = { | 62 | static char *acpi_interfaces_supported[] = { |
63 | /* Operating System Vendor Strings */ | 63 | /* Operating System Vendor Strings */ |
64 | 64 | ||
65 | "Linux", | 65 | "Linux", |
@@ -158,6 +158,31 @@ acpi_status acpi_ut_osi_implementation(struct acpi_walk_state *walk_state) | |||
158 | 158 | ||
159 | /******************************************************************************* | 159 | /******************************************************************************* |
160 | * | 160 | * |
161 | * FUNCTION: acpi_osi_invalidate | ||
162 | * | ||
163 | * PARAMETERS: interface_string | ||
164 | * | ||
165 | * RETURN: Status | ||
166 | * | ||
167 | * DESCRIPTION: invalidate string in pre-defiend _OSI string list | ||
168 | * | ||
169 | ******************************************************************************/ | ||
170 | |||
171 | acpi_status acpi_osi_invalidate(char *interface) | ||
172 | { | ||
173 | int i; | ||
174 | |||
175 | for (i = 0; i < ACPI_ARRAY_LENGTH(acpi_interfaces_supported); i++) { | ||
176 | if (!ACPI_STRCMP(interface, acpi_interfaces_supported[i])) { | ||
177 | *acpi_interfaces_supported[i] = '\0'; | ||
178 | return AE_OK; | ||
179 | } | ||
180 | } | ||
181 | return AE_NOT_FOUND; | ||
182 | } | ||
183 | |||
184 | /******************************************************************************* | ||
185 | * | ||
161 | * FUNCTION: acpi_ut_evaluate_object | 186 | * FUNCTION: acpi_ut_evaluate_object |
162 | * | 187 | * |
163 | * PARAMETERS: prefix_node - Starting node | 188 | * PARAMETERS: prefix_node - Starting node |