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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 1 Jul 2009, Matthew Garrett wrote:

> On Wed, Jul 01, 2009 at 03:13:33PM -0700, Marcel Holtmann wrote:
> > Hi Matthew,
> > > I disliked this for a couple of reasons. The first is that it forces an 
> > > rfkill even on hardware that doens't have this behaviour. The second is 
> > > that it's working around a quirk on hardware that this driver really 
> > > isn't reponsible for.
> > 
> > I don't agree with how the patch is done, but in theory it is what
> > RFKILL is all about (after the re-write). However it has to be hardkill
> > and not a softkill. The softkill is a userspace decision while the
> > hardkill comes from actually hardware or firmware in this case.
> > 
> > Seems the Dell hardware/firmware is kinda stupid and inconsistent here
> > and I have no problem solution. However adding a special HID driver with
> > this quirk might be better anyway.
> 
> I'm really still not quite clear on what the issue here is. At boot, 
> there are hid devices that need to be quirked into hci mode. Over 
> suspend these devices return to their original state. So something needs 
> to be done to quirk them back on resume. Why is this a kernel issue at 
> all?

I believe the original problem was this: The HCI activation is done in
userspace, triggered by HID device detection.  After suspend the HCI
device is gone but the HID devices remain, so there's nothing to tell
userspace to reactivate the HCI.

> > At boot, the top level device exposes two virtual HID devices.  A
> > userspace utility prods one of the HID devices and then the top level
> > device exposes an HCI device.  Upon S3/resume, a reset-resume happens,
> > and the HCI device is gone.  The system thinks that they are in the same
> > state after S3 (with the exception of the missing HCI device) so a UDEV
> > ADD or CHANGE event doesn't happen.
>
> Well, since the state has changed, that sounds like a shortcoming in the
> USB stack.

It's hard to tell exactly what's going on from Mario's description.  
IIUC, after resume the system knows that the HCI device is gone.  It's
the HID devices that are in the same state as before.

A dmesg log including boot and a suspend-resume cycle, from a kernel
with CONFIG_USB_DEBUG enabled, would help clarify the situation.

Alan Stern


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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux