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.
next prev 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