> Date: Tue, 3 May 2016 21:20:55 +0200
> From: Marcus Glocker <[email protected]>
> 
> On Mon, Apr 18, 2016 at 10:31:27AM +0200, Martin Pieuchot wrote:
> 
> > On 18/04/16(Mon) 00:22, Marcus Glocker wrote:
> > > On Sun, Apr 17, 2016 at 11:33:18PM +0200, Olivier Cherrier wrote:
> > > 
> > > > With this diff, the fans go at their maximun speed and stay like that:
> > > >         $ sysctl hw.sensors
> > > >         hw.sensors.smu0.temp0=31.75 degC (CPU T-Diode)
> > > >         hw.sensors.smu0.fan0=4018 RPM (System Fan)
> > > >         hw.sensors.smu0.fan1=4018 RPM (CPU fan)
> > > >         hw.sensors.smu0.fan2=4018 RPM (Hard Drive)
> > > >         hw.sensors.smu0.volt0=11.88 VDC (CPU Voltage)
> > > >         hw.sensors.smu0.current0=0.59 A (CPU Current)
> > > >         hw.sensors.lmtemp0.temp0=31.00 degC
> > > > 
> > > > In this version (the patch you sent), nothing is responsible of setting 
> > > > the
> > > > fan speeds according to the temp; isn't it ?
> > > 
> > > Yes, I was just looking after adjusting the setting of the initial fan
> > > speed to something more silent than currently :-)  The fan control based
> > > on the temperature would be the next step, like you and mpi@ already
> > > provided some diffs.  I'll try to test them soon as well.
> > > 
> > > On your machine there is no average value at all.  Just min-value and
> > > max-value.  If the average value can't be figured out I personally would
> > > prefer trying to set the initial fan speed to min-value then.
> > 
> > Looking at all the G5 device-trees I found, the value of "unmanage-value"
> > always match the "max-value" of the same node.  So I'd suggest using
> > that.
> > 
> > Note that there's some code in FreeBSD to do proper sensor management
> > via i2c, porting that might be a more complete solution.
> 
> I agree there should be a solution which manages the fan speed like
> the FreeBSD driver does.  I had a quick look at it, but it doesn't
> seem so easy to port since it uses e.g. a thermal framework (running
> as a kthread) which we have not in place yet.
> 
> For the time beeing can we at least also take care about those machines
> which have the 'safe-value' set?  This diff doesn't change the current
> behaviour but fixes at least the initial fan speed of those machines.

Yeah,I think that's fine.

> Index: smu.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/macppc/dev/smu.c,v
> retrieving revision 1.27
> diff -u -p -u -p -r1.27 smu.c
> --- smu.c     4 Jun 2015 18:01:44 -0000       1.27
> +++ smu.c     3 May 2016 17:32:23 -0000
> @@ -280,9 +280,12 @@ smu_attach(struct device *parent, struct
>               if (OF_getprop(node, "max-value", &val, sizeof val) <= 0)
>                       val = 0xffff;
>               fan->max_rpm = val;
> -             if (OF_getprop(node, "unmanage-value", &val, sizeof val) <= 0)
> -                     val = fan->max_rpm;
> -             fan->unmanaged_rpm = val;
> +             if (OF_getprop(node, "unmanage-value", &val, sizeof val) > 0)
> +                     fan->unmanaged_rpm = val;
> +             else if (OF_getprop(node, "safe-value", &val, sizeof val) > 0)
> +                     fan->unmanaged_rpm = val;
> +             else
> +                     fan->unmanaged_rpm = fan->max_rpm;
>  
>               if (OF_getprop(node, "location", loc, sizeof loc) <= 0)
>                       strlcpy(loc, "Unknown", sizeof loc);
> 
> 

Reply via email to