Re: [Experimental PATCH] dell-smm-hwmon: Add support for disabling automatic BIOS fan control

From: MichaÅ KÄpieÅ
Date: Wed Jun 22 2016 - 02:53:30 EST


> > >> Tested on a Dell XPS13 9333. Changing the value of pwm1_enable appears
> > >> to have no effect here.
> > >
> > > Can you check what i8k_enable_fan_auto_mode() returns? Error code or not?
> >
> > No error. However, independently on the value I set, the BIOS always
> > overrides the speed of the fan.
>
> Ok, looks like this is model or platform specific call...
>
> If you want, you can try to play with dellfan source code [1]. There is
> e.g. in comment specified two methods for disabling that BIOS thermal
> automode [2]. Looks like second method is that which I implemented in
> patch...
>
> [1] - https://github.com/clopez/dellfan
> [2] - https://github.com/clopez/dellfan/blob/master/dellfan.c#L64

Pali, I played around with your patch a bit on my Vostro V131 (BIOS A04)
and the results are similar to Gabriele's:

* I can write values 1 and 2 to pwm{1,2}_enable, which causes
i8k_enable_fan_auto_mode() to return 0, but the desired speed set
using pwm{1,2} is quickly overridden by the BIOS, no matter which
thermal control mode is set,

* trying to set the BIOS thermal control mode to the same value it was
already set to causes i8k_enable_fan_auto_mode() to return -22:

# echo 1 > /sys/class/hwmon/hwmon1/pwm1_enable
# echo 1 > /sys/class/hwmon/hwmon1/pwm1_enable
bash: echo: write error: Input/output error
# echo 2 > /sys/class/hwmon/hwmon1/pwm2_enable
# echo 2 > /sys/class/hwmon/hwmon1/pwm2_enable
bash: echo: write error: Input/output error
# echo 1 > /sys/class/hwmon/hwmon1/pwm1_enable
# echo 2 > /sys/class/hwmon/hwmon1/pwm2_enable
#

* I tried changing I8K_SMM_MANUAL_FAN and I8K_SMM_AUTO_FAN to 0x30a3
and 0x31a3, respectively (according to [2]), but it hasn't changed
anything, i.e. BIOS is taking over shortly after any value is
written to pwm{1,2}.

--
Best regards,
MichaÅ KÄpieÅ