Reproduced this on Dell Latitude (same PNP0C0D lid switch generation).

The mechanics here:
When you read /proc, the kernel directly queries the ACPI _LID control method, 
and the EC happily reports "closed". 
However, /dev/input and systemd-logind wait for an actual hardware interrupt 
(ACPI Notify 0x80) from the EC. And Dell's firmware from this generation simply 
ghosts the kernel and never fires that notify on lid closure. 

In kernel 7.0, cleanup in the ACPI event dispatch path dropped the
legacy state fallback, leaving these Dells waiting for an interrupt that
never arrives.

Workaround for you today:
Boot with this parameter in GRUB:
button.lid_init_state=method

Permanent fix for the Ubuntu kernel:
This machine should be added to the DMI quirk table in drivers/acpi/button.c so 
the kernel initializes it in method mode automatically:

--- a/drivers/acpi/button.c
+++ b/drivers/acpi/button.c
@@ -102,6 +102,14 @@ static const struct dmi_system_id dmi_lid_quirks[] = {
                },
                .driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
        },
+       {
+               .callback = dmi_lid_quirks,
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 5558"),
+               },
+               .driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_METHOD,
+       },
        {}
 };

Tagged as Triaged / confirmed on hardware.


** Changed in: linux (Ubuntu)
       Status: New => Confirmed

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2166592

Title:
  Lid switch stopped working under kernel 7.0.x — laptop never suspends
  on lid close

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2166592/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to