Thread (37 messages) 37 messages, 5 authors, 2017-06-22

Re: [WIP PATCH 0/4] Rework the unreliable LID switch exported by ACPI

From: Benjamin Tissoires <hidden>
Date: 2017-06-02 07:24:36
Also in: linux-acpi, lkml

On Jun 01 2017 or thereabouts, Bastien Nocera wrote:
On Thu, 2017-06-01 at 20:46 +0200, Benjamin Tissoires wrote:
quoted
Hi,

Sending this as a WIP as it still need a few changes, but it mostly
works as
expected (still not fully compliant yet).

So this is based on Lennart's comment in [1]: if the LID state is not
reliable,
the kernel should not export the LID switch device as long as we are
not sure
about its state.

That is the basic idea, and here are some more general comments:
Lv described the 5 cases in "RFC PATCH v3" regarding the LID switch.
Let me rewrite them here (they are in patch 2):

1. Some platforms send "open" ACPI notification to the OS and the
event
   arrive before the button driver is resumed;
2. Some platforms send "open" ACPI notification to the OS, but the
event
   arrives after the button driver is resumed, ex., Samsung N210+;
3. Some platforms never send an "open" ACPI notification to the OS,
but
   update the cached _LID return value to "open", and this update
arrives
   before the button driver is resumed;
4. Some platforms never send an "open" ACPI notification to the OS,
but
   update the cached _LID return value to "open", but this update
arrives
   after the button driver is resumed, ex., Surface Pro 3;
5. Some platforms never send an "open" ACPI notification to the OS,
and
   _LID ACPI method returns a value which stays to "close", ex.,
   Surface Pro 1.
In which case does the Surface 3 lie? I believe we still needed your
"gpiolib-acpi: make sure we trigger the events at least once" patch to
make that one work.
Well, the surface 3 is using a different driver for the LID switch
(surface3-wmi). From what I can remember, we don't need this patch when
using this driver (which is why I did not submitted it further). But I
might be wrong...

Cheers,
Benjamin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help