diff options
author | Alex Shi <alex.shi@linaro.org> | 2016-06-14 17:06:48 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2016-06-14 17:06:48 +0800 |
commit | 1beb6ea36b283c1dc34812c6ef9bf56a1e494f8c (patch) | |
tree | 539dc6f4b8c68f385a6457ef7b9d15570a0a8dcc /drivers/acpi | |
parent | 6c1be3bf831c5b1f2ba51425315287df2c350633 (diff) | |
parent | b5076139991c6b12c62346d9880eec1d4227d99f (diff) |
Merge tag 'v3.18.35' into linux-linaro-lsk-v3.18
This is the 3.18.35 stable release
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/osl.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 838359818228..d23c2006f07c 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c @@ -138,7 +138,7 @@ static struct osi_linux { unsigned int enable:1; unsigned int dmi:1; unsigned int cmdline:1; - unsigned int default_disabling:1; + u8 default_disabling; } osi_linux = {0, 0, 0, 0}; static u32 acpi_osi_handler(acpi_string interface, u32 supported) @@ -1443,10 +1443,13 @@ void __init acpi_osi_setup(char *str) if (*str == '!') { str++; if (*str == '\0') { - osi_linux.default_disabling = 1; + /* Do not override acpi_osi=!* */ + if (!osi_linux.default_disabling) + osi_linux.default_disabling = + ACPI_DISABLE_ALL_VENDOR_STRINGS; return; } else if (*str == '*') { - acpi_update_interfaces(ACPI_DISABLE_ALL_STRINGS); + osi_linux.default_disabling = ACPI_DISABLE_ALL_STRINGS; for (i = 0; i < OSI_STRING_ENTRIES_MAX; i++) { osi = &osi_setup_entries[i]; osi->enable = false; @@ -1519,10 +1522,13 @@ static void __init acpi_osi_setup_late(void) acpi_status status; if (osi_linux.default_disabling) { - status = acpi_update_interfaces(ACPI_DISABLE_ALL_VENDOR_STRINGS); + status = acpi_update_interfaces(osi_linux.default_disabling); if (ACPI_SUCCESS(status)) - printk(KERN_INFO PREFIX "Disabled all _OSI OS vendors\n"); + printk(KERN_INFO PREFIX "Disabled all _OSI OS vendors%s\n", + osi_linux.default_disabling == + ACPI_DISABLE_ALL_STRINGS ? + " and feature groups" : ""); } for (i = 0; i < OSI_STRING_ENTRIES_MAX; i++) { |