Hi Oldřich,
Sorry bother you again, but after discuss with Johannes, he remind me
one import thing: maybe your BT HW key emit scancode and wmi event at
the same time.
於 四,2011-03-24 於 09:36 +0100,Johannes Berg 提到:
> Hi Oldřich,
>
> > > Ah. So I guess when hci0 gets registered, the acer rfkill state hasn't
> > > been updated yet, hence registering hci0 as blocked.
> >
> > No, that is not the case. I can play with `rfkill list` immediately after I
> > press the HW bluetooth switch and show that hci0 is not there (still
> > unregistered) while acer-bluetooth is already "unblocked" - I've tried to
> > run
> > `rfkill list` repeatedly manually from console immediately after I pressed
> > the
> > HW BT switch and acer-bluetooth was "unblocked" several runs while the hci0
> > wasn't there. When hci0 appeared, it was "blocked".
> >
> > As I wrote, I didn't find anything changing the global state, which is
> > actually
> > used to "block" the newly appearing hci0 (in the rfkill_sync_work method).
> > It
> > looks like the global state is just "blocked" forever - and it is "blocked"
> > as
> > a side-effect of the call to rfkill_init_sw_state (changes permanent=true)
> > and
> > then call to rfkill_register from the acer-wmi driver. I can verify this in
> > the following days (that the global state stays the same all the time).
>
> Well the global state would be changed by the KEY_BLUETOOTH input event.
>
> But like I said, it's tricky in this case because multiple events come
> from the same event source and race against each other.
>
> johannes
My Acer TravelMate 8572 is commercial notebook, it only emit wmi event
when press wifi key. But, as I remember, there have some acer consumer
notebook emit both scancode and wmi event.
New acer-wmi driver will transfer wmi event to keycode (e.g.
KEY_BLUETOOTH), if EC also emit KEY_BLUETOOTH, the rfkill-input will
receive the key events twice, that means:
global BT block (when system boot) -> BT unblock (from EC scancode) ->
BT block (from acer-wmi)
Could you please help me to check?
- If your distro still have HAL, please run:
+ lshal -l -m
+ press BT HW key 1 time
then check does HAL receive KEY_BLUETOOTH twice?
- Or, please try the following patch, it removed
KEY_BLUETOOTH support in acer-wmi. If removed it but the BT killswitch
still can reserve when you press BT HW key, that means not just
acer-wmi emit KEY_BLUETOOTH:
Thank's a lot!
Joey Lee
>From 20b3b8ba26cb37c8a44d11645c2d8d1f5344cfd7 Mon Sep 17 00:00:00 2001
From: Lee, Chun-Yi <[email protected]>
Date: Thu, 24 Mar 2011 21:07:43 +0800
Subject: [PATCH] remove KEY_BLUETOOTH for testing
Signed-off-by: Lee, Chun-Yi <[email protected]>
---
drivers/platform/x86/acer-wmi.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index c978470..554ee12 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -102,7 +102,6 @@ enum acer_wmi_event_ids {
static const struct key_entry acer_wmi_keymap[] = {
{KE_KEY, 0x01, {KEY_WLAN} }, /* WiFi */
- {KE_KEY, 0x12, {KEY_BLUETOOTH} }, /* BT */
{KE_KEY, 0x21, {KEY_PROG1} }, /* Backup */
{KE_KEY, 0x22, {KEY_PROG2} }, /* Arcade */
{KE_KEY, 0x23, {KEY_PROG3} }, /* P_Key */
--
1.6.0.2
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86"
in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html