aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/button.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/button.c')
-rw-r--r--drivers/acpi/button.c9
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
62ACPI_MODULE_NAME("button"); 63ACPI_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: