diff options
| author | Sarbajit Sarkar <sarbajitsarkar16108@gmail.com> | 2026-07-10 00:05:00 +0530 |
|---|---|---|
| committer | Guenter Roeck <linux@roeck-us.net> | 2026-08-10 08:59:41 -0700 |
| commit | 440da016ceb4350a445d99c632849da605d9ae4e (patch) | |
| tree | 9148e24006f9ea22ca30b0dcaa2d38e151c4c01c | |
| parent | 3b7434feaad9b39d8b1ea390c6b755ef544d17df (diff) | |
hwmon: (yogafan) Add support for Lenovo LOQ 15IAX9
Add the Lenovo LOQ 15IAX9 product family to the yogafan dmi_system_id
table. Unlike the Legion series, ACPI table extraction reveals this LOQ
utilizes an 8-bit EC architecture with a 100x multiplier, but maintains
a dual-fan setup via the \_SB.PC00.LPCB.EC0.FA1S and FA2S paths.
A new loq_15iax9_8bit_dual_cfg structure was added to properly map these
hardware registers and calculate RPMs correctly while avoiding path
conflicts with AMD-based LOQ variants.
Signed-off-by: Sarbajit Sarkar <sarbajitsarkar16108@gmail.com>
Link: https://lore.kernel.org/r/20260709183500.13761-1-sarbajitsarkar16108@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
| -rw-r--r-- | drivers/hwmon/yogafan.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/hwmon/yogafan.c b/drivers/hwmon/yogafan.c index 605cc928f21f..0a41b8672b56 100644 --- a/drivers/hwmon/yogafan.c +++ b/drivers/hwmon/yogafan.c @@ -71,6 +71,12 @@ static const struct yogafan_config legion_16bit_dual_cfg = { .paths = { "\\_SB.PCI0.LPC0.EC0.FANS", "\\_SB.PCI0.LPC0.EC0.FA2S" } }; +static const struct yogafan_config loq_15iax9_8bit_dual_cfg = { + .multiplier = 100, + .fan_count = 2, + .paths = { "\\_SB.PC00.LPCB.EC0.FA1S", "\\_SB.PC00.LPCB.EC0.FA2S" } +}; + static void apply_rllag_filter(struct yoga_fan_data *data, int idx, long raw_rpm) { ktime_t now = ktime_get_boottime(); @@ -194,6 +200,14 @@ static const struct dmi_system_id yogafan_quirks[] = { }, .driver_data = (void *)&ideapad_8bit_fan0_cfg, }, + { + .ident = "Lenovo LOQ 15IAX9", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_FAMILY, "LOQ 15IAX9"), + }, + .driver_data = (void *)&loq_15iax9_8bit_dual_cfg, + }, { } }; MODULE_DEVICE_TABLE(dmi, yogafan_quirks); |
