On May 5, 2010, at 2:24 PM, Alan Stern wrote: > Note that there are no debugging printk's in > usb_autopm_put_interface_no_suspend() or > usb_autopm_get_interface_no_resume(). I guess I should add some. > Anyway, you'll want to see if they are getting called. I added some tracing and they are not being called. > If that doesn't show anything then you'll need to print out the values > of all the interfaces' dev.power.usage_count fields at some strategic > spots, like in usb_autoresume_device() and usb_autosuspend_device(). I also added some debug printing to usb_autosuspend_device() immediately after the existing log message. I see pm_runtime_put_sync() return -EBUSY for the device (apparently because child_count > 0), but the usage_count for each of my interfaces is 0. May 5 15:01:30 localhost kernel: usb 3-3: __pm_runtime_idle !pm_children_suspended power.usage_count=0 power.ignore_children=0 power.child_count=1 May 5 15:01:30 localhost kernel: usb 3-3: usb_autosuspend_device: cnt 0 -> -16 May 5 15:01:30 localhost kernel: usb 3-3: usb_autosuspend_device intf 0 usage_count=0 May 5 15:01:30 localhost kernel: usb 3-3: usb_autosuspend_device intf 1 usage_count=0 It at appears that the device's child_count is incremented when usb_probe_interface() calls pm_runtime_set_active(), and is never decremented again. Rob. The information and any attached documents contained in this message may be confidential and/or legally privileged. The message is intended solely for the addressee(s). If you are not the intended recipient, you are hereby notified that any use, dissemination, or reproduction is strictly prohibited and may be unlawful. If you are not the intended recipient, please contact the sender immediately by return e-mail and destroy all copies of the original message. -- 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