[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201412211015.28895@pali>
Date: Sun, 21 Dec 2014 10:15:28 +0100
From: Pali Rohár <pali.rohar@...il.com>
To: Guenter Roeck <linux@...ck-us.net>
Cc: Arnd Bergmann <arnd@...db.de>,
"Greg Kroah-Hartman" <gregkh@...uxfoundation.org>,
linux-kernel@...r.kernel.org, Valdis.Kletnieks@...edu,
Steven Honeyman <stevenhoneyman@...il.com>,
Jean Delvare <jdelvare@...e.de>,
Gabriele Mazzotta <gabriele.mzt@...il.com>,
Jochen Eisinger <jochen@...guin-breeder.org>
Subject: Re: [PATCH v2 1/2] i8k: Autodetect maximal fan speed and fan RPM multiplier
On Saturday 20 December 2014 20:02:31 Guenter Roeck wrote:
> > + for (fan = 0; fan < ARRAY_SIZE(i8k_fan_mult); ++fan) {
> > + i8k_fan_mult[fan] = I8K_FAN_DEFAULT_MULT;
> > + if (i8k_get_fan_speed(fan) > I8K_FAN_MAX_RPM) {
> > + i8k_fan_mult[fan] = 1;
> > + continue;
> > + }
>
> Another note: On one of my systems, reading the current fan
> speed literally halts the entire system for a second or two.
> Given this, is the above really necessary ? It might be
> better to just try to use the nominal fan speeds and only
> read the actual fan speed if that doesn't work.
>
Ok. I added fallback to i8k_get_fan_speed() only if function
i8k_get_fan_nominal_speed() failed.
> > + for (val = 0; val < 256; ++val) {
> > + ret = i8k_get_fan_nominal_speed(fan, val);
> > + if (ret > I8K_FAN_MAX_RPM) {
> > + i8k_fan_mult[fan] = 1;
> > + break;
> > + } else if (ret < 0) {
> > + break;
> > + }
> > + }
>
> I wonder if it would help to detect the maximum fan speed
> first. Once that is known, it should be possible to just read
> the nominal fan speed once, for the known maximum speed. With
> this, the 'val' loop here would be unnecessary.
>
Right, good point.
--
Pali Rohár
pali.rohar@...il.com
Download attachment "signature.asc " of type "application/pgp-signature" (199 bytes)
Powered by blists - more mailing lists