From nobody Sun Feb 8 10:30:23 2026 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD40A3A89B1 for ; Wed, 7 Jan 2026 15:40:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767800418; cv=none; b=gl66jPa18TcKF45taVJfod/is9nKI1T0dgEUK6TGEGjbdgDoQADT7jRuVb7c1FcSCzlIURADlhu1FGBPwYKnXovcjz+HmRhsX/OJcWUY/CcukhLDbFMZfW7bAYkJkGnrIgx0znGbCfCo9fKIfUQkOYB3ZHBltZyABr6cvDCM2ts= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767800418; c=relaxed/simple; bh=8NylTbAKkO0l/KF1BMUiE4edWBqzJMxu+bSiJDX+mBI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=W7ah+uiE8wtBCxv838cjx2SVwKXl7uA+299+ib8VV51UVVpAlR+8XLL4lAq6jfGkxkjHhBoTMvZ9/1INonI5PpBJBkovRPy/SDZOCohXj+Hjym5RRoTUvzHi8KMbdyD2U+3DA3lhDP9u+p5juk9eCc24cAe+XuR95Lm5LyLCci0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=darMaO/M; arc=none smtp.client-ip=209.85.221.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="darMaO/M" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-42fb5810d39so1230402f8f.2 for ; Wed, 07 Jan 2026 07:40:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767800415; x=1768405215; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=LnKRy0r9W4pXmpxTnitCMSMrxA5/RNH5gipwHUBu7h0=; b=darMaO/MCfZstB4Jvddnu8pXDEyhn/N7BeHaXifuNlYQDbXVQTngCn9LXbzgizDLQX CU/pEePdUKjA5EwLI7W42AW5SOqxaGcRCHr/vjAedDoYaGAf8bVuNZtpXWjUT18LhUAw wS0pBLSgZm2yBSIBHzndA2JPCcMfjfKBLHrtshLLo9UvqzMTmBmv2siM/sl5e9h42zDP AQRGzZGqXJuNgQEpFtw/eNls/RLVpN/+1H2aiQc/kjLpZZjNsQ0BTeyvY19XZwjZHYXq 0Oxd2j2e5V7HjmV2gqtpbuulx52Pp+SseNud6W0cDlexKNYGUveTQ+Bh4q2jA/fcPuA8 6JNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767800415; x=1768405215; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=LnKRy0r9W4pXmpxTnitCMSMrxA5/RNH5gipwHUBu7h0=; b=jMAvGmgb6f3aDHBNkYZJPpd14JMjrH3IyrWQ7EhdZoHMiKHjK5+XnIHFDT9AmLHtp6 cRyVZi5fiYd6ITdMASGJFKRTxLnwaMarcKmC/xjXshRFTBD0pBRMZ2usv+rPHakLJ7q/ lJoNWh/ePm/0tfSbAjYUJnEXXsqo8p1kxC6bveAgxMrWf3SeTdo3x5LISlT6cv/RF1XQ DxY8zKJzGRQPJZLXM2V25GIlkgTfo7AXGmEL6QJo+DZd4uzb3CO9zALNTnq+IaMBSrhN sb7z+nc0QRDhdJTojw/QRTyFWvZGZkTQBrSkHY9J5rlITzzypvO6kWJTGv5b5astfJNS uTCQ== X-Forwarded-Encrypted: i=1; AJvYcCVRP0zt+/0/QeKDYFZwmdkQsUIjKxu7V4M8p+AoKfuEaDv4nkQGRWDquA50AhnBGSW+PcKCi4M1GmXVgXo=@vger.kernel.org X-Gm-Message-State: AOJu0YxFi302jgqqrvnagqKjSdXd1TrMPxMjjLE7b+4xECrkDL7IxW0E 6HEd4B1NkHRPIk8H/JMe/5dbRDaWBM49EB2KWQCUqpFOfv80dXkpkkw8D+iCYbsV X-Gm-Gg: AY/fxX7ocmVd0AX033asiPjZpX1LymQtoRcSuwLxowlvHPt++ddK932KpaIxPaMznXO WspYd5rL/7BcpGAQWZzaj0fin31Ulit8st1DrRtppKFc1TlmXIvfeOXfxWlu//YZhW+9QwG3YLi d4SszCAChFfBiKmxtbwMhQoyfSsus3Lz3vhQ5Y+s1pXz6yYBEBrxOJqhXPKBRdBeu247BwQC5y1 2ARVs/hv+WZvAAIJln8X/uRy+dX1Iiurg5+EM8Ex7D7FM9GQ5O6vhx65QmDN8QOdRYGpQxcJ+vh tJv7k0R2A6vl12H2Y/EZKalCEWuaX5kadCJbWYInjGUzWRkxXrIrsLWjzumV84W6dtTmJwxq/ad dgZmOatNJjc918UBIyAPQy0Yjv8wSXY+SUFx2tHtGKtia1yRWCRT8wlWIxlhG9rCQ62CzROwuyy uMFF7pb5UtB+zDizUuUFsomCL0+Qi5rsliHjTfb25zi8MuhTX3g46U7dS27lbt3YCyktWxDGU= X-Google-Smtp-Source: AGHT+IFhFh3T0uRqlfiQlVX5OqrzXHZtllu89mEJORSKo6LkQq8PeB5+E8fZ+Tl98LJAkRUhIT6SOg== X-Received: by 2002:a5d:64e7:0:b0:431:7a0:dbbe with SMTP id ffacd0b85a97d-432c374ffaamr4032308f8f.32.1767800414774; Wed, 07 Jan 2026 07:40:14 -0800 (PST) Received: from jakob-laptop.d.ethz.ch (2001-67c-10ec-574c-8000--36.net6.ethz.ch. [2001:67c:10ec:574c:8000::36]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd0e199bsm11037422f8f.16.2026.01.07.07.40.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Jan 2026 07:40:14 -0800 (PST) From: Jakob Riemenschneider X-Google-Original-From: Jakob Riemenschneider To: rafael@kernel.org, lenb@kernel.org Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] ACPI: x86: s2idle: Invoke Microsoft _DSM Function 9 (Turn On Display) Date: Wed, 7 Jan 2026 16:40:15 +0100 Message-ID: <20260107154015.322698-1-jriemenschne@student.ethz.ch> X-Mailer: git-send-email 2.52.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Windows 11, version 22H2 introduced a new function index (Function 9) to the Microsoft LPS0 _DSM, titled "Turn On Display Notification". According to Microsoft documentation, this function signals to the system firmware that the OS intends to turn on the display when exiting Modern Standby. This allows the firmware to release Power Limits (PLx) earlier, improving resume latency on supported OEM designs. Without this call, some devices may remain in a throttled power state longer than necessary during resume. This patch defines the new function index (ACPI_LPS0_MS_DISPLAY_ON) and invokes it in acpi_s2idle_restore_early_lps0() immediately after the screen-on notification, provided the firmware supports the function in its mask. Link: https://learn.microsoft.com/en-us/windows-hardware/design/device-expe= riences/modern-standby-firmware-notifications#turn-on-display-notification-= function-9 Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D220505 Signed-off-by: Jakob Riemenschneider --- drivers/acpi/x86/s2idle.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c index 6d4d06236..4ce4cc8a0 100644 --- a/drivers/acpi/x86/s2idle.c +++ b/drivers/acpi/x86/s2idle.c @@ -45,6 +45,7 @@ static const struct acpi_device_id lps0_device_ids[] =3D { #define ACPI_LPS0_EXIT 6 #define ACPI_LPS0_MS_ENTRY 7 #define ACPI_LPS0_MS_EXIT 8 +#define ACPI_LPS0_MS_DISPLAY_ON 9 =20 /* AMD */ #define ACPI_LPS0_DSM_UUID_AMD "e3f32452-febc-43ce-9039-932122d37721" @@ -352,6 +353,8 @@ static const char *acpi_sleep_dsm_state_to_str(unsigned= int state) return "lps0 ms entry"; case ACPI_LPS0_MS_EXIT: return "lps0 ms exit"; + case ACPI_LPS0_MS_DISPLAY_ON: + return "lps0 ms display on"; } } else { switch (state) { @@ -618,9 +621,14 @@ static void acpi_s2idle_restore_early_lps0(void) } =20 /* Screen on */ - if (lps0_dsm_func_mask_microsoft > 0) + if (lps0_dsm_func_mask_microsoft > 0) { acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_ON, lps0_dsm_func_mask_microsoft, lps0_dsm_guid_microsoft); + /* Modern Turn Display On */ + acpi_sleep_run_lps0_dsm(ACPI_LPS0_MS_DISPLAY_ON, + lps0_dsm_func_mask_microsoft, lps0_dsm_guid_microsoft); + } + if (lps0_dsm_func_mask > 0) acpi_sleep_run_lps0_dsm(acpi_s2idle_vendor_amd() ? ACPI_LPS0_SCREEN_ON_AMD : --=20 2.52.0