From e886b6788f58fd4696b7548a7d8d47b4ba18a167 Mon Sep 17 00:00:00 2001 From: Patrick Pepin Date: Mon, 14 Sep 2026 08:09:55 +0000 Subject: [PATCH] hwmon: (dell-smm) Add Dell Precision 3650 Tower to fan control whitelist MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On the Dell Precision 3650 Tower, the EC ignores fan speed writes unless automatic BIOS fan control is disabled first. The I8K_FAN_30A3_31A3 SMM code pair works on this machine through the WMI-SMM backend: after writing 1 to pwm1_enable, all three fans (CPU, front, top) accept the three fan states and report matching RPM, and writing 2 hands control back to the BIOS. I8K_FAN_34A3_35A3 was tested as well and also works; I8K_FAN_30A3_31A3 is used since it matches recent OEM software. Tested on BIOS 1.48.0 with kernels 7.0.0-30 and 7.0.0-31 (Ubuntu 26.04). Signed-off-by: Patrick Pepin Acked-by: Pali Rohár Link: https://patch.msgid.link/20260914080955.87925-1-patpep@me.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 7ed94a3db621..99a58ed263ab 100644 --- a/drivers/hwmon/dell-smm-hwmon.c +++ b/drivers/hwmon/dell-smm-hwmon.c @@ -1639,6 +1639,14 @@ static const struct dmi_system_id i8k_whitelist_fan_control[] __initconst = { }, .driver_data = (void *)&i8k_fan_control_data[I8K_FAN_34A3_35A3], }, + { + .ident = "Dell Precision 3650 Tower", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Precision 3650 Tower"), + }, + .driver_data = (void *)&i8k_fan_control_data[I8K_FAN_30A3_31A3], + }, { .ident = "Dell Optiplex 7090", .matches = {