On Mon, 5 Apr 2010, Dominik Brodowski wrote: > > The logic for autosuspend is more or less contained in > > drivers/usb/core/driver.c:autosuspend_check(). It gets called from > > usb_autopm_do_interface(), called by usb_autopm_put_interface(). > > (That's in 2.6.33; in 2.6.34-rc the arrangement is a little different > > but not too much.) If you add some debugging statements to those > > routines you ought to be able to figure out what's going on. > > usb_autopm_put_interface() gets called, the bus rt_idle function is called, > which does nothing on interfaces: > > [ 470.809499] btusb 7-1:1.0: calling bus rt_idle > [ 470.809507] btusb 7-1:1.0: usb_autopm_put_interface: cnt 0 -> 0 > > rt_suspending usb 7-1 is never attempted, probably because it thinks > children are busy. Setting the interface's ignore_children to true doesn't > help. The device tree looks like this: > Any ideas? Have you tried adding debugging statements to autosuspend_check() to see what it's doing? 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