* [PATCH] hwmon: (dell-smm) Add Dell Precision 3650 Tower to fan control whitelist
@ 2026-09-13 11:29 Patrick Pepin
2026-09-13 11:35 ` Pali Rohár
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Patrick Pepin @ 2026-09-13 11:29 UTC (permalink / raw)
To: Pali Rohár, Guenter Roeck
Cc: Armin Wolf, linux-hwmon, linux-kernel, Patrick Pepin
On the Dell Precision 3650 Tower, the EC ignores fan speed writes unless
automatic BIOS fan control is disabled first. The same SMM code pair as
the OptiPlex 7000 (I8K_FAN_34A3_35A3) 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.
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 <patpep@me.com>
---
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 7ed94a3db..47668634f 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_34A3_35A3],
+ },
{
.ident = "Dell Optiplex 7090",
.matches = {
--
2.53.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] hwmon: (dell-smm) Add Dell Precision 3650 Tower to fan control whitelist
2026-09-13 11:29 [PATCH] hwmon: (dell-smm) Add Dell Precision 3650 Tower to fan control whitelist Patrick Pepin
@ 2026-09-13 11:35 ` Pali Rohár
2026-09-13 20:16 ` Armin Wolf
2026-09-14 8:09 ` [PATCH v2] " Patrick Pepin
2 siblings, 0 replies; 6+ messages in thread
From: Pali Rohár @ 2026-09-13 11:35 UTC (permalink / raw)
To: Patrick Pepin; +Cc: Guenter Roeck, Armin Wolf, linux-hwmon, linux-kernel
On Sunday 13 September 2026 11:29:25 Patrick Pepin wrote:
> On the Dell Precision 3650 Tower, the EC ignores fan speed writes unless
> automatic BIOS fan control is disabled first. The same SMM code pair as
> the OptiPlex 7000 (I8K_FAN_34A3_35A3) 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.
>
> 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 <patpep@me.com>
Acked-by: Pali Rohár <pali@kernel.org>
> ---
> 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 7ed94a3db..47668634f 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_34A3_35A3],
> + },
> {
> .ident = "Dell Optiplex 7090",
> .matches = {
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] hwmon: (dell-smm) Add Dell Precision 3650 Tower to fan control whitelist
2026-09-13 11:29 [PATCH] hwmon: (dell-smm) Add Dell Precision 3650 Tower to fan control whitelist Patrick Pepin
2026-09-13 11:35 ` Pali Rohár
@ 2026-09-13 20:16 ` Armin Wolf
2026-09-14 8:09 ` [PATCH v2] " Patrick Pepin
2 siblings, 0 replies; 6+ messages in thread
From: Armin Wolf @ 2026-09-13 20:16 UTC (permalink / raw)
To: Patrick Pepin, Pali Rohár, Guenter Roeck; +Cc: linux-hwmon, linux-kernel
Am 13.09.26 um 13:29 schrieb Patrick Pepin:
> On the Dell Precision 3650 Tower, the EC ignores fan speed writes unless
> automatic BIOS fan control is disabled first. The same SMM code pair as
> the OptiPlex 7000 (I8K_FAN_34A3_35A3) 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.
>
> Tested on BIOS 1.48.0 with kernels 7.0.0-30 and 7.0.0-31 (Ubuntu 26.04).
Hi,
can you try if I8K_FAN_30A3_31A3 works too? Those are the commands used by
recent releases of the OEM software, so i would prefer using them.
Thanks,
Armin Wolf
> Signed-off-by: Patrick Pepin <patpep@me.com>
> ---
> 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 7ed94a3db..47668634f 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_34A3_35A3],
> + },
> {
> .ident = "Dell Optiplex 7090",
> .matches = {
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2] hwmon: (dell-smm) Add Dell Precision 3650 Tower to fan control whitelist
2026-09-13 11:29 [PATCH] hwmon: (dell-smm) Add Dell Precision 3650 Tower to fan control whitelist Patrick Pepin
2026-09-13 11:35 ` Pali Rohár
2026-09-13 20:16 ` Armin Wolf
@ 2026-09-14 8:09 ` Patrick Pepin
2026-09-14 9:46 ` Pali Rohár
2026-09-16 14:53 ` Guenter Roeck
2 siblings, 2 replies; 6+ messages in thread
From: Patrick Pepin @ 2026-09-14 8:09 UTC (permalink / raw)
To: Pali Rohár, Guenter Roeck
Cc: Armin Wolf, linux-hwmon, linux-kernel, Patrick Pepin
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 <patpep@me.com>
---
v2: use I8K_FAN_30A3_31A3 instead of I8K_FAN_34A3_35A3 as suggested by
Armin Wolf (both pairs tested working on this machine). Pali's
Acked-by from v1 is not carried over because of this change.
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 7ed94a3db..99a58ed26 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 = {
--
2.53.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] hwmon: (dell-smm) Add Dell Precision 3650 Tower to fan control whitelist
2026-09-14 8:09 ` [PATCH v2] " Patrick Pepin
@ 2026-09-14 9:46 ` Pali Rohár
2026-09-16 14:53 ` Guenter Roeck
1 sibling, 0 replies; 6+ messages in thread
From: Pali Rohár @ 2026-09-14 9:46 UTC (permalink / raw)
To: Patrick Pepin; +Cc: Guenter Roeck, Armin Wolf, linux-hwmon, linux-kernel
On Monday 14 September 2026 08:09:55 Patrick Pepin wrote:
> 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 <patpep@me.com>
Acked-by: Pali Rohár <pali@kernel.org>
> ---
> v2: use I8K_FAN_30A3_31A3 instead of I8K_FAN_34A3_35A3 as suggested by
> Armin Wolf (both pairs tested working on this machine). Pali's
> Acked-by from v1 is not carried over because of this change.
>
> 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 7ed94a3db..99a58ed26 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 = {
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] hwmon: (dell-smm) Add Dell Precision 3650 Tower to fan control whitelist
2026-09-14 8:09 ` [PATCH v2] " Patrick Pepin
2026-09-14 9:46 ` Pali Rohár
@ 2026-09-16 14:53 ` Guenter Roeck
1 sibling, 0 replies; 6+ messages in thread
From: Guenter Roeck @ 2026-09-16 14:53 UTC (permalink / raw)
To: Patrick Pepin; +Cc: Pali Rohár, Armin Wolf, linux-hwmon, linux-kernel
On Mon, Sep 14, 2026 at 08:09:55AM +0000, Patrick Pepin wrote:
> 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 <patpep@me.com>
> Acked-by: Pali Rohár <pali@kernel.org>
Applied.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-09-16 14:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-13 11:29 [PATCH] hwmon: (dell-smm) Add Dell Precision 3650 Tower to fan control whitelist Patrick Pepin
2026-09-13 11:35 ` Pali Rohár
2026-09-13 20:16 ` Armin Wolf
2026-09-14 8:09 ` [PATCH v2] " Patrick Pepin
2026-09-14 9:46 ` Pali Rohár
2026-09-16 14:53 ` Guenter Roeck
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®