As expected f989e55452c74b4f7b22c889b8ec9f1192aaeec4 is a bad commit. When kernel built with the preceeding commit 1a131ca1de7a84cf3827c418ee5971b493c6f23f then the fan is well behaved.. ie echo 200 > /sys/class/hwmon/hwmon3/pwm1 The fan speed builds up gradually and results in a reasonable constant fan speed fan1: 2207 RPM echo 180 > /sys/class/hwmon/hwmon3/pwm1 The fan speed is reasonably constant at fan1: 1118 RPM Note in both bad and good kernel the fan speed is not linear with the value sent to pwm1, rather a step change at about 192 from slow to fast. In the good kernel the fan speed is rock solid constant.. I could not seem to get the fan to get faster than 2207 RPM In the bad kernel the fan speed is always varying as indicated above. When configured with echo 200 > /sys/class/hwmon/hwmon3/pwm1 the fan speed is always varying about a high value and with echo 180 > /sys/class/hwmon/hwmon3/pwm1 the fan speed is always varying about a low value. The range of fan speeds seems larger with the bad kernel (3000 -> 300) as you can see from the comment above. Noticed that in the good kernel the virtual device seems to report the fans in the opposite order: $ sensors radeon-pci-0100 Adapter: PCI adapter temp1: +57.5°C (crit = +120.0°C, hyst = +90.0°C) coretemp-isa-0000 Adapter: ISA adapter Core 0: +28.0°C (high = +83.0°C, crit = +99.0°C) Core 1: +26.0°C (high = +83.0°C, crit = +99.0°C) Core 2: +28.0°C (high = +83.0°C, crit = +99.0°C) Core 3: +25.0°C (high = +83.0°C, crit = +99.0°C) it8721-isa-0a10 Adapter: ISA adapter in0: +0.86 V (min = +1.12 V, max = +2.09 V) ALARM in1: +3.02 V (min = +2.87 V, max = +0.64 V) ALARM in2: +2.00 V (min = +2.54 V, max = +1.44 V) ALARM +3.3V: +3.29 V (min = +4.56 V, max = +4.37 V) ALARM in4: +2.99 V (min = +2.68 V, max = +2.82 V) ALARM in5: +2.22 V (min = +2.62 V, max = +2.29 V) ALARM in6: +2.22 V (min = +2.29 V, max = +2.83 V) ALARM 3VSB: +3.34 V (min = +3.82 V, max = +4.54 V) ALARM Vbat: +3.02 V fan1: 965 RPM (min = 13 RPM) fan2: 1112 RPM (min = 21 RPM) temp1: -78.0°C (low = +55.0°C, high = -68.0°C) sensor = thermal diode temp2: -8.0°C (low = -57.0°C, high = -93.0°C) sensor = thermistor temp3: -71.0°C (low = -77.0°C, high = -49.0°C) sensor = Intel PECI intrusion0: ALARM i8k-virtual-0 Adapter: Virtual device fan1: 1120 RPM fan2: 972 RPM Notice that in comment #16 the fan speeds are in the same order... apart from the label change. So with the good kernel it seems that the virtual device thinks fan1 is the CPU fan and the ISA adapter thinks that fan2 is the CPU fan. With the bad kernel it seems that the virtual device thinks that the CPU fan is called Processor Fan and the ISA adapter thinks that the fan1 is the CPU fan. Seems to me like someone has switched some labels about! Perhaps by "correcting the labels" something else has gone wrong! Perhaps ISA adapter needs to think that fan2 is the CPU fan for some reason! Anyway thats about all I can see is different from a quick review of the sensor command output.