The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Peter Feuerer <peter@piie.net>
To: petkovbb@gmail.com
Cc: LKML <linux-kernel@vger.kernel.org>,
	lenb@kernel.org, Matthew Garrett <mjg59@srcf.ucam.org>,
	Maxim Levitsky <maximlevitsky@gmail.com>
Subject: Re: [PATCH] Acer Aspire One Fan Control
Date: Wed, 06 May 2009 21:41:14 +0200	[thread overview]
Message-ID: <cone.1241638874.190271.13804.1000@onepiie> (raw)
In-Reply-To: 20090503184617.GA3555@liondog.tnic

Hi Boris,

thank you very much! A modified patch with your suggestions will follow 
as soon as I tested it. Just some things I would like to discuss:

Borislav Petkov writes:
>> +/* change current fan state - is overwritten when running in kernel mode */
>> +static int set_cur_state(struct thermal_cooling_device *cdev,
>> +		unsigned long state)
>> +{
>> +	int old_state;
>> +
>> +	/* let the thermal layer disable kernelmode. This ensures that
>> +	 * the thermal layer doesn't switch off the fan again */
>> +	if (disable_kernelmode) {
>> +		acerhdf_change_fanstate(ACERHDF_FAN_AUTO);
>> +		disable_kernelmode = 0;
>> +		kernelmode = 0;
>> +		return 0;
>> +	}
>> +
>> +	if (!kernelmode) {
>> +		acerhdf_change_fanstate(state);
>> +		return 0;
>> +	}
> 
> why are we changing the fan state if kernelmode is off? If I'm not
> mistaken, the BIOS should be controlling the fan here.

The user can control the fan in userspace (by e.g. echoing 0 to the 
/sys/class/thermal.../cur_state file) then this function is called. This is 
useful if somebody wants to program an userspace tool to handle the 
temperature and the fan.

>> +	old_state = acerhdf_get_fanstate();
>> +
>> +	/* if reading the fan's state returns unexpected value, there's a
>> +	 * problem with the ec register. -> let the BIOS take control of
>> +	 * the fan to prevent hardware damage */
>> +	if (old_state != fanstate) {
> 
> you should be checking 
> 
> 	old_state == ACERHDF_ERROR
> 
> here instead.

Comparing to fanstate is better. It implys the ACERHDF_ERROR check, as 
fanstate can only be ACERHDF_FAN_AUTO or ACERHDF_FAN_OFF. And on the other 
Hand there will be thrown an error too, if the ec register contains an 
unexpected value. So it is more failsafe this way.

What do you think will be the next steps to get the kernel into mainline? 
Matthew said I should CC Len Brown, as he is responsible to include 
the module. But Len didn't write anything yet :-(

kind regards,
--peter

  reply	other threads:[~2009-05-06 19:41 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-25  1:45 [PATCH] Acer Aspire One Fan Control Peter Feuerer
2009-04-25  8:42 ` Peter Feuerer
2009-04-26 15:31   ` Matthew Garrett
2009-04-27 18:25     ` Peter Feuerer
2009-04-26 17:29   ` Borislav Petkov
2009-04-27 18:57     ` Peter Feuerer
2009-04-28  7:25       ` Borislav Petkov
2009-04-28 10:04         ` Maxim Levitsky
2009-04-28 20:17           ` Peter Feuerer
2009-04-28 20:31             ` Maxim Levitsky
2009-05-02 21:21               ` Peter Feuerer
2009-05-03 18:46                 ` Borislav Petkov
2009-05-06 19:41                   ` Peter Feuerer [this message]
2009-05-06 22:17                   ` Peter Feuerer
2009-05-09 17:14                     ` Borislav Petkov
2009-05-11 18:05                       ` Peter Feuerer
2009-05-12  6:02                         ` Borislav Petkov
2009-05-18 18:04                           ` Peter Feuerer
2009-05-18 20:20                             ` Joe Perches
2009-05-19  6:47                               ` Peter Feuerer
2009-05-19  7:06                                 ` Joe Perches
2009-05-24 19:22                             ` Borislav Petkov
2009-06-01 14:12                               ` Peter Feuerer
2009-06-03  7:35                                 ` Borislav Petkov
2009-06-03  8:10                                   ` Peter Feuerer
2009-06-03 10:52                                     ` Borislav Petkov
2009-06-03 11:29                                       ` Peter Feuerer
2009-06-03 13:07                                       ` Peter Feuerer
2009-06-03 14:49                                         ` Borislav Petkov
2009-06-01 14:18                               ` Peter Feuerer
2009-06-03  7:39                                 ` Borislav Petkov
2009-06-03  7:52                                   ` Peter Feuerer
2009-06-03  8:00                                     ` Borislav Petkov
2009-05-19 20:30                         ` Pavel Machek
2009-05-22 11:50                           ` Borislav Petkov
2009-05-22 14:09                             ` Pavel Machek
2009-05-22 14:53                               ` Borislav Petkov
2009-05-24 11:13                                 ` Peter Feuerer
2009-05-22 16:10                               ` [PATCH] Acer Aspire One Fan Contro Andreas Mohr
2009-05-22 18:24                                 ` Borislav Petkov
2009-05-22 19:35                                   ` Andreas Mohr
2009-04-26 22:20   ` [PATCH] Acer Aspire One Fan Control Joe Perches
2009-04-27 19:03     ` Peter Feuerer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cone.1241638874.190271.13804.1000@onepiie \
    --to=peter@piie.net \
    --cc=lenb@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maximlevitsky@gmail.com \
    --cc=mjg59@srcf.ucam.org \
    --cc=petkovbb@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox