From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f180.google.com (mail-dy1-f180.google.com [74.125.82.180]) (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 3819435CB7C for ; Thu, 12 Mar 2026 03:10:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773285038; cv=none; b=knN26Rvr3rU9wH8gBMRcsvsIh56MdcMlphWj08QsJBIUBUcsGH5iKq1EQqmzhgwimHNpA6hWttufdflWxc7+55Epdg/smx1VKFuRHeMbAzSo3tBR4qUyWL5Z4eCWr+cNJudh0zNqjREE1EqcGWac3n8YDejFM+N1b+x+PsRSAOU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773285038; c=relaxed/simple; bh=I49KIs639gqGRHuHNOi5ZXwBTSTG/d4xi9BptLedaFU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=nNfWTlLVWkZmPTjWmErnrdczJ7oS18Mhvi1GMRJ4HfckbIb6E3NlAqAOgl6WDp7B6j6CEKlpOYCcrFlLAtAqSupy6AfmQRvSEBDbK4N3I6+ABeHPuBSAjjbSDh6QvwMZIonNe4GD5gYBkq0ivMDD+ZMpebiPs5J1poZxA8yVJos= 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=VIHGV++U; arc=none smtp.client-ip=74.125.82.180 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="VIHGV++U" Received: by mail-dy1-f180.google.com with SMTP id 5a478bee46e88-2be1c918173so903862eec.1 for ; Wed, 11 Mar 2026 20:10:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773285035; x=1773889835; 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=9m6zzzD1mVPwTCXkwlIHIMLXIxx6ddp/xGH09GQ/Vfw=; b=VIHGV++UlLfpApmZ+j2KTaL/A3rYVnwghjZlP8vj+zymi37P4jbHhIPK1G/GGePXid 4UbmeXWx2/sI/sfKRka3A/Ct3Wo/7sXURhOPNBqrFPX3XuPPu7j136eyzmePbWF0T+j0 o8PE1pjmKiGd1QcpvIjGwo816m03YOu3E/hV8wt3i4fcAEnVJyKbFWOTVvVhG0nF+b+k xkHSnbbPGu6s0ILAc86YPuwWkwAHArZsKyQp80CjupwimOWGxc+FEziJvO2Wm3aNzV7R W7X76W325YD1NVc1krysZSprFPLL40uuSH4mPrqUvTA/cafPS7drW8U6CjDuIz1tLFAB o8LQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773285035; x=1773889835; 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=9m6zzzD1mVPwTCXkwlIHIMLXIxx6ddp/xGH09GQ/Vfw=; b=Q/BJ/3KV258Pm08kEWWu1eB8anyqXtcHf2nS7g7AoySdLtaeGOwMIcHBkORX5F60x6 l71uqw4CSw5xR0BBf5+3tAT51n0Oiz9FGc7xcreuIO841bST9fKylg1zrr/w8d2RxymC +dqTrtm4eUmCK725wgG0ddx1a3b4owKQyBBKTwTkacLBhPZbI+kSIB1dRODEooNmNsn9 9H9awadYXNNhbxEoF+GNgdxtyDYKBw1lhdt9121AYh04xear3pVL/yS8EUW6b8688Ujn CmxHLunXYaaMzYFhbgvO6R4yK9t80msNz9Xq6M0UhwwhFxzD36KuLLNQxzwnXf0QjXHs vBMA== X-Forwarded-Encrypted: i=1; AJvYcCWXtPYKYp0/CbfA45rji5xmI5fEWoKZU1S7OXVB+g9unJomRELtbtqDbuoSqTxcZWqEJcaMV63P9d34Eus=@vger.kernel.org X-Gm-Message-State: AOJu0YzUq7YeaBwmbj9b55HlNeDXLXXLZvWokPHuurj7dHQiB4UhEV+P g882AQefLDNnKS59NTUVyI0B5HhBIZtACN8qYvUyd3Ekqx4Rweap4dUB X-Gm-Gg: ATEYQzwQrqP4z6xkA/pyoMNUleKLJBCHgI0esvXuvy9O/GZNyXbMtUQH26glg8U78eP UgUUmMUM8sG3iVCqJFXAFJnsAvqYfBnd2ejubKcQZfcp58Kjw8d1jTp8gIjpIqDI0PHYT0pHsp1 OlzwpCrVznptEBdTmFBsGoUlCKxko8tSKLt9VEBr/Q7H7GU6B22gF9CAOtbfd4UsSa4DjFvkPtP kjG2Xv2rDb/I3HrR4AziM2sXSMJ4W3Q6jUUEJa8QkodeiF8W0V+YIQb2Evao4zk+8JCvRAImcPP 3CjPY4DHSOBeLl4kzohULiBpJwHfvkcLxkFunfWl+Er0IIjb4E05k1fJT6nyAyyoinK8h+AOedV NH5F9WUem+tHLQYsgrK0wtF0z8gKO1plK9mZfJxL7fBwo9Eg26sMjUhgnx+mwUyf/3pR3y4hYIo oA7p8QhSk7uX5zkt/i+JNScnNPxqmtjyL5uhfoowc83Mfng6c78nZ+PaCyFra8di7Uqzx9ZYUK7 0JT X-Received: by 2002:a05:7300:a59a:b0:2b7:24fc:f638 with SMTP id 5a478bee46e88-2be8a0f188fmr2790928eec.0.1773285035217; Wed, 11 Mar 2026 20:10:35 -0700 (PDT) Received: from lappy (108-228-232-20.lightspeed.sndgca.sbcglobal.net. [108.228.232.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be8aa97dcfsm4802495eec.33.2026.03.11.20.10.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 20:10:34 -0700 (PDT) From: "Derek J. Clark" To: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , Hans de Goede Cc: Mark Pearson , Armin Wolf , Jonathan Corbet , Rong Zhang , Kurt Borja , "Derek J . Clark" , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 0/8] platform-x86: lenovo-wmi: Add fixes and enhancement Date: Thu, 12 Mar 2026 03:10:24 +0000 Message-ID: <20260312031032.3467565-1-derekjohn.clark@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit This series adds many much needed features and fixes to the lenovo-wmi drivers. Patch 1 moves LWMI_FAN_DIV to be next to the rest of the fan attribute defines in preparation for adding additional attrbiute macros. This is so the attribute macros can all be in the same place in the file. Patch 2 cleans up tunable_attr_01 by removing an unused pointer and correctly assigning the members as u8 isntead of u32. Patch 3 adds a function to make assigning attribute ID's for capdata cleaner and easier. Patch 4 addresses bugs where devices that don't support exposed attributes would still create the attribute, and also attempts to identify the correct capdata and set/get methods as some legacy interfaces don't use the custom mode in the method or capdata ID. Patch 5 adds the remaining CPU attributes that weren't previously exposed. Patch 6 adds GPU attributes. Patch 7 renames a name constant in preparation for patch 6. Patch 8 adds battery charge-type limiting when supported only by WMI, or when a module parameter to skip this check is set. The MODULE_PARM_DESC macro creates one check and two warnings in checkpatch. I reviewed other examples from the kernel and I am following the same convention, so I left it as is. Due to the large number of changes since v3 I decided to not carry over any new Reviewed-by tags. Signed-off-by: Derek J. Clark --- v4: - Use loop instead of back gotos for identifying the working attribute ID. - Use function instead of macro to assign attribute_id, preserving types. - Removed unused defines and enum values. - Rename charging defines to clarify thier purpose. - Fixed various formatting issues from v3. - Added module param to skip ACPI check when loading the driver for the power supply extension. - Don't abort adding power supply extension if the ACPI handle from ideapad is not present. - Don't worry about symmetric cleanup when cleaning up attributes in an error state. - Reword Patch 8 commit message to be more concise. - Fix wording in Patch 7 to match the changes. v3: https://lore.kernel.org/platform-driver-x86/20260224043200.2680384-1-derekjohn.clark@gmail.com/ - Re-add HWMON name const and just rename LWMI_OM_FW_ATTR_BASE_PATH - Fix linker warnings by moving acpi/battery include to the end of the list. - Remove CPU/GPU OC features. These attributes are BOOL type and will need a new constructor that I'll add later. v2: https://lore.kernel.org/platform-driver-x86/20260215061339.2842486-1-derekjohn.clark@gmail.com/ - Fix gpu_mode misisng from attributes list. - Fix prototypes for power suppy patch. - Reorganize CPU and GPU attributes alphabetically. - Break out the patch consolidating the driver name cost. - Move some of the refactoring of attribute_id back to into patch 1 where it belongs. - Fix some additional typos in function prototypes. v1: https://lore.kernel.org/platform-driver-x86/20260213081243.794288-1-derekjohn.clark@gmail.com/ Derek J. Clark (8): platform-x86: lenovo-wmi-other: Move LWMI_FAN_DIV platform-x86: lenovo-wmi-other: Fix tunable_attr_01 struct members platform/x86: lenovo-wmi-other: Add lwmi_attr_id() function platform/x86: lenovo-wmi-other: Limit adding attributes to supported devices platform/x86: lenovo-wmi-other: Add missing CPU tunable attributes platform/x86: lenovo-wmi-other: Add GPU tunable attributes platform-x86: lenovo-wmi-other: Rename LWMI_OM_FW_ATTR_BASE_PATH platform/x86: lenovo-wmi-other: Add WMI battery charge limiting .../wmi/devices/lenovo-wmi-other.rst | 19 + drivers/platform/x86/lenovo/wmi-capdata.h | 7 +- drivers/platform/x86/lenovo/wmi-gamezone.h | 1 + drivers/platform/x86/lenovo/wmi-other.c | 586 ++++++++++++++++-- 4 files changed, 571 insertions(+), 42 deletions(-) -- 2.53.0