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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/