Re: [PATCH] ACPI / button: Avoid using broken _LID on Surface tablet

From: Bastien Nocera
Date: Mon Mar 07 2016 - 11:22:58 EST


On Fri, 2016-03-04 at 03:37 +0000, Zheng, Lv wrote:
<snip>
>
> > I'm not happy about the "fix" for this problem either, but blaming
> > user-space for this is harsh, given the API exported by the kernel
> > and
> > how pretty much every laptop worked.
> >
> [Lv Zheng]Â
> It worked for so many years on top of traditional x86 laptops where
> the LID open event is handled by the BIOS to trigger a wake GPE.
> Now we are talking about runtime idle systems where resuming from the
> s2idle invokes no BIOS code.
> The new case is still working on Windows.
> Which forces us to re-consider the kernel API of the ACPI LID.

The current kernel API works on 99% of machines up until now, user-
space could not have been expected to know that the Lid status might be
incorrect on some machines, it had no way to know that, there was no
documentation saying "don't use the Lid status outside of Lid status
change events".

We either need to extend the current API to export the fact that we
should ignore the LID status outside of events, or we need a new API.

(We could fix this without any kernel changes, but we really need the
kernel to document that fact, and export it to user-space)

This is something you should have said at the start of the mail,
instead of repeatedly saying that user-space was broken. User-space
behaviour hasn't changed there for more than 10 years, and I'm fairly
certain it's worked the same way as APM (on x86) and PMU (on Mac PPC
machines) did.

Cheers