From f47e06715727b4ec545492ff1148e4c3e1681f34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emanuel=20=C3=81vila?= Date: Thu, 24 Sep 2026 01:48:29 -0300 Subject: [PATCH] hwmon: (dell-smm) Add Dell 16 DC16250 to fan control whitelist MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On the Dell 16 DC16250, the BIOS keeps the CPU fan at its highest state (~4700 RPM) even when the system is idle at 45 °C, and fan speed writes through pwm1 are overridden by the BIOS within a few seconds. The I8K_FAN_30A3_31A3 SMM code pair works on this machine through the WMI-SMM backend: after writing 1 to pwm1_enable, the fan accepts all three fan states (0, 128 and 255 via pwm1) and reports matching RPM, and writing 2 hands control back to the BIOS. Tested on BIOS 1.8.1 with kernel 7.1.5 (Pop!_OS 24.04). Assisted-by: claude-opus-5-5 Signed-off-by: Emanuel Ávila Acked-by: Pali Rohár Link: https://patch.msgid.link/20260924044829.2889204-1-avilaemanueel@gmail.com Signed-off-by: Guenter Roeck --- drivers/hwmon/dell-smm-hwmon.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c index 99a58ed263ab..88837f028405 100644 --- a/drivers/hwmon/dell-smm-hwmon.c +++ b/drivers/hwmon/dell-smm-hwmon.c @@ -1679,6 +1679,14 @@ static const struct dmi_system_id i8k_whitelist_fan_control[] __initconst = { }, .driver_data = (void *)&i8k_fan_control_data[I8K_FAN_30A3_31A3], }, + { + .ident = "Dell 16 DC16250", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Dell 16 DC16250"), + }, + .driver_data = (void *)&i8k_fan_control_data[I8K_FAN_30A3_31A3], + }, { } };