From: Lv Zheng <lv.zheng@intel.com> To: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Len Brown <len.brown@intel.com> Cc: Lv Zheng <lv.zheng@intel.com>, Lv Zheng <zetalog@gmail.com>, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org Subject: [PATCH v2 1/3] ACPI / button: Remove initial lid state notification Date: Fri, 27 May 2016 15:15:53 +0800 [thread overview] Message-ID: <8fac04a50e5853590b157a617ea9fddaa697db53.1464332745.git.lv.zheng@intel.com> (raw) In-Reply-To: <cover.1464332745.git.lv.zheng@intel.com> The _LID control method's initial returning value is not reliable. The _LID control method is described to return the "current" lid state. However the word of "current" has ambiguity, many BIOSen return the lid state upon the last lid notification instead of returning the lid state upon the last _LID evaluation. There won't be difference when the _LID control method is evaluated during the runtime, the problem is its initial returning value. When the BIOSen implement this control method with cached value, the initial returning value is likely not reliable. There are simply so many examples retuning "close" as initial lid state (Link 1), sending this state to the userspace causes suspending right after booting/resuming. Since the lid state is implemented by the BIOSen, the kernel lid driver has no idea how it can be correct, this patch stops sending the initial lid state to the userspace to try to avoid sending the wrong lid state to the userspace to trigger such kind of wrong suspending. This actually reverts the following commit introduced for fixing a novell bug (Link 2): Commit: 23de5d9ef2a4bbc4f733f58311bcb7cf6239c813 Subject: ACPI: button: send initial lid state after add and resume Link 1: https://bugzilla.kernel.org/show_bug.cgi?id=89211 https://bugzilla.kernel.org/show_bug.cgi?id=106151 https://bugzilla.kernel.org/show_bug.cgi?id=106941 Link 2: https://bugzilla.novell.com/show_bug.cgi?id=326814 Signed-off-by: Lv Zheng <lv.zheng@intel.com> --- drivers/acpi/button.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c index 5c3b091..9863278 100644 --- a/drivers/acpi/button.c +++ b/drivers/acpi/button.c @@ -334,8 +334,6 @@ static int acpi_button_resume(struct device *dev) struct acpi_button *button = acpi_driver_data(device); button->suspended = false; - if (button->type == ACPI_BUTTON_TYPE_LID) - return acpi_lid_send_state(device); return 0; } #endif @@ -416,7 +414,6 @@ static int acpi_button_add(struct acpi_device *device) if (error) goto err_remove_fs; if (button->type == ACPI_BUTTON_TYPE_LID) { - acpi_lid_send_state(device); /* * This assumes there's only one lid device, or if there are * more we only care about the last one... -- 1.7.10
WARNING: multiple messages have this Message-ID (diff)
From: Lv Zheng <lv.zheng@intel.com> To: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Len Brown <len.brown@intel.com> Cc: Lv Zheng <lv.zheng@intel.com>, Lv Zheng <zetalog@gmail.com>, <linux-kernel@vger.kernel.org>, linux-acpi@vger.kernel.org Subject: [PATCH v2 1/3] ACPI / button: Remove initial lid state notification Date: Fri, 27 May 2016 15:15:53 +0800 [thread overview] Message-ID: <8fac04a50e5853590b157a617ea9fddaa697db53.1464332745.git.lv.zheng@intel.com> (raw) In-Reply-To: <cover.1464332745.git.lv.zheng@intel.com> The _LID control method's initial returning value is not reliable. The _LID control method is described to return the "current" lid state. However the word of "current" has ambiguity, many BIOSen return the lid state upon the last lid notification instead of returning the lid state upon the last _LID evaluation. There won't be difference when the _LID control method is evaluated during the runtime, the problem is its initial returning value. When the BIOSen implement this control method with cached value, the initial returning value is likely not reliable. There are simply so many examples retuning "close" as initial lid state (Link 1), sending this state to the userspace causes suspending right after booting/resuming. Since the lid state is implemented by the BIOSen, the kernel lid driver has no idea how it can be correct, this patch stops sending the initial lid state to the userspace to try to avoid sending the wrong lid state to the userspace to trigger such kind of wrong suspending. This actually reverts the following commit introduced for fixing a novell bug (Link 2): Commit: 23de5d9ef2a4bbc4f733f58311bcb7cf6239c813 Subject: ACPI: button: send initial lid state after add and resume Link 1: https://bugzilla.kernel.org/show_bug.cgi?id=89211 https://bugzilla.kernel.org/show_bug.cgi?id=106151 https://bugzilla.kernel.org/show_bug.cgi?id=106941 Link 2: https://bugzilla.novell.com/show_bug.cgi?id=326814 Signed-off-by: Lv Zheng <lv.zheng@intel.com> --- drivers/acpi/button.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c index 5c3b091..9863278 100644 --- a/drivers/acpi/button.c +++ b/drivers/acpi/button.c @@ -334,8 +334,6 @@ static int acpi_button_resume(struct device *dev) struct acpi_button *button = acpi_driver_data(device); button->suspended = false; - if (button->type == ACPI_BUTTON_TYPE_LID) - return acpi_lid_send_state(device); return 0; } #endif @@ -416,7 +414,6 @@ static int acpi_button_add(struct acpi_device *device) if (error) goto err_remove_fs; if (button->type == ACPI_BUTTON_TYPE_LID) { - acpi_lid_send_state(device); /* * This assumes there's only one lid device, or if there are * more we only care about the last one... -- 1.7.10
next prev parent reply other threads:[~2016-05-27 7:15 UTC|newest] Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-05-17 8:27 [RFC PATCH 1/2] ACPI / button: Send "open" state after boot/resume Lv Zheng 2016-05-17 8:27 ` Lv Zheng 2016-05-17 23:36 ` Rafael J. Wysocki 2016-05-18 1:25 ` Zheng, Lv 2016-05-18 22:56 ` Rafael J. Wysocki 2016-05-19 1:50 ` Zheng, Lv 2016-05-19 13:21 ` Rafael J. Wysocki 2016-05-26 13:31 ` Benjamin Tissoires 2016-05-30 1:39 ` Zheng, Lv 2016-05-18 12:57 ` Bastien Nocera 2016-05-18 21:41 ` Rafael J. Wysocki 2016-05-19 1:59 ` Zheng, Lv 2016-05-27 7:15 ` [PATCH v2 0/3] ACPI / button: Clarify initial lid state Lv Zheng 2016-05-27 7:15 ` Lv Zheng 2016-05-27 7:15 ` Lv Zheng [this message] 2016-05-27 7:15 ` [PATCH v2 1/3] ACPI / button: Remove initial lid state notification Lv Zheng 2016-05-27 7:15 ` [PATCH v2 2/3] ACPI / button: Refactor functions to eliminate redundant code Lv Zheng 2016-05-27 7:15 ` Lv Zheng 2016-05-27 7:16 ` [PATCH v2 3/3] ACPI / button: Send "open" state after boot/resume Lv Zheng 2016-05-27 7:16 ` Lv Zheng 2016-05-30 8:10 ` Benjamin Tissoires 2016-05-31 2:55 ` Zheng, Lv 2016-05-31 14:47 ` Benjamin Tissoires 2016-06-01 1:17 ` Zheng, Lv 2016-06-01 7:51 ` Zheng, Lv 2016-06-01 8:07 ` Benjamin Tissoires 2016-05-27 22:10 ` [PATCH v2 0/3] ACPI / button: Clarify initial lid state Valdis.Kletnieks 2016-06-01 10:10 ` [PATCH v3 1/3] ACPI / button: Remove initial lid state notification Lv Zheng 2016-06-01 10:10 ` Lv Zheng 2016-06-23 0:36 ` Rafael J. Wysocki 2016-06-23 0:57 ` Zheng, Lv 2016-06-01 10:10 ` [PATCH v3 2/3] ACPI / button: Refactor functions to eliminate redundant code Lv Zheng 2016-06-01 10:10 ` Lv Zheng 2016-06-01 10:10 ` [PATCH v3 3/3] ACPI / button: Add quirks for initial lid state notification Lv Zheng 2016-06-01 10:10 ` Lv Zheng 2016-06-01 11:01 ` Bastien Nocera 2016-06-01 11:01 ` Bastien Nocera 2016-06-02 1:08 ` Zheng, Lv 2016-06-02 14:01 ` Bastien Nocera 2016-06-02 15:25 ` Benjamin Tissoires 2016-06-03 0:41 ` Zheng, Lv 2016-07-19 8:11 ` [PATCH v4 1/2] ACPI / button: Add KEY_LID_OPEN/KEY_LID_CLOSE for new usage model Lv Zheng 2016-07-19 8:11 ` Lv Zheng 2016-07-19 8:46 ` Benjamin Tissoires 2016-07-21 13:35 ` Rafael J. Wysocki 2016-07-21 20:33 ` Dmitry Torokhov 2016-07-19 8:11 ` [PATCH v4 2/2] ACPI / button: Add document for ACPI control method lid device restrictions Lv Zheng 2016-07-19 8:11 ` Lv Zheng 2016-07-19 8:44 ` Benjamin Tissoires 2016-07-21 20:32 ` Dmitry Torokhov 2016-07-22 0:24 ` Zheng, Lv 2016-07-22 4:37 ` Dmitry Torokhov 2016-07-22 6:55 ` Benjamin Tissoires 2016-07-22 8:47 ` Zheng, Lv 2016-07-22 9:08 ` Benjamin Tissoires 2016-07-22 9:38 ` Zheng, Lv 2016-07-24 11:28 ` Bastien Nocera 2016-07-25 0:38 ` Zheng, Lv 2016-07-22 17:02 ` Dmitry Torokhov 2016-07-23 12:17 ` Zheng, Lv 2016-07-22 8:37 ` Zheng, Lv 2016-07-22 17:22 ` Dmitry Torokhov 2016-07-23 11:57 ` Zheng, Lv 2016-07-22 6:24 ` [PATCH v5 1/3] ACPI / button: Add missing event to keep SW_LID running without additional event loss Lv Zheng 2016-07-22 6:24 ` Lv Zheng 2016-07-22 10:26 ` Zheng, Lv 2016-07-23 12:37 ` Rafael J. Wysocki 2016-07-25 0:24 ` Zheng, Lv 2016-07-22 6:24 ` [PATCH v5 2/3] ACPI / button: Add KEY_LID_OPEN/KEY_LID_CLOSE for new usage model Lv Zheng 2016-07-22 6:24 ` Lv Zheng 2016-07-22 6:24 ` [PATCH v5 3/3] ACPI / button: Add document for ACPI control method lid device restrictions Lv Zheng 2016-07-22 6:24 ` Lv Zheng 2016-07-25 1:14 ` [PATCH v6] ACPI / button: Fix an issue that the platform triggered "close" event may not be delivered to the userspace Lv Zheng 2016-07-25 1:14 ` Lv Zheng 2016-07-26 9:52 ` [PATCH v7 1/2] ACPI / button: Fix an issue that the platform triggered reliable events " Lv Zheng 2016-07-26 9:52 ` Lv Zheng 2016-08-17 0:19 ` Rafael J. Wysocki 2016-08-17 4:45 ` Zheng, Lv 2016-07-26 9:52 ` [PATCH v7 2/2] ACPI / button: Add document for ACPI control method lid device restrictions Lv Zheng 2016-07-26 9:52 ` Lv Zheng 2016-08-17 8:22 ` [PATCH v8 1/2] ACPI / button: Fix an issue in button.lid_init_state=ignore mode Lv Zheng 2016-08-17 8:22 ` Lv Zheng 2016-09-12 22:10 ` Rafael J. Wysocki 2016-08-17 8:23 ` [PATCH v8 2/2] ACPI / button: Add document for ACPI control method lid device restrictions Lv Zheng 2016-08-17 8:23 ` Lv Zheng
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=8fac04a50e5853590b157a617ea9fddaa697db53.1464332745.git.lv.zheng@intel.com \ --to=lv.zheng@intel.com \ --cc=len.brown@intel.com \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=rafael.j.wysocki@intel.com \ --cc=rjw@rjwysocki.net \ --cc=zetalog@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.