Re: [PATCH] Explicitly disable BT radio using rfkill interface onsuspend

From: Marcel Holtmann
Date: Tue May 19 2009 - 01:14:48 EST


Hi Matthew,

> > 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.
>
> Ok. I don't think the right way to implement this is forcing dell-laptop
> to simulate an unplug. The HCI driver should be responsible for saving
> and restoring state of the device in its suspend/resume method.

what do you expect the generic USB driver to do? I don't see anything we
can do about it, if the device gets removed from underneath us.

Regards

Marcel


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/