mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
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>
This commit is contained in:
parent
3b7434feaa
commit
440da016ce
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user