* RE: ACPI key events handling
@ 2005-03-10 8:55 Li, Shaohua
[not found] ` <16A54BF5D6E14E4D916CE26C9AD30575015B5180-4yWAQGcml66iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 6+ messages in thread
From: Li, Shaohua @ 2005-03-10 8:55 UTC (permalink / raw)
To: Karol Kozimor, Paulo Vitor Magacho da Silva
Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
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++;
+ (u8)address ++;
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,
>
>--
>Karol 'sziwan' Kozimor
>sziwan-DETuoxkZsSqrDJvtcaxF/A@public.gmane.org
>
>
>-------------------------------------------------------
>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
>_______________________________________________
>Acpi-devel mailing list
>Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>https://lists.sourceforge.net/lists/listinfo/acpi-devel
-------------------------------------------------------
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_ide95&alloc_id\x14396&op=click
^ permalink raw reply [flat|nested] 6+ messages in thread[parent not found: <16A54BF5D6E14E4D916CE26C9AD30575015B5180-4yWAQGcml66iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>]
* Re: ACPI key events handling [not found] ` <16A54BF5D6E14E4D916CE26C9AD30575015B5180-4yWAQGcml66iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org> @ 2005-03-10 16:28 ` Thomas Renninger [not found] ` <42307593.8040501-l3A5Bk7waGM@public.gmane.org> 2005-03-10 22:44 ` Paulo Vitor Magacho da Silva 1 sibling, 1 reply; 6+ messages in thread From: Thomas Renninger @ 2005-03-10 16:28 UTC (permalink / raw) To: Li, Shaohua Cc: Karol Kozimor, Paulo Vitor Magacho da Silva, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <42307593.8040501-l3A5Bk7waGM@public.gmane.org>]
* Re: ACPI key events handling [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 1 sibling, 0 replies; 6+ messages in thread From: Li Shaohua @ 2005-03-11 0:48 UTC (permalink / raw) To: Thomas Renninger; +Cc: Karol Kozimor, Paulo Vitor Magacho da Silva, ACPI-DEV On Fri, 2005-03-11 at 00:28, Thomas Renninger wrote: > 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? It also fixes the 'changing *value when write', since we possibly use the value in some places later. Below line. - (*value) >>=8; > > >+ (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. Yep. > Could you delete this message as well, please? I'm ok for it. Maybe the warning should be under 'if (acpi_strict)'. > 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? Yeah, looks reasonable to me. I'll update the patch. > > > 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] ACPI EC address space handler - Re: ACPI key events handling [not found] ` <42307593.8040501-l3A5Bk7waGM@public.gmane.org> 2005-03-11 0:48 ` Li Shaohua @ 2005-03-11 2:23 ` Li Shaohua [not found] ` <1110507818.3692.4.camel-U5EdaLXB8smDugQYiPIPGdh3ngVCH38I@public.gmane.org> 1 sibling, 1 reply; 6+ messages in thread From: Li Shaohua @ 2005-03-11 2:23 UTC (permalink / raw) To: Thomas Renninger; +Cc: Karol Kozimor, Paulo Vitor Magacho da Silva, ACPI-DEV This is an updated patch. It fixes: 1. changed *value when write 2. wrong address offset for read/write with bit width > 8 and some cleanup. Thanks, Shaohua --- 2.5-root/drivers/acpi/ec.c | 32 ++++++++++++++------------------ 1 files changed, 14 insertions(+), 18 deletions(-) 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.000000000 +0800 +++ 2.5-root/drivers/acpi/ec.c 2005-03-11 10:18:25.595072776 +0800 @@ -441,7 +441,7 @@ acpi_ec_space_handler ( { int result = 0; struct acpi_ec *ec = NULL; - u32 temp = 0; + u64 temp = *value; acpi_integer f_v = 0; int i = 0; @@ -450,10 +450,9 @@ acpi_ec_space_handler ( if ((address > 0xFF) || !value || !handler_context) return_VALUE(AE_BAD_PARAMETER); - if(bit_width != 8) { + if (bit_width != 8 && acpi_strict) { printk(KERN_WARNING PREFIX "acpi_ec_space_handler: bit_width should be 8\n"); - if (acpi_strict) - return_VALUE(AE_BAD_PARAMETER); + return_VALUE(AE_BAD_PARAMETER); } ec = (struct acpi_ec *) handler_context; @@ -461,11 +460,11 @@ acpi_ec_space_handler ( next_byte: switch (function) { case ACPI_READ: - result = acpi_ec_read(ec, (u8) address, &temp); - *value = (acpi_integer) temp; + temp = 0; + result = acpi_ec_read(ec, (u8) address, (u32 *)&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(function == ACPI_READ) - f_v |= (acpi_integer) (*value) << 8*i; - if(function == ACPI_WRITE) - (*value) >>=8; + if (bit_width) { + if (function == ACPI_READ) + f_v |= temp << 8 * i; + if (function == ACPI_WRITE) + temp >>= 8; i++; + (u8)address ++; goto next_byte; } - - if(function == ACPI_READ){ - f_v |= (acpi_integer) (*value) << 8*i; + if (function == ACPI_READ) { + f_v |= temp << 8 * i; *value = f_v; } @@ -505,8 +503,6 @@ out: default: return_VALUE(AE_OK); } - - } _ ------------------------------------------------------- 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <1110507818.3692.4.camel-U5EdaLXB8smDugQYiPIPGdh3ngVCH38I@public.gmane.org>]
* Re: [PATCH] ACPI EC address space handler - Re: ACPI key events handling [not found] ` <1110507818.3692.4.camel-U5EdaLXB8smDugQYiPIPGdh3ngVCH38I@public.gmane.org> @ 2005-03-18 18:40 ` Thomas Renninger 0 siblings, 0 replies; 6+ messages in thread From: Thomas Renninger @ 2005-03-18 18:40 UTC (permalink / raw) To: Li Shaohua; +Cc: Karol Kozimor, Paulo Vitor Magacho da Silva, ACPI-DEV Li Shaohua wrote: > This is an updated patch. > It fixes: > 1. changed *value when write > 2. wrong address offset for read/write with bit width > 8 > and some cleanup. > Sorry for answering that late. Tried out patch, but it does not solve the issue I hoped, but it will/could help on other machines. At least it does not break anything on this machine which enters the code path. Thomas > Thanks, > Shaohua > > --- > > 2.5-root/drivers/acpi/ec.c | 32 ++++++++++++++------------------ > 1 files changed, 14 insertions(+), 18 deletions(-) > > 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.000000000 +0800 > +++ 2.5-root/drivers/acpi/ec.c 2005-03-11 10:18:25.595072776 +0800 > @@ -441,7 +441,7 @@ acpi_ec_space_handler ( > { > int result = 0; > struct acpi_ec *ec = NULL; > - u32 temp = 0; > + u64 temp = *value; > acpi_integer f_v = 0; > int i = 0; > > @@ -450,10 +450,9 @@ acpi_ec_space_handler ( > if ((address > 0xFF) || !value || !handler_context) > return_VALUE(AE_BAD_PARAMETER); > > - if(bit_width != 8) { > + if (bit_width != 8 && acpi_strict) { > printk(KERN_WARNING PREFIX "acpi_ec_space_handler: bit_width should be 8\n"); > - if (acpi_strict) > - return_VALUE(AE_BAD_PARAMETER); > + return_VALUE(AE_BAD_PARAMETER); > } > > ec = (struct acpi_ec *) handler_context; > @@ -461,11 +460,11 @@ acpi_ec_space_handler ( > next_byte: > switch (function) { > case ACPI_READ: > - result = acpi_ec_read(ec, (u8) address, &temp); > - *value = (acpi_integer) temp; > + temp = 0; > + result = acpi_ec_read(ec, (u8) address, (u32 *)&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(function == ACPI_READ) > - f_v |= (acpi_integer) (*value) << 8*i; > - if(function == ACPI_WRITE) > - (*value) >>=8; > + if (bit_width) { > + if (function == ACPI_READ) > + f_v |= temp << 8 * i; > + if (function == ACPI_WRITE) > + temp >>= 8; > i++; > + (u8)address ++; > goto next_byte; > } > > - > - if(function == ACPI_READ){ > - f_v |= (acpi_integer) (*value) << 8*i; > + if (function == ACPI_READ) { > + f_v |= temp << 8 * i; > *value = f_v; > } > > @@ -505,8 +503,6 @@ out: > default: > return_VALUE(AE_OK); > } > - > - > } > ------------------------------------------------------- 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: ACPI key events handling [not found] ` <16A54BF5D6E14E4D916CE26C9AD30575015B5180-4yWAQGcml66iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org> 2005-03-10 16:28 ` Thomas Renninger @ 2005-03-10 22:44 ` Paulo Vitor Magacho da Silva 1 sibling, 0 replies; 6+ messages in thread From: Paulo Vitor Magacho da Silva @ 2005-03-10 22:44 UTC (permalink / raw) To: shaohua.li-ral2JQCrhuEAvxtiuMwx3w, sziwan-DETuoxkZsSqrDJvtcaxF/A Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Hello, I've tryed your patch, but that didn't solve the keyboard problem. But it's an ACPI problem, right ? Regards, Paulo >From: "Li, Shaohua" <shaohua.li-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> >To: "Karol Kozimor" <sziwan-DETuoxkZsSqrDJvtcaxF/A@public.gmane.org>, "Paulo Vitor Magacho da >Silva" <pvmagacho78-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org> >CC: <acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org> >Subject: RE: [ACPI] ACPI key events handling >Date: Thu, 10 Mar 2005 16:55:16 +0800 > >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++; >+ (u8)address ++; > 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, > > > >-- > >Karol 'sziwan' Kozimor > >sziwan-DETuoxkZsSqrDJvtcaxF/A@public.gmane.org > > > > > >------------------------------------------------------- > >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 > >_______________________________________________ > >Acpi-devel mailing list > >Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org > >https://lists.sourceforge.net/lists/listinfo/acpi-devel _________________________________________________________________ Chegou o que faltava: MSN Acesso Grátis. Instale Já! http://www.msn.com.br/discador ------------------------------------------------------- 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-03-18 18:40 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
[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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox