From nobody Sun Feb 8 13:45:51 2026 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (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 0E660625 for ; Tue, 27 Jan 2026 20:01:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769544082; cv=none; b=E02nZWQhOsJot2BLeOJy40WbrIuPWHVZEOXGukD97tB5gP6PK+hOEhcH7WnIsn4H+527gIDNm+8pVaIoMuxytay9wUN7bi+FOOKH+ac2oHO2HxYa8p4h24n8ufx5su2xlnqaR0ueKLw4JST4bsDUp/MF+Q/+jOXkxklyhI44+PM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769544082; c=relaxed/simple; bh=9TbVAiB8xmPLMIat08RxGmQrSfW3baJDeZStTiXU14g=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Ee+p3URYyB0FtppFw8yd+x7td/d2JLs2O0RudxID4cB0z0EzE3YIimouWYdYlmaA8UDhbgl8dRtUmE0hLJsUvsBhJjqRDwQt1G/zNpDU/DZbZy2PVSvSc1LKfvgxMQpSLvMcK3XkpN6/iBFs1vmty2m+0QzELfKLgpk7nuGTMD8= 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=eI1BXj+D; arc=none smtp.client-ip=209.85.221.41 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="eI1BXj+D" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-42fb2314eb0so5118908f8f.2 for ; Tue, 27 Jan 2026 12:01:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769544079; x=1770148879; 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=z1HymHUB9Wx8lSqzigaAIxk/7vgjbosQ3HEwzmr7JTo=; b=eI1BXj+DmRCj8+kqRbd4hOx1A2P8KVbMRuSv+gNdjFMDI19JunYLtbcKKeQ2wq6gKT w3tur+yA8vWQhKNAjifnenfVOJhvy+7j2bdWsWjN+jIOxWN8YkfEuRzHP+0gGZnHzF83 OFZlvL2GjqHg/xP1rY+Gdr4uFkyq3bJkTETtjFMwd6a+2d/MJwXNxDnEiwZD+1BF/1lC DowKeP3JIvkxnYbsY4Pk7V0wbAOKNtcrulohNmYYwNK7p4BTPLFHzek8tYx7fx2ECjl6 FqxM0ZuseRrFgvL8J8LkVMl4sl+V5NRRsKiazoMTHyt+EReSq1ftgKhmEhxiI10ri231 GUlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769544079; x=1770148879; 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=z1HymHUB9Wx8lSqzigaAIxk/7vgjbosQ3HEwzmr7JTo=; b=jAClGF66QPmMAF9tsl84zCjnY+YJgq8nSUr3uuZ1dCM7FOJ3cITK86nkC2EOZl0hV1 IaASco0iXYOj/Cr3uRtV54fwzjBeKe5meBUBcx6S1zlPReGJDkpTCWMWm9PDxz8hGLHd Y6mQIi/6n94rFzH/6OQhdxugHEL2wP15gK2XmmHu9X5kAaJA9T0Vs4Fwo9tTDs13urPL 3lC+Oq+jXJqcsmldWAh8YnkTGUhcsiD3B4eq71JeeFzRsN/V2bFD+fr4XdhTzA7VMcYA LZcMfLyhXwHV1eA0Sri0eZqRx55iBrltPSmTCRfjMH7fKDtMTv436Zr8n0uz9494pkqZ o79A== X-Forwarded-Encrypted: i=1; AJvYcCWOhPFe1AIbSWKqn8bw5DqjWpjBP8zxwsfoktzxwlv8h/MRho3CmfkJC/931G3ne1Ic5RU3HZoV1kPlA08=@vger.kernel.org X-Gm-Message-State: AOJu0YzsL9jxKccl0ry7j33B2DWka0GR12yhLt6pwsJ52FN/9SYo8bNA 65T34wimgeJ6cpc2uNCwUq7ME9OVo+0ibv5u7wdNm7qWsyd+RnIfv+Ie X-Gm-Gg: AZuq6aIHScUe6y6mQctIbFjJpg8KjJH8VoDGvfc74JHOs96CimXJS+lsMUEke/ruLgZ Ddyl9A4/SBw9JwA1UlL8Qlbp9YwLQu2VN+B1dZ3swHEaLDiR3XfsEYBnugZeovRMTFmu/OYLlR9 PHYWRG18hkK8SgL+6YFvBjJYgS9IArGHt3IQ9xp3OeTZOpbbxRZQSUNtKqHroIMQSXmFt/xkg8O 398O7rbDVEjpVbvzNKRdPpoKh0N1TZ9kc5bi7NN0sz+rDNDX8xAGaIi3awTXiSO2c+JaGPzwq3c JSbOoGkpDoKLveic8OeePwWYW7xRcBT/DMn3M0vjjBzcxKMjSoqLLWqxmvrT0TrkNpagYbvK+vO F9flC5gvxJOaYT6x2uWafvaqC1bER/UqyFGAfRrB6WLtHR05VVFcm3UthGtAd5/iczgJcObXDej K+Agv+lVldYKL1yLpANzMeGROuFOomsYka3CnYDKtk8S3ikmdAg2A= X-Received: by 2002:a05:6000:1a8f:b0:435:db6e:e3b2 with SMTP id ffacd0b85a97d-435dd090a39mr4182208f8f.27.1769544079172; Tue, 27 Jan 2026 12:01:19 -0800 (PST) Received: from jakob-laptop.tail0b2949.ts.net ([213.55.197.211]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435e10ee562sm1197724f8f.18.2026.01.27.12.01.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jan 2026 12:01:18 -0800 (PST) From: Jakob Riemenschneider To: "Rafael J . Wysocki" Cc: Len Brown , lkml@antheas.dev, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, Jakob Riemenschneider , Antheas Kapenekakis Subject: [PATCH v2] ACPI: x86: s2idle: Invoke Microsoft _DSM Function 9 (Turn On Display) Date: Tue, 27 Jan 2026 21:01:21 +0100 Message-ID: <20260127200121.1292216-1-riemenschneiderjakob@gmail.com> 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. Crucially, this patch fixes a functional issue observed on the Lenovo Yoga Slim 7i Aura (15ILL9), where system fans and keyboard backlights fail to resume after suspend. Investigation linked shows the EC on this device turns off these components during sleep but requires the Function 9 notification to wake them up again. This patch defines the new function index (ACPI_MS_TURN_ON_DISPLAY) and invokes it in acpi_s2idle_restore_early_lps0(). The execution order is updated to match the logic of an "intent" signal: 1. LPS0 Exit (Function 6) 2. Turn On Display Intent (Function 9) 3. Modern Standby Exit (Function 8) 4. Screen On (Function 4) Invoking Function 9 before the Modern Standby Exit ensures the firmware has time to restore power rails and functionality (like fans) before the software fully exits the sleep state. 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 Suggested-by: Antheas Kapenekakis Signed-off-by: Jakob Riemenschneider --- v2: - Renamed constant from ACPI_LPS0_MS_DISPLAY_ON to ACPI_MS_TURN_ON_DISPLAY= per feedback. - Moved the Function 9 call to occur before MS Exit (Function 8) to act as= an intent signal. =20 drivers/acpi/x86/s2idle.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c index 6d4d06236..de94b57f7 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_MS_TURN_ON_DISPLAY 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_MS_TURN_ON_DISPLAY: + return "lps0 ms turn on display"; } } else { switch (state) { @@ -612,6 +615,9 @@ static void acpi_s2idle_restore_early_lps0(void) if (lps0_dsm_func_mask_microsoft > 0) { acpi_sleep_run_lps0_dsm(ACPI_LPS0_EXIT, lps0_dsm_func_mask_microsoft, lps0_dsm_guid_microsoft); + /* Intent to turn on display */ + acpi_sleep_run_lps0_dsm(ACPI_MS_TURN_ON_DISPLAY, + lps0_dsm_func_mask_microsoft, lps0_dsm_guid_microsoft); /* Modern Standby exit */ acpi_sleep_run_lps0_dsm(ACPI_LPS0_MS_EXIT, lps0_dsm_func_mask_microsoft, lps0_dsm_guid_microsoft); --=20 2.52.0