From: Thomas Renninger <trenn-l3A5Bk7waGM@public.gmane.org>
To: "Li, Shaohua" <shaohua.li-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Karol Kozimor <sziwan-DETuoxkZsSqrDJvtcaxF/A@public.gmane.org>,
Paulo Vitor Magacho da Silva
<pvmagacho78-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org>,
acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: ACPI key events handling
Date: Thu, 10 Mar 2005 17:28:03 +0100 [thread overview]
Message-ID: <42307593.8040501@suse.de> (raw)
In-Reply-To: <16A54BF5D6E14E4D916CE26C9AD30575015B5180-4yWAQGcml66iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
Li, Shaohua wrote:
>How about below patch? It fixes current ec address space handler bugs.
>
>Thanks,
>Shaohua
>
>
>diff -puN drivers/acpi/ec.c~ec_addr_space_handler drivers/acpi/ec.c
>--- 2.5/drivers/acpi/ec.c~ec_addr_space_handler 2005-03-08
>09:19:05.228720200 +0800
>+++ 2.5-root/drivers/acpi/ec.c 2005-03-08 10:35:54.130060696 +0800
>@@ -441,7 +441,7 @@ acpi_ec_space_handler (
> {
> int result = 0;
> struct acpi_ec *ec = NULL;
>- u32 temp = 0;
>+ u32 temp = *value;
> acpi_integer f_v = 0;
> int i = 0;
>
>@@ -462,10 +462,9 @@ next_byte:
> switch (function) {
> case ACPI_READ:
> result = acpi_ec_read(ec, (u8) address, &temp);
>- *value = (acpi_integer) temp;
> break;
> case ACPI_WRITE:
>- result = acpi_ec_write(ec, (u8) address, (u8) *value);
>+ result = acpi_ec_write(ec, (u8) address, (u8) temp);
> break;
> default:
> result = -EINVAL;
>@@ -474,19 +473,18 @@ next_byte:
> }
>
> bit_width -= 8;
>- if(bit_width){
>-
>+ if (bit_width){
> if(function == ACPI_READ)
>- f_v |= (acpi_integer) (*value) << 8*i;
>+ f_v |= temp << 8 * i;
> if(function == ACPI_WRITE)
>- (*value) >>=8;
>+ temp >>= 8;
> i++;
>
>
So the actual fix is this?
>+ (u8)address ++;
>
>
I saw it some days ago.
However this only fixes something if you see:
*acpi_ec_space_handler: bit_width should be 8*
messages in your syslog.
Could you delete this message as well, please?
I have a machine here having this message in syslog
every second...
I didn't try the keys, but I think they work as expected.
I wonder whether u64 temp should be used, acpi_integer could be u64
and bit_width (QWordAcc) could be 64 bit?
> goto next_byte;
> }
>
>-
> if(function == ACPI_READ){
>- f_v |= (acpi_integer) (*value) << 8*i;
>+ f_v |= temp << 8 * i;
> *value = f_v;
> }
>
>@@ -505,8 +503,6 @@ out:
> default:
> return_VALUE(AE_OK);
> }
>-
>-
> }
>
>
>
>>-----Original Message-----
>>From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
>>admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Karol Kozimor
>>Sent: Thursday, March 10, 2005 4:50 PM
>>To: Paulo Vitor Magacho da Silva
>>Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>>Subject: Re: [ACPI] ACPI key events handling
>>
>>Thus wrote Paulo Vitor Magacho da Silva:
>>
>>
>>> I have an ACER 163lmi laptop and I am having problem with some of
>>>
>>>
>the
>
>
>>Fn
>>
>>
>>>keys. I don't know if this is related to ACPI or not.
>>> The problem is that when I press some the Fn keys, like the sleep
>>>
>>>
>>button
>>
>>
>>>(Fn+F4), and I look at the /proc/acpi/event, sometimes the key works
>>>sometimes it doesn't. I did also the check of the Fn keys with the
>>>
>>>
>acerhk
>
>
>>>driver. My laptop has the mail, internet, p1, p2, wireless, buttons.
>>>
>>>
>And
>
>
>>>when I press those buttons, sometimes I get the correct reading from
>>>
>>>
>the
>
>
>>>acerhk driver, sometimes when I press the mail buttons it reads back
>>>
>>>
>the
>
>
>>>wireless, or any other key, and sometimes it just reads garbage.
>>>
>>>
>>Sounds like another instance of
>>http://bugzilla.kernel.org/show_bug.cgi?id=4124
>>
>>Best regards,
>>
>>
>>
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
next prev parent reply other threads:[~2005-03-10 16:28 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-10 8:55 ACPI key events handling Li, Shaohua
[not found] ` <16A54BF5D6E14E4D916CE26C9AD30575015B5180-4yWAQGcml66iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2005-03-10 16:28 ` Thomas Renninger [this message]
[not found] ` <42307593.8040501-l3A5Bk7waGM@public.gmane.org>
2005-03-11 0:48 ` Li Shaohua
2005-03-11 2:23 ` [PATCH] ACPI EC address space handler - " Li Shaohua
[not found] ` <1110507818.3692.4.camel-U5EdaLXB8smDugQYiPIPGdh3ngVCH38I@public.gmane.org>
2005-03-18 18:40 ` Thomas Renninger
2005-03-10 22:44 ` Paulo Vitor Magacho da Silva
-- strict thread matches above, loose matches on Subject: below --
2005-03-11 8:47 Yu, Luming
2005-03-14 23:40 ` Paulo Vitor Magacho da Silva
2005-03-08 18:55 Paulo Vitor Magacho da Silva
[not found] ` <BAY1-F15F671E407E4F476D2C957A8500-MsuGFMq8XAE@public.gmane.org>
2005-03-10 8:49 ` Karol Kozimor
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=42307593.8040501@suse.de \
--to=trenn-l3a5bk7wagm@public.gmane.org \
--cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=pvmagacho78-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org \
--cc=shaohua.li-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=sziwan-DETuoxkZsSqrDJvtcaxF/A@public.gmane.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.