diff options
Diffstat (limited to 'drivers/acpi/button.c')
-rw-r--r-- | drivers/acpi/button.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c index b7c2a06963d6..25aba9b107dd 100644 --- a/drivers/acpi/button.c +++ b/drivers/acpi/button.c | |||
@@ -57,6 +57,7 @@ | |||
57 | 57 | ||
58 | #define ACPI_BUTTON_LID_INIT_IGNORE 0x00 | 58 | #define ACPI_BUTTON_LID_INIT_IGNORE 0x00 |
59 | #define ACPI_BUTTON_LID_INIT_OPEN 0x01 | 59 | #define ACPI_BUTTON_LID_INIT_OPEN 0x01 |
60 | #define ACPI_BUTTON_LID_INIT_METHOD 0x02 | ||
60 | 61 | ||
61 | #define _COMPONENT ACPI_BUTTON_COMPONENT | 62 | #define _COMPONENT ACPI_BUTTON_COMPONENT |
62 | ACPI_MODULE_NAME("button"); | 63 | ACPI_MODULE_NAME("button"); |
@@ -376,6 +377,9 @@ static void acpi_lid_initialize_state(struct acpi_device *device) | |||
376 | case ACPI_BUTTON_LID_INIT_OPEN: | 377 | case ACPI_BUTTON_LID_INIT_OPEN: |
377 | (void)acpi_lid_notify_state(device, 1); | 378 | (void)acpi_lid_notify_state(device, 1); |
378 | break; | 379 | break; |
380 | case ACPI_BUTTON_LID_INIT_METHOD: | ||
381 | (void)acpi_lid_update_state(device); | ||
382 | break; | ||
379 | case ACPI_BUTTON_LID_INIT_IGNORE: | 383 | case ACPI_BUTTON_LID_INIT_IGNORE: |
380 | default: | 384 | default: |
381 | break; | 385 | break; |
@@ -560,6 +564,9 @@ static int param_set_lid_init_state(const char *val, struct kernel_param *kp) | |||
560 | if (!strncmp(val, "open", sizeof("open") - 1)) { | 564 | if (!strncmp(val, "open", sizeof("open") - 1)) { |
561 | lid_init_state = ACPI_BUTTON_LID_INIT_OPEN; | 565 | lid_init_state = ACPI_BUTTON_LID_INIT_OPEN; |
562 | pr_info("Notify initial lid state as open\n"); | 566 | pr_info("Notify initial lid state as open\n"); |
567 | } else if (!strncmp(val, "method", sizeof("method") - 1)) { | ||
568 | lid_init_state = ACPI_BUTTON_LID_INIT_METHOD; | ||
569 | pr_info("Notify initial lid state with _LID return value\n"); | ||
563 | } else if (!strncmp(val, "ignore", sizeof("ignore") - 1)) { | 570 | } else if (!strncmp(val, "ignore", sizeof("ignore") - 1)) { |
564 | lid_init_state = ACPI_BUTTON_LID_INIT_IGNORE; | 571 | lid_init_state = ACPI_BUTTON_LID_INIT_IGNORE; |
565 | pr_info("Do not notify initial lid state\n"); | 572 | pr_info("Do not notify initial lid state\n"); |
@@ -573,6 +580,8 @@ static int param_get_lid_init_state(char *buffer, struct kernel_param *kp) | |||
573 | switch (lid_init_state) { | 580 | switch (lid_init_state) { |
574 | case ACPI_BUTTON_LID_INIT_OPEN: | 581 | case ACPI_BUTTON_LID_INIT_OPEN: |
575 | return sprintf(buffer, "open"); | 582 | return sprintf(buffer, "open"); |
583 | case ACPI_BUTTON_LID_INIT_METHOD: | ||
584 | return sprintf(buffer, "method"); | ||
576 | case ACPI_BUTTON_LID_INIT_IGNORE: | 585 | case ACPI_BUTTON_LID_INIT_IGNORE: |
577 | return sprintf(buffer, "ignore"); | 586 | return sprintf(buffer, "ignore"); |
578 | default: | 587 | default: |