2015-01-05 23:40 GMT+08:00 Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>: > On Mon, 5 Jan 2015, vichy wrote: > >> hi all: >> after tracing and reading kernel usb source code about run time and >> normal suspend. >> 1. how could we check the rum time suspend is work on some device? >> By plugging in devices and check whether >> /sys/bus/usb/devices/.../power/ is empty or not? > > No. That directory will never be empty. > > You can check whether runtime suspend works by enabling it: > > echo auto >/sys/bus/usb/devices/.../power/control > > You can see whether the device has been suspended by looking at the > runtime_status and runtime_suspended_time files in the .../power > directory. > >> 2. I plug in one mouse and found the device will auto disconnect every >> 2 secs, the default value of usb_autosuspend_delay. >> But I have some questions >> a. how kernel judge the device is idle, from usb spec, the idle >> mean there is no any bus traffic, including sof, over 3ms and host >> will always firing sof even there is no transaction on the bus. > > The kernel judges a device to be idle if it hasn't been used in some > time. The bus traffic has nothing to do with it. > >> b. I think dynamic suspend is used for saving power when device is >> idle for a specific time, but why the mouse will dynamic resume when >> suspend for a while. it should resume when user or external event >> trigger it for resume right? > > That's right. If your mouse is resuming, it must be because some event > has triggered the resume. The mouse will reconnect even I just kept it connected and not moving it. is there any method or debug message we can tell what is going on to make it resume? sincere appreciate your help, -- 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