From nobody Fri Nov 28 14:44:45 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dHx0F4yK7z6HbgJ for ; Fri, 28 Nov 2025 14:44:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dHx0F4C1Lz3y30 for ; Fri, 28 Nov 2025 14:44:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1764341085; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EsvVCdzCdz2kUa7X0mIagdBaJ4GIBGbyBLyQWyKC3RI=; b=aMS1D4miPzPlDBYos6NGzJd+kNNHrUCtoNiL/NDnw5HXrBt0a2WdfTMbOAiVEdMfJvksxP SQMcJ1zoBTS9crfDt4BIuAFkJNoLBpK3kbG44Z8i8A8vyn118lL9yjZs4pHQaiTDZtO9t6 Yi99deTmnv7nNfdzwGEoOTODUJksqJxRZMQWDSICKoXVFhm74mAozrsZAcfVWCGHfEOG7e 6TzSifgtJa4Es24rUhM53p6lcBffaNn4h6jZlcy6hypCjDjz6SIYUXyAWZDRfG7h8jl2Gb pAIkya1dBHJoJUbzh5N1C+qUF+oGlI350xb2KqfaeAPourS8JzG+JfiSF0JWAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1764341085; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EsvVCdzCdz2kUa7X0mIagdBaJ4GIBGbyBLyQWyKC3RI=; b=E/7nWaIuE3wkddm1vNJjZbUD/9ys7RGkcFDlauDdaWVnW80iq0zaiozmZvbwi9j/Nb+g96 V3Pup68fjd9GtEbE5iaBaoPa+w1jQ7mEb7RoT7oUt6oHlud1Y77nwS/K6Lz/1xndHADP1t V+MaLAwAj0DyQTuVLsEQMYDCHNMR8AiJekfd2sa9CYavlCiSlQwkdKGvmt9uw4TjEQVTxP WGqoBtCGBzroO1W/lNClXd4hr+rNhmAELBy2FcSRyiEoDsXfPnPXDGMgnTf6wa3Bq34mDQ 13aOew2D4srzY5RtKGkCpAA2D+P+Ko9IQO/DcLlPaIe/7i0xzgYazevmPmGXGQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1764341085; a=rsa-sha256; cv=none; b=KEAXJQRfrazBgMRRtGVwJTULnSK6QKmudbH7wsZUo97FUxvhIEr54XA2P3RjMmHGHH73wb F9P/rwCWVV3d+W42zo528XEFewWT1oIdJRzyNM3Kp8SPZ1G34GQTGXxyDskf3P26sfvUjq cmRf/23/uVBKp6opSxp+daZXV1ONUKXJi8iHIjpSWKM6OtCqpPMynyKhBRMitl0fqt4UTl 8Sclg8MCKPypdgToZSLoU1HMwBBJKBbT2mPyRHZwV5T3ANI9xkWJrcp9E58epHBLEj3iRs X6xG6llGcEdsDFVvb7wxfQ4CHsuzCQeaWYROnjGlL7I9dh1BW0arcjVQAkZeew== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dHx0F3Gb4z15l6 for ; Fri, 28 Nov 2025 14:44:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2b59a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 28 Nov 2025 14:44:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Aymeric Wibo Subject: git: eeaa865edba6 - main - acpi: Fix setting sleep state sysctls to NONE List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: obiwac X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: eeaa865edba685545ac22c378b35552e09bf1b41 Auto-Submitted: auto-generated Date: Fri, 28 Nov 2025 14:44:45 +0000 Message-Id: <6929b55d.2b59a.8a970bd@gitrepo.freebsd.org> The branch main has been updated by obiwac: URL: https://cgit.FreeBSD.org/src/commit/?id=eeaa865edba685545ac22c378b35552e09bf1b41 commit eeaa865edba685545ac22c378b35552e09bf1b41 Author: Aymeric Wibo AuthorDate: 2025-11-25 19:34:34 +0000 Commit: Aymeric Wibo CommitDate: 2025-11-28 14:42:54 +0000 acpi: Fix setting sleep state sysctls to NONE This restores the functionality as it was pre-97d152698f48. A stopgap was committed by glebius@ in 34dfccc64f47 ("acpi: in acpi_stype_sysctl() use same logic as in acpi_sleep_state_sysctl()"). PR: 290651 Reviewed by: thj, emaste Approved by: thj Fixes: 97d152698f48 ("acpi: Use sleep types defined in sys/power.h") Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D53909 --- sys/dev/acpica/acpi.c | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c index e3ff4f6937d2..99dd817f9158 100644 --- a/sys/dev/acpica/acpi.c +++ b/sys/dev/acpica/acpi.c @@ -4318,13 +4318,15 @@ acpi_sname_to_sstate(const char *sname) { int sstate; + if (strcasecmp(sname, "NONE") == 0) + return (ACPI_STATE_UNKNOWN); + if (toupper(sname[0]) == 'S') { sstate = sname[1] - '0'; if (sstate >= ACPI_STATE_S0 && sstate <= ACPI_STATE_S5 && sname[2] == '\0') return (sstate); - } else if (strcasecmp(sname, "NONE") == 0) - return (ACPI_STATE_UNKNOWN); + } return (-1); } @@ -4379,8 +4381,10 @@ acpi_suspend_state_sysctl(SYSCTL_HANDLER_ARGS) if (new_sstate < 0) return (EINVAL); new_stype = acpi_sstate_to_stype(new_sstate); - if (acpi_supported_stypes[new_stype] == false) + if (new_sstate != ACPI_STATE_UNKNOWN && + acpi_supported_stypes[new_stype] == false) return (EOPNOTSUPP); + if (new_stype != old_stype) power_suspend_stype = new_stype; return (err); @@ -4423,21 +4427,26 @@ acpi_stype_sysctl(SYSCTL_HANDLER_ARGS) if (err != 0 || req->newptr == NULL) return (err); - new_stype = power_name_to_stype(name); - if (new_stype == POWER_STYPE_UNKNOWN) { - sstate = acpi_sname_to_sstate(name); - if (sstate < 0) - return (EINVAL); - printf("warning: this sysctl expects a sleep type, but an ACPI S-state has " - "been passed to it. This functionality is deprecated; see acpi(4).\n"); - if (sstate < ACPI_S_STATE_COUNT && - !acpi_supported_sstates[sstate]) + if (strcasecmp(name, "NONE") == 0) { + new_stype = POWER_STYPE_UNKNOWN; + } else { + new_stype = power_name_to_stype(name); + if (new_stype == POWER_STYPE_UNKNOWN) { + sstate = acpi_sname_to_sstate(name); + if (sstate < 0) + return (EINVAL); + printf("warning: this sysctl expects a sleep type, but an ACPI " + "S-state has been passed to it. This functionality is " + "deprecated; see acpi(4).\n"); + MPASS(sstate < ACPI_S_STATE_COUNT); + if (acpi_supported_sstates[sstate] == false) + return (EOPNOTSUPP); + new_stype = acpi_sstate_to_stype(sstate); + } + if (acpi_supported_stypes[new_stype] == false) return (EOPNOTSUPP); - new_stype = acpi_sstate_to_stype(sstate); } - if (acpi_supported_stypes[new_stype] == false) - return (EOPNOTSUPP); if (new_stype != old_stype) *(enum power_stype *)oidp->oid_arg1 = new_stype; return (0);