public inbox for linux-hwmon@vger.kernel.org
 help / color / mirror / Atom feed
* Weird Dell SMM bug since 6.18
@ 2026-03-13 12:39 Jan Claußen
  2026-03-13 16:43 ` Guenter Roeck
  0 siblings, 1 reply; 12+ messages in thread
From: Jan Claußen @ 2026-03-13 12:39 UTC (permalink / raw)
  To: linux-hwmon

Hi,

I've been experiencing a very weird bug since kernel 6.18 and had been 
staying on 6.12 LTS because of it over the last months. I am using the 
application coolercontrol to control the case fans on my old Dell 
Precision 5810. Here is some background 
https://gitlab.com/coolercontrol/coolercontrol/-/work_items/557

To be clear, I am not 100% sure if this is a bug in the kernel or in the 
in the application. I am not the only one experiencing it though and the 
maintainers of coolercontrol don't know what caused it either, so I am 
hoping for some help/advice here.

The issue:

Everything was fine on 6.17 and when 6.18 was released coolercontrol 
said it couldn't write the pwm attributes anymore. They were writable 
using echo though. After downgrading to 6.17 everything was fine again. 
I took the time to bisect the kernel from 6.17 to 6.18 and got the 
following result:

c050daf69f3edf72e274eaa321f663b1779c4391 is the first bad commit
commit c050daf69f3edf72e274eaa321f663b1779c4391
Merge: 989253cc46ff 8f2689f194b8
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed Oct 1 10:33:17 2025 -0700

     Merge tag 'pwm/for-6.18-rc1' of 
git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux

     Pull pwm updates from Uwe Kleine-König:
      "The core highlights for this cycle are:

        - The pca9586 driver was converted to the waveform API

        - Waveform drivers automatically provide a gpio chip to make PWMs
          usable as GPIOs (The pca9586 driver did that in a driver specific
          implementation before)

       Otherwise it's the usual mix of fixes and device tree and driver
       changes to support new hardware variants"

     * tag 'pwm/for-6.18-rc1' of 
git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux: (30 commits)
       pwm: cros-ec: Avoid -Wflex-array-member-not-at-end warnings
       dt-bindings: pwm: samsung: add exynos8890 compatible
       dt-bindings: pwm: apple,s5l-fpwm: Add t6020-fpwm compatible
       dt-bindings: pwm: nxp,lpc1850-sct-pwm: Minor whitespace cleanup 
in example
       pwm: pca9586: Convert to waveform API
       pwm: pca9685: Drop GPIO support
       pwm: pca9685: Make use of register caching in regmap
       pwm: pca9685: Use bulk write to atomicially update registers
       pwm: pca9685: Don't disable hardware in .free()
       pwm: Add the S32G support in the Freescale FTM driver
       dt-bindings: pwm: fsl,vf610-ftm-pwm: Add compatible for s32g2 and 
s32g3
       pwm: mediatek: Lock and cache clock rate
       pwm: mediatek: Fix various issues in the .apply() callback
       pwm: mediatek: Implement .get_state() callback
       pwm: mediatek: Initialize clks when the hardware is enabled at 
probe time
       pwm: mediatek: Rework parameters for clk helper function
       pwm: mediatek: Introduce and use a few more register defines
       pwm: mediatek: Simplify representation of channel offsets
       pwm: tiecap: Document behaviour of hardware disable
       pwm: Provide a gpio device for waveform drivers
       ...

  Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml      |  3 +-
  Documentation/devicetree/bindings/pwm/fsl,vf610-ftm-pwm.yaml   | 11 ++--
  Documentation/devicetree/bindings/pwm/nxp,lpc1850-sct-pwm.yaml |  2 +-
  Documentation/devicetree/bindings/pwm/pwm-samsung.yaml         |  1 +
  Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml   |  7 ++-
  drivers/pwm/Kconfig                                            |  9 ++++
  drivers/pwm/core.c                                             | 108 
+++++++++++++++++++++++++++++++++-----
  drivers/pwm/pwm-berlin.c                                       |  4 +-
  drivers/pwm/pwm-cros-ec.c                                      | 10 ++--
  drivers/pwm/pwm-fsl-ftm.c                                      | 35 
++++++++++++-
  drivers/pwm/pwm-loongson.c                                     |  2 +-
  drivers/pwm/pwm-mediatek.c                                     | 308 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
  drivers/pwm/pwm-pca9685.c                                      | 515 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------------------------
  drivers/pwm/pwm-tiecap.c                                       |  4 ++
  drivers/pwm/pwm-tiehrpwm.c                                     | 154 
++++++++++++++++++++++--------------------------------
  include/linux/pwm.h                                            |  3 ++
  16 files changed, 661 insertions(+), 515 deletions(-)

This seemed like it could be it, as it's pwm-related, but nothing 
Dell-specific. One merge before though there was

1c1658058c99 hwmon: (dell-smm) Add support for automatic fan mode

which could be related. Since the pwm_enable attribute was introduced in 
6.18, I am suspecting it has something to do with it.

Now the weird part:

git bisect start
# Status: warte auf guten und schlechten Commit
# good: [e5f0a698b34ed76002dc5cff3804a61c80233a7a] Linux 6.17
git bisect good e5f0a698b34ed76002dc5cff3804a61c80233a7a
# Status: warte auf schlechten Commit, 1 guter Commit bekannt
# bad: [7d0a66e4bb9081d75c82ec4957c50034cb0ea449] Linux 6.18
git bisect bad 7d0a66e4bb9081d75c82ec4957c50034cb0ea449
# bad: [f79e772258df311c2cb21594ca0996318e720d28] Merge tag 
'media/v6.18-1' of 
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
git bisect bad f79e772258df311c2cb21594ca0996318e720d28
# bad: [0f048c878ee32a4259dbf28e0ad8fd0b71ee0085] Merge tag 
'soc-dt-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
git bisect bad 0f048c878ee32a4259dbf28e0ad8fd0b71ee0085
# bad: [c050daf69f3edf72e274eaa321f663b1779c4391] Merge tag 
'pwm/for-6.18-rc1' of 
git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux
git bisect bad c050daf69f3edf72e274eaa321f663b1779c4391
# good: [a23cd25baed2316e50597f8b67192bdc904f955b] Merge tag 
'sched_ext-for-6.18' of 
git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext
git bisect good a23cd25baed2316e50597f8b67192bdc904f955b
# good: [4b81e2eb9e4db8f6094c077d0c8b27c264901c1b] Merge tag 
'timers-vdso-2025-09-29' of 
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
git bisect good 4b81e2eb9e4db8f6094c077d0c8b27c264901c1b
# good: [ae28ed4578e6d5a481e39c5a9827f27048661fdd] Merge tag 
'bpf-next-6.18' of 
git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
git bisect good ae28ed4578e6d5a481e39c5a9827f27048661fdd
# good: [eb3289fc474f74105e0627bf508e3f9742fd3b63] Merge tag 
'driver-core-6.18-rc1' of 
git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core
git bisect good eb3289fc474f74105e0627bf508e3f9742fd3b63
# good: [eb3289fc474f74105e0627bf508e3f9742fd3b63] Merge tag 
'driver-core-6.18-rc1' of 
git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core
git bisect good eb3289fc474f74105e0627bf508e3f9742fd3b63
# good: [7e5969a4d3e794993c9ca8d4026cf31a34b32b30] dt-bindings: 
trivial-devices: Add sht2x sensors
git bisect good 7e5969a4d3e794993c9ca8d4026cf31a34b32b30
# good: [7e5969a4d3e794993c9ca8d4026cf31a34b32b30] dt-bindings: 
trivial-devices: Add sht2x sensors
git bisect good 7e5969a4d3e794993c9ca8d4026cf31a34b32b30
# good: [989253cc46ff3f4973495b58e02c7fcb1ffb713e] Merge tag 
'hwmon-for-v6.18-rc1' of 
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
git bisect good 989253cc46ff3f4973495b58e02c7fcb1ffb713e
# good: [f43e1280731c2a6bbd2d9517fd6b726d6ebe6641] pwm: mediatek: Rework 
parameters for clk helper function
git bisect good f43e1280731c2a6bbd2d9517fd6b726d6ebe6641
# good: [de5855613263b426ee697dd30224322f2e634dec] pwm: pca9685: Use 
bulk write to atomicially update registers
git bisect good de5855613263b426ee697dd30224322f2e634dec
# good: [efedb508591e231b47b23ce6b353c81eeb3b9a84] dt-bindings: pwm: 
nxp,lpc1850-sct-pwm: Minor whitespace cleanup in example
git bisect good efedb508591e231b47b23ce6b353c81eeb3b9a84
# good: [ebd524a3ac3a172aa26f99d20d4d00d57da9a875] dt-bindings: pwm: 
samsung: add exynos8890 compatible
git bisect good ebd524a3ac3a172aa26f99d20d4d00d57da9a875
# good: [8f2689f194b8d1bff41150ae316abdfccf191309] pwm: cros-ec: Avoid 
-Wflex-array-member-not-at-end warnings
git bisect good 8f2689f194b8d1bff41150ae316abdfccf191309
# first bad commit: [c050daf69f3edf72e274eaa321f663b1779c4391] Merge tag 
'pwm/for-6.18-rc1' of 
git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux
# good: [c050daf69f3edf72e274eaa321f663b1779c4391] Merge tag 
'pwm/for-6.18-rc1' of 
git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux
git bisect good c050daf69f3edf72e274eaa321f663b1779c4391

The first time I hit the pwm/for-6.18-rc1 it was bad, now it suddenly is 
good. I am writing this from 6.19 and the issue is fixed all of a 
sudden. The only way I can explain this is that some configuration has 
changed. It might be that a jump from 6.17 to 6.18 causes the 
configuration not to be applied correctly but traversing commits step by 
step fixed it.

Does anyone here have a possible explanation for this? Since I am not 
the only one affected, as stated in the coolercontrol issue, it might be 
worth looking into this further.

Regards,
Jan


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-03-23 10:25 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-13 12:39 Weird Dell SMM bug since 6.18 Jan Claußen
2026-03-13 16:43 ` Guenter Roeck
2026-03-13 19:06   ` Jan Claußen
2026-03-13 23:10     ` Armin Wolf
2026-03-16 15:52       ` Guenter Roeck
2026-03-16 20:10         ` Jan Claußen
2026-03-17  0:55           ` Guenter Roeck
2026-03-17  1:29             ` Armin Wolf
2026-03-19  9:49               ` Guy Boldon
2026-03-19 15:52                 ` Guenter Roeck
2026-03-22 10:18                   ` Guy Boldon
2026-03-23 10:25                     ` Armin Wolf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox