On 09/10/2010 02:17 AM, Mario 'BitKoenig' Holbe wrote: > On Fri, Sep 03, 2010 at 05:06:09PM +0800, Ike Panhc wrote: >> I look at the DSDT again and again but unfortunately can not find anything >> may cause the bluetooth device initial failed. BTEN looks like the switch >> for EC to turn on/off bluetooth, BTST records the status of BTEN and BTPS >> means bluetooth present. But no idea why initial failed after BTEN=1 > > Is there some way to trace ACPI calls under Windows (XP Home)? > I could then have a look at what happens when I Fn-F5 BT off. > I heard that we can install the driver in virtual machine for study its behavior. But dont know the detail - it means we need to have a pseudo device there. Sorry, I do not know much about Windows. >> So I fall back to your suggestion. Have a module parameter to tell module >> not to register rfkill for bluetooth. >> I prepare the driver and please spend some time testing. Driver is at >> http://kernel.ubuntu.com/git?p=ikepanhc/ideapad-laptop.git;a=blob;f=drivers/platform/x86/ideapad-laptop.c;h=c4cf46a363f3f72d6db5339ec326d282d7e58183;hb=26a58948693b7d25960299a8025e569e68f28937 >> and you may use "insmod ideapad-laptop.ko no_bt_rfkill=1" for your S12. > > Hmmm, with this version and no_bt_rfkill=1 I run into the same problem > as without the ideapad module: If I switch BT off in Windows and reboot > to Linux, the device remains invisible and I have no chance to switch it > back on again :/ The no_bt_rfkill is a stopgap for dual OS user. when BT is default on, user still have the BT sw rfkill registered as hci0. when BT is defualt off, user can re-insert module with no_bt_rfkill=0. > I guess this is because the initial device activation does currently > only happen in ideapad_register_rfkill() via rfkill_init_sw_state() > which is not called if no_bt_rfkill=1. > A manual call to ideapad_rfk_set() (or ideapad_sync_rfk_state()?) in the > no_bt_rfkill=1 case would very likely solve this, but I don't know how > to provide this call with the correct arguments. Sorry I do not get the point of a manual call. Could you explain more on this? ideapad_rfk_set is called when user update /sys/class/rfkill/rfkill?/state and ideapad_sync_rfk_state is called when user touch the hw rfkill switch. > > > regards > Mario -- To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html