Skip to content

Surface Pro 9 Business: Suspend/wake up with lid does not work properly #3

@Lucrtz

Description

@Lucrtz

Hi,

I'm using a Surface Pro 9 Business with freshly installed Arch Linux and the linux-surface Kernel set up according to the instructions. So far everything works perfectly, except for the problem that the device only goes into suspend mode once after a reboot when I close the lid. It never wakes up from suspend mode when I open the lid. After it goes into suspend mode once by closing the lid, it doesn't work again.

I also tried messing around with the logind.conf under /etc/systemd/logind.conf by commenting out

HandleLidSwitch=suspend
HandleLidSwitchExternalPower=suspend

which had no effect.

When I investigated the dmesg output, I found the following problem, which led me here:

[    3.868851] surface_gpe: no compatible Microsoft Surface device found, exiting
[    3.990270] surface_serial_hub serial0-0: SAM firmware version: 6.101.139
[   24.600041] surface_serial_hub serial0-0: event: unhandled event (rqid: 0x02, tc: 0x02, tid: 0x01, cid: 0x1a, iid: 0x01)
[   27.542263] surface_serial_hub serial0-0: event: unhandled event (rqid: 0x02, tc: 0x02, tid: 0x01, cid: 0x1a, iid: 0x01)
[  102.812272] surface_serial_hub serial0-0: rx: parser: invalid start of frame, skipping

Then i looked in the surface_gpe.c file and found one entry for the normal Surface Pro 9 which searches for the following SKU number:
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "Surface_Pro_9_2038")

My sudo dmidecode -t system output is:

# dmidecode 3.5
Getting SMBIOS data from sysfs.
SMBIOS 3.3.0 present.

Handle 0x000A, DMI type 1, 27 bytes
System Information
	Manufacturer: Microsoft Corporation
	Product Name: Surface Pro 9
	Version: 124I:00093T:000M:0000000D:0B:11F:1C:04P:01Y:1U:00
	Serial Number: xxxxxxxxxxx
	UUID: ef3657c2-ef21-a3b9-a1a6-467f93525e80
	Wake-up Type: Power Switch
	SKU Number: Surface_Pro_9_for_Business_2038
	Family: Surface

Does the problem occur because of a missing entry for the Business model of the Surface Pro 9 in surface_gpe.c?

Expected behaviour
Surface goes to suspend and wakes up from suspend when closing/opening the lid.

System information
Machine: Microsoft Surface Pro 9 Business
Kernel: 6.6.6-arch1-1-surface
OS: Arch Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions