From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (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 492722DE709 for ; Fri, 21 Aug 2026 21:47:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787348858; cv=none; b=S670mV7L+hgK3AQR8V0oquOluTQEdpnEgx4F97Ii+AQAgONx9o85zSepd1EY2UyprCJyXI8eSp8LN9Pp+zO0twGaPeQYXKZkWiQc/Ft5UIcyiP4KeCk7yp8MLwsYkwY0z9zsOdA8aZQAtPTZooF8kN8iXBfnxYXiH4d1B/zV2jI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787348858; c=relaxed/simple; bh=5Z2Lpou+idaDjMdbBLj5870okjZ93hYD6gJizvIkOTQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=McbU6otGbnDN69dWnuiIGNanwiWumn9A5ZoecrlasxQeAXHHmia6SmdJrpbpPJBut6E9QiSuKRF87+MaN9Diw1h2jHgQoBBVsU9Ki80Q5ZquOPO0bqqVrSwmHxfIkL3pA0HalzH3Yvep/pajtyYBYi2Wc60szedJDDJZriYUpYU= 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=dSoHFjH+; arc=none smtp.client-ip=209.85.214.173 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="dSoHFjH+" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2cacf197759so20662145ad.2 for ; Fri, 21 Aug 2026 14:47:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787348856; x=1787953656; 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:content-type; bh=YSjgsk8Yvs83A8c6v1zqzSAqyvIC2+XLW+Y3mp3uQzE=; b=dSoHFjH+UTqPqeLtzrtAgF0CDXKh3AMuXJ7+Wmc9Rnn5jF1vTkDXKHAiB19pPYh8+p 9/9py2zqtMufVoWPRABVnr6UMxKXZrXU1OZmigB+WbYtqT3XmRTOPTTc2y3ilfUBucPy O2kqQec5Bd0FvdRflpZsniymUKA12W+sS8rFMwzxIrTgqyuO2LSOCtcfMnQ36yVnqWA5 1p6phqLgV/IAkU4rtI1BOXPHpSgSsCoY5X9muU29sjNLQphzYoVHHcyLQTNKf2t0pv3F rZ6KiIE5byDnUFTrLwcy8P8mqmjNTtba0JRBm+1TRXk9QqqDaEWCDZ3sf+gXiE0DLDbF 6S9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787348856; x=1787953656; 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:content-type; bh=YSjgsk8Yvs83A8c6v1zqzSAqyvIC2+XLW+Y3mp3uQzE=; b=CQQuCXtYqtmURsB3vn34bMbBj45qEA8oRZ85Vv/cvA4wXJ6VbexdOYXrL5SgnldQXa kKJqn4/OlIGt1vMJL01IM3ZgEpLOoSbWFqwDfDzG3Y5xfKAyA5pETgxAlD8sHSpbA8UB 7ehjXMVbClJsEB3e5FEeFRSohjIYFosWXhV3VXgWU/McsMmTDKUSLIjbqHrU6NzKcG7Q 6oN4t6GPeN0Vta5NkviQnw32TiMPv9+ZvGce9kpeKZBHaWC6v7m+3iQBTqBpV5vXdmqQ EoThQ9+Wn9ehjHR4jwNu/SGvSPP19XUnq9MtcwAci8ZRVTVxjtWF3vaXLZCo6a5jc/PH GIJA== X-Forwarded-Encrypted: i=1; AHgh+RrBwQkHG9nQEj4ds4gVathTBkV/lR6qe2jX71v1cxbv/q2vVALlOcTPiN4TsJ5DGcOpgqlu8TNw0qRjA48=@vger.kernel.org X-Gm-Message-State: AFuF++kF1ELQ+AI9b/9c8nRMmDCSqZhZoq13VWIpXtcI21AJKLB7ulho y/kdn0yC17BiENGTkOcbTTDlVJa/5mnVMp66Gg06sAO10S2MHGJ7c5oH X-Gm-Gg: AR+sD13ka9B/IrHC1X/tumzfDXAt/xRsnT8PCn0EUfRQPR5s6WOV/3jwxex+84hKEm2 ouHnsLn4OiMEL9D9L3lDckN/rFhHj+LPJ/ZSvje3bzL7XVW4iembNuXJVkYpIju4pA6+aZt5w8A JjcL7/u9AAkUYaGLEcUwaQUzS3FuP68L3vjpjRi0xF3qSl/46H5blwduETaNJ5BbdrZDkFANAwB ktWoGai22GqPbXzME+WDsYu2r00PrTQeFyaFqj5ypD2CQT/DcARv8CcLVpQA/cjlnsDM1mGXQjL CYgYnf//OJkauWvsmPL6AhQPW99Ua3VW1q1WL3VxOI5EGtCj2LnZob1oYMFu/M1Vfrp00kIPp4x ZNqD+zuzlwAB3BRkDBYXNtpRL+nw/Gfh5mR3/bgh6H6umHXxLjLSXs/PIVCIIApihfhNDi7F4XV wSMWI03KRURXf276lhEVGX2TjkJHyE/3y67fl8+bL9KthNgFV4jjd1sJMfzbuAhg/pkdIbOhB9s b8K0uaLjZhUkcS4mKg= X-Received: by 2002:a17:902:cf43:b0:2d0:cc92:f7ae with SMTP id d9443c01a7336-2d64ade9363mr188665515ad.3.1787348855568; Fri, 21 Aug 2026 14:47:35 -0700 (PDT) Received: from localhost.localdomain ([103.16.69.193]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-327bf10d497sm45664198eec.14.2026.08.21.14.47.31 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 21 Aug 2026 14:47:34 -0700 (PDT) From: Aditya Dash To: "Derek J. Clark" , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , Armin Wolf , Hans de Goede , Mark Pearson Cc: Guenter Roeck , Jonathan Corbet , Shuah Khan , linux-doc@vger.kernel.org, linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org Subject: [RFC PATCH 0/3] platform/x86: lenovo: Add Legion Go fan controls Date: Sat, 22 Aug 2026 03:17:24 +0530 Message-ID: <20260821214728.87773-1-mradityadash@gmail.com> X-Mailer: git-send-email 2.55.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 Capability Data does not cover all fan controls on the Legion Go. Full Speed uses a separate Other Mode feature, some firmware exposes an RPM reading that Capability Data does not advertise, and the custom fan table uses a separate Fan Method WMI interface. Patches 1 and 2 add Full Speed and the RPM fallback to the existing HWMON device. Patch 3 adds a Fan Method driver and attaches the ten curve points to that device when both WMI interfaces belong to the same provider. Other Mode continues to work without Fan Method. The open question is how the firmware control range should map to HWMON. On the tested Legion Go 8APU1, values from 0 through 115 produce the observable fan response and correspond to Lenovo's 0 through 115 percent range. Lenovo software shows 0 through 100 percent to the user, and 115 reaches the RPM observed in Full Speed mode. Firmware accepts values through 255, but no RPM increase was observed above 115. This series keeps the native values unchanged and exposes the fixed temperatures as read-only automatic points. Should the driver map the effective 0 through 115 range to the standard HWMON 0 through 255 scale, or keep the native firmware values unchanged? Aditya Dash (3): platform/x86: lenovo-wmi-other: Add Legion Go Full Speed control platform/x86: lenovo-wmi-other: Add Legion Go fan RPM fallback platform/x86: lenovo: Add Legion Go Fan Method curve driver .../wmi/devices/lenovo-wmi-fan-method.rst | 34 ++ .../wmi/devices/lenovo-wmi-other.rst | 14 + MAINTAINERS | 1 + drivers/platform/x86/lenovo/Kconfig | 11 + drivers/platform/x86/lenovo/Makefile | 1 + drivers/platform/x86/lenovo/wmi-fan-method.c | 380 ++++++++++++++++++ drivers/platform/x86/lenovo/wmi-other.c | 215 +++++++++- 7 files changed, 649 insertions(+), 7 deletions(-) create mode 100644 Documentation/wmi/devices/lenovo-wmi-fan-method.rst create mode 100644 drivers/platform/x86/lenovo/wmi-fan-method.c base-commit: aca39607c1734ed976fdd65deb75b3555a5a0326 -- 2.55.0