From: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
To: Alexey Starikovskiy <astarikovskiy@suse.de>
Cc: linux acpi <linux-acpi@vger.kernel.org>
Subject: Re: [patch 2/2] acpi: Avoid dropping rapid hotkey events (or other GPEs) on Asus EeePC
Date: Mon, 22 Sep 2008 12:02:20 +0100 [thread overview]
Message-ID: <48D77B3C.8070103@tuffmail.co.uk> (raw)
In-Reply-To: <48D760A2.3030007@tuffmail.co.uk>
Alan Jenkins wrote:
> Alexey Starikovskiy wrote:
>
>> Hi Alan,
>> That patch is old news already...
>> There is a new shiny one appended to 9998/10724/11549...
>> Please give it a try. It does disable GPE, but for very small duration.
>>
>
> Ok. I was put off by the noise :-).
>
> I've just tested 2.6.27-rc6 with
> <http://bugzilla.kernel.org/show_bug.cgi?id=9998#c81>. It still "drops"
> some events, but now it takes longer to happen. I have to work much
> harder bashing the keys to reproduce it.
>
>
> Like before, missing an event has severe consequences. The missed event
> is buffered. When a new event occurs, only the oldest event is removed
> from the buffer. Therefore the buffer can only grow. Eventually,
> something breaks. Events stop being delivered altogether; presumably
> the buffer overflows. I confirmed that this does still happen.
>
> Remember that these are the consequences of a specific EC bug. On my
> EC, querying an event always clears SCI_EVT, even if there are more
> events pending. It is only re-raised when a new event fires.
>
>
> I'll try reading the patch. I may try capturing an EC debug log to show
> how the event is dropped, but that will take time.
>
Ok, I think I've isolated the problem to a specific change. It's our
good friend EC_FLAGS_QUERY_PENDING again.
Your new patch clears the pending flag after the query transaction has
finished. Previously, it was cleared as soon as the query command was
initiated.
I hacked it back and it works. Was there a specific reason for the change?
Regards
Alan
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 97168d4..2078cff 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -262,6 +262,8 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec, u8 command,
ec->t.rlen = rdata_len;
/* start transaction */
acpi_ec_write_cmd(ec, command);
+ if (command == ACPI_EC_COMMAND_QUERY)
+ clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
/* if we selected poll mode or failed in GPE-mode do a poll loop */
if (force_poll ||
!test_bit(EC_FLAGS_GPE_MODE, &ec->flags) ||
@@ -453,7 +455,6 @@ static int acpi_ec_query(struct acpi_ec *ec, u8 * data)
*/
result = acpi_ec_transaction(ec, ACPI_EC_COMMAND_QUERY, NULL, 0, &d, 1, 0);
- clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
if (result)
return result;
next prev parent reply other threads:[~2008-09-22 11:02 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-21 18:42 [patch 2/2] acpi: Avoid dropping rapid hotkey events (or other GPEs) on Asus EeePC Alan Jenkins
2008-09-21 19:17 ` Alexey Starikovskiy
2008-09-22 1:31 ` Zhao Yakui
2008-09-22 9:08 ` Alan Jenkins
2008-09-22 11:02 ` Alan Jenkins [this message]
2008-09-22 11:36 ` Alexey Starikovskiy
2008-09-22 11:49 ` Alexey Starikovskiy
2008-09-22 12:30 ` Alan Jenkins
2008-09-22 12:35 ` Alexey Starikovskiy
2008-09-22 13:44 ` Alan Jenkins
2008-09-22 19:36 ` Alexey Starikovskiy
2008-09-23 6:19 ` Zhao Yakui
2008-09-22 1:20 ` Zhao Yakui
-- strict thread matches above, loose matches on Subject: below --
2008-08-20 23:41 akpm
2008-08-21 12:12 ` Alexey Starikovskiy
2008-08-21 12:22 ` Andi Kleen
2008-08-21 16:18 ` Andrew Morton
2008-08-21 13:35 ` Alan Jenkins
2008-08-21 13:55 ` Alexey Starikovskiy
2008-08-21 14:42 ` Alan Jenkins
2008-08-21 16:01 ` Alexey Starikovskiy
2008-08-22 10:50 ` Alan Jenkins
2008-08-23 11:31 ` Alan Jenkins
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=48D77B3C.8070103@tuffmail.co.uk \
--to=alan-jenkins@tuffmail.co.uk \
--cc=astarikovskiy@suse.de \
--cc=linux-acpi@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.