Hi Matthew: Matthew Garrett wrote: > On Mon, May 18, 2009 at 03:12:22PM -0500, Mario Limonciello wrote: > >> Dell BT devices need to be removed from the bus and reinserted >> so that userspace udev rules can transition the devices into the >> proper mode after S3 or S4. >> > > This sounds wrong. What kind of reinitialisation are you talking about? > Dell BT adapters will startup in a HID mode. In HID mode two logical USB devices are exposed, a mouse and a keyboard. If properly set, the BT radio will work with pre-paired keyboards or mice in this mode. This is useful for things like BIOS control via a BT keyboard. A command is sent to one of the descriptors of the mouse to cause the device to transition to HCI mode. When transitioned to HCI mode, a radio device is exposed allowing it to pair and operate with any BT device. Here's what the utility looks like that ships with bluez: http://git.kernel.org/?p=bluetooth/bluez.git;a=blob;f=tools/hid2hci.c;h=11d707fd76e940b884c9078907ab1504cd7350d4;hb=HEAD Look at the switch_dell method to see how it works. Currently, this is implemented via a set of udev rules shipped with bluez that match the Dell device and transition it to HCI mode. Here's the udev rule that matches: ACTION=="add", ENV{ID_VENDOR}=="413c", ENV{ID_CLASS}=="mouse", ATTRS{bmAttributes}=="e0", KERNEL=="mouse*", RUN+="/usr/sbin/hid2hci --method dell -v $env{ID_VENDOR} -p $env{ID_MODEL} --mode hci" When coming out of S3 if the killswitch isn't activated, the logical USB mouse isn't coldplugged again preventing the udev rule from being matched upon. You can manually run hid2hci and the device will switch modes. -- Mario Limonciello *Dell | Linux Engineering* mario_limonciello@xxxxxxxx
Attachment:
signature.asc
Description: OpenPGP digital signature