ACPI / button: Remove lid_init_state=method mode
The mode is buggy, and lid_init__state=open is more useful than this mode, so this patch makes it deprecated. Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
77e9a4aa9d
commit
ecb10b694b
|
@ -59,28 +59,20 @@ button driver uses the following 3 modes in order not to trigger issues.
|
||||||
If the userspace hasn't been prepared to ignore the unreliable "opened"
|
If the userspace hasn't been prepared to ignore the unreliable "opened"
|
||||||
events and the unreliable initial state notification, Linux users can use
|
events and the unreliable initial state notification, Linux users can use
|
||||||
the following kernel parameters to handle the possible issues:
|
the following kernel parameters to handle the possible issues:
|
||||||
A. button.lid_init_state=method:
|
A. button.lid_init_state=open:
|
||||||
When this option is specified, the ACPI button driver reports the
|
|
||||||
initial lid state using the returning value of the _LID control method
|
|
||||||
and whether the "opened"/"closed" events are paired fully relies on the
|
|
||||||
firmware implementation.
|
|
||||||
This option can be used to fix some platforms where the returning value
|
|
||||||
of the _LID control method is reliable but the initial lid state
|
|
||||||
notification is missing.
|
|
||||||
This option is the default behavior during the period the userspace
|
|
||||||
isn't ready to handle the buggy AML tables.
|
|
||||||
B. button.lid_init_state=open:
|
|
||||||
When this option is specified, the ACPI button driver always reports the
|
When this option is specified, the ACPI button driver always reports the
|
||||||
initial lid state as "opened" and whether the "opened"/"closed" events
|
initial lid state as "opened" and whether the "opened"/"closed" events
|
||||||
are paired fully relies on the firmware implementation.
|
are paired fully relies on the firmware implementation.
|
||||||
This may fix some platforms where the returning value of the _LID
|
This may fix some platforms where the returning value of the _LID
|
||||||
control method is not reliable and the initial lid state notification is
|
control method is not reliable and the initial lid state notification is
|
||||||
missing.
|
missing.
|
||||||
|
This option is the default behavior during the period the userspace
|
||||||
|
isn't ready to handle the buggy AML tables.
|
||||||
|
|
||||||
If the userspace has been prepared to ignore the unreliable "opened" events
|
If the userspace has been prepared to ignore the unreliable "opened" events
|
||||||
and the unreliable initial state notification, Linux users should always
|
and the unreliable initial state notification, Linux users should always
|
||||||
use the following kernel parameter:
|
use the following kernel parameter:
|
||||||
C. button.lid_init_state=ignore:
|
B. button.lid_init_state=ignore:
|
||||||
When this option is specified, the ACPI button driver never reports the
|
When this option is specified, the ACPI button driver never reports the
|
||||||
initial lid state and there is a compensation mechanism implemented to
|
initial lid state and there is a compensation mechanism implemented to
|
||||||
ensure that the reliable "closed" notifications can always be delievered
|
ensure that the reliable "closed" notifications can always be delievered
|
||||||
|
|
|
@ -57,7 +57,6 @@
|
||||||
|
|
||||||
#define ACPI_BUTTON_LID_INIT_IGNORE 0x00
|
#define ACPI_BUTTON_LID_INIT_IGNORE 0x00
|
||||||
#define ACPI_BUTTON_LID_INIT_OPEN 0x01
|
#define ACPI_BUTTON_LID_INIT_OPEN 0x01
|
||||||
#define ACPI_BUTTON_LID_INIT_METHOD 0x02
|
|
||||||
|
|
||||||
#define _COMPONENT ACPI_BUTTON_COMPONENT
|
#define _COMPONENT ACPI_BUTTON_COMPONENT
|
||||||
ACPI_MODULE_NAME("button");
|
ACPI_MODULE_NAME("button");
|
||||||
|
@ -377,9 +376,6 @@ static void acpi_lid_initialize_state(struct acpi_device *device)
|
||||||
case ACPI_BUTTON_LID_INIT_OPEN:
|
case ACPI_BUTTON_LID_INIT_OPEN:
|
||||||
(void)acpi_lid_notify_state(device, 1);
|
(void)acpi_lid_notify_state(device, 1);
|
||||||
break;
|
break;
|
||||||
case ACPI_BUTTON_LID_INIT_METHOD:
|
|
||||||
(void)acpi_lid_update_state(device);
|
|
||||||
break;
|
|
||||||
case ACPI_BUTTON_LID_INIT_IGNORE:
|
case ACPI_BUTTON_LID_INIT_IGNORE:
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -563,9 +559,6 @@ static int param_set_lid_init_state(const char *val, struct kernel_param *kp)
|
||||||
if (!strncmp(val, "open", sizeof("open") - 1)) {
|
if (!strncmp(val, "open", sizeof("open") - 1)) {
|
||||||
lid_init_state = ACPI_BUTTON_LID_INIT_OPEN;
|
lid_init_state = ACPI_BUTTON_LID_INIT_OPEN;
|
||||||
pr_info("Notify initial lid state as open\n");
|
pr_info("Notify initial lid state as open\n");
|
||||||
} else if (!strncmp(val, "method", sizeof("method") - 1)) {
|
|
||||||
lid_init_state = ACPI_BUTTON_LID_INIT_METHOD;
|
|
||||||
pr_info("Notify initial lid state with _LID return value\n");
|
|
||||||
} else if (!strncmp(val, "ignore", sizeof("ignore") - 1)) {
|
} else if (!strncmp(val, "ignore", sizeof("ignore") - 1)) {
|
||||||
lid_init_state = ACPI_BUTTON_LID_INIT_IGNORE;
|
lid_init_state = ACPI_BUTTON_LID_INIT_IGNORE;
|
||||||
pr_info("Do not notify initial lid state\n");
|
pr_info("Do not notify initial lid state\n");
|
||||||
|
@ -579,8 +572,6 @@ static int param_get_lid_init_state(char *buffer, struct kernel_param *kp)
|
||||||
switch (lid_init_state) {
|
switch (lid_init_state) {
|
||||||
case ACPI_BUTTON_LID_INIT_OPEN:
|
case ACPI_BUTTON_LID_INIT_OPEN:
|
||||||
return sprintf(buffer, "open");
|
return sprintf(buffer, "open");
|
||||||
case ACPI_BUTTON_LID_INIT_METHOD:
|
|
||||||
return sprintf(buffer, "method");
|
|
||||||
case ACPI_BUTTON_LID_INIT_IGNORE:
|
case ACPI_BUTTON_LID_INIT_IGNORE:
|
||||||
return sprintf(buffer, "ignore");
|
return sprintf(buffer, "ignore");
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in New Issue