Re: [PATCH 5/5] Export the temperatures via hwmon

From: Matt Helsley
Date: Thu Aug 07 2014 - 17:19:52 EST


On Thu, Aug 07, 2014 at 07:50:00PM +0200, Goffredo Baroncelli wrote:
> On 08/07/2014 09:36 AM, Guenter Roeck wrote:
> > On 08/06/2014 11:52 PM, Jean Delvare wrote:
> >> Hi Guenter,
> >>
> >> On Wed, 06 Aug 2014 23:20:32 -0700, Guenter Roeck wrote:
> >>> Patch 4/5 is "Return the fan speed via sysfs: /sys/devices/temperature/fan_level".
> >>>
> >>> So you are saying that returning the fan speed with a non-hwmon attribute works,
> >>> but returning it with a hwmon attribute doesn't ? Not really sure if I understand
> >>> your logic. Either fan_level doesn't return the fan speed (or an abstraction of it),
> >>> or something in your line of argument is inconsistent.
> >>
> >> fan_level is a fan speed _control_ value, like pwm1. It is not a fan
> >> speed monitoring value.
> >>
> > Ah, ok. The patch description doesn't seem to match, though.
> > And why not export it as pwm1, if that is what it is ?
> >
> > Guenter
> >
> >
>
> the exported fan_level value is a coefficient near proportional to the speed [*];
> so it is not the speed nor the pwm.

> I tried to read the pwm/speed value, but when I did it, every 5/6 seconds the
> fan seemed to stop for 1s, then the speed raised.... So I stopped the test.
>
> These patches (the first two) solved a real issue: with the last kernels this
> driver doesn't work at all, and the fan go to maximum speed (very loud !)
> The other three are an improvement.
>
> When (if) these patches will be accepted I want to write another solution,
> but definitely not now. And even if it would work for me, it is very likely
> that will be accepted because nobody is able to test it on all hardware.
>
> BR
> G.Baroncelli
>
> [*] It is a bit more complicated: basically the adm1030 controls the fan speed
> on the basis of an external temperature sensor (the "case" sensor).
> Higher is this temperature higher is the fan speed.
> The pwm of the fan is computed on the basis of the following value:
> - min_temp
> - range_temp -> max_temp=min_temp+range_temp
> - min_pwm_value
> and of course
> - "case" sensor
>
>
> The fan_level is an index computed on the basis of the "cpu" temperature (
> which is different from the "case" temperature referred above). This
> temperature is used to update the min_temp above.
>
> So the fan speed id computed on the basis of two external sensor:
> - cpu sensor
> - case sensor.
>
> To complicate further the things, the range_temp is set to an undocumented
> value: this parameter is set via a register (0x25, bit 2:0), which accepted
> values between 0x00 and 0x04. However it is set to 0x07
>
> See http://lxr.free-electrons.com/source/drivers/macintosh/therm_windtunnel.c#L153
> and the adm1030 datasheet.
>
> I am reluctant to change this thing because this driver is for an obsolete
> platform (apple stopped the powermac in 2004/2005), and bad or good I have to
> suppose that it works. Moreover I am not in the position to test the changes
> outside my hardware (1 powermac DP@1Ghz mdd)

This seems like a valuable explanation of the meaning of the fan_level
values. When I read the code I was wondering what the magic number "11" was
doing for instance and this helps clear it up a little. It's a nit perhaps
but some of this information might be useful in the commit message for that
patch, the code, or both.

Also, I think the patches from "Bryan" should have a "From:" attribution line
at the start of the commit message (See Documentation/SubmittingPatches).

Cheers,
-Matt Helsley
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/