The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Peter Feuerer <pfe@piie.net>
To: Borislav Petkov <petkovbb@googlemail.com>
Cc: Andreas Mohr <andi@lisas.de>, Ed Tomlinson <edt@aei.ca>,
	akpm@linux-foundation.org, Len Brown <len.brown@intel.com>,
	Matthew Garrett <mjg59@srcf.ucam.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] Request driver inclusion - acer aspire one fan control
Date: Thu, 18 Jun 2009 15:31:35 +0200	[thread overview]
Message-ID: <cone.1245331895.30957.31537.1000@arca> (raw)
In-Reply-To: 9ea470500906180545j5e1a78f7qcb887ad843b489f3@mail.gmail.com

Hi,

Borislav Petkov writes:

> Hi,
> 
> On Thu, Jun 18, 2009 at 1:49 PM, Peter Feuerer<peter@piie.net> wrote:
>>>>>> Actually I think pre_suspend_kernelmode is needed, so it won't be
>>>>>> dropped.
>>>>>
>>>>> and it is needed, because...?
>>>>
>>>> It's needed because we do now a clean revert to bios mode before we
>>>> suspend.
>>>> And after resume we have to switch to kernelmode again, if the driver was
>>>> in
>>>> kernelmode before suspend. So we need to keep track of in what state the
>>>> driver was before suspending. That's what's this variable is for.
>>>
>>> You've got that state in the 'kernelmode' variable. See full comment:
>>> http://marc.info/?l=linux-kernel&m=124482114200865
>>
>> We are talking about patch 0.5.9 and not 0.5.8, are we?
>> http://patchwork.kernel.org/patch/30733/mbox/
>>
>> have a look at at line 543:
>> +       /* remember previous setting */
>> +       pre_suspend_kernelmode = kernelmode;
>> +
>> +       if (kernelmode) {
>> +               acerhdf_revert_to_bios_mode();
>> +               if (acerhdf_thz_dev)
>> +                       thermal_zone_device_update(acerhdf_thz_dev);
>> +       }
> 
> ok, this starts to look quite a bit overengineered for no reason. First,
> acerhdf_revert_to_bios_mode() sets the fan to auto. Then, you've added
> a thermal_zone_device_update() call in there which does set the fan to
> auto indirectly _again_. And we end up with _three_ variables which
> represent only _one_ state. Here's what it should do:

You are partly right, setting the fan to auto in 
"acerhdf_revert_to_bios_mode" can be removed, as this is done by the thermal 
layer when calling "acerhdf_set_cur_state" with disable_kernelmode=1.
But besides that I think it is a clean way. 
This way we _completely_ disable the thermal polling before going suspend 
and ensure the thermal layer doesn't handle the fan anymore. When we resume 
we let the thermal layer take over the fan again. In my opinion this is much 
cleaner than just switching the fan to auto without keeping the polling of 
the thermal layer in mind.
The big problem with the polling is, that you don't know when the next 
thermal polling shot arrives. Is it after acerhdf_suspend was called, or 
after system-resume but before acerhdf_resume was called, or after 
acerhdf_resume was called… You can't know! That's why in my opinion 
completely disabling our kernelmode is the only clean solution.

--peter

P.S. I built the official 2.6.30 release (because current git is freezing 
all the time), patched it with acerhdf 0.5.9 and was testing suspend/resume 
about 40 times now. Was always hitting the suspend button while working ;). 
I wasn't able to reproduce the "unexpected fanstate" issue, <=0.5.8 had.

  parent reply	other threads:[~2009-06-18 13:39 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-03  9:10 [PATCH] Request driver inclusion - acer aspire one fan control Peter Feuerer
2009-06-03 12:14 ` Borislav Petkov
2009-06-03 21:24   ` Peter Feuerer
2009-06-04  8:02     ` Andrew Morton
2009-06-04 10:38       ` Borislav Petkov
2009-06-04 19:11         ` Peter Feuerer
2009-06-07 12:03           ` Andreas Mohr
2009-06-12 14:37           ` [PATCH/RFC] Acer Aspire One fan control resume fix, improvements Andreas Mohr
2009-06-12 15:37             ` Borislav Petkov
2009-06-15 17:15               ` Peter Feuerer
2009-06-16  6:01                 ` Borislav Petkov
2009-06-16 11:47                   ` Ed Tomlinson
2009-06-16 20:57                     ` Andreas Mohr
2009-06-16 22:14                       ` [PATCH] Request driver inclusion - acer aspire one fan control Peter Feuerer
2009-06-16 22:34                         ` Randy Dunlap
2009-06-17 12:20                         ` Andreas Mohr
2009-06-18  7:10                           ` Peter Feuerer
2009-06-18 10:29                             ` Borislav Petkov
2009-06-18 10:55                               ` Peter Feuerer
2009-06-18 11:42                                 ` Borislav Petkov
2009-06-18 11:49                                   ` Peter Feuerer
2009-06-18 12:45                                     ` Borislav Petkov
2009-06-18 13:25                                       ` Andreas Mohr
2009-06-19 17:01                                         ` [PATCH v0.5.10] " Peter Feuerer
2009-06-18 13:31                                       ` Peter Feuerer [this message]
2009-06-18 13:54                                         ` [PATCH] " Andreas Mohr
2009-06-18 14:05                                           ` 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.1245331895.30957.31537.1000@arca \
    --to=pfe@piie.net \
    --cc=akpm@linux-foundation.org \
    --cc=andi@lisas.de \
    --cc=edt@aei.ca \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=petkovbb@googlemail.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