On Wed, 2015-12-23 at 03:31 +0000, Hayes Wang wrote: > Oliver Neukum [mailto:oneukum@xxxxxxxx] > [...] > > It is clear to me that you cannot get away with using the same operation > > for resume() and reset_resume() in your driver. It is fundamentally > > impossible. Firmware cannot fix it. > > I would think how to fix it. > > > Sorry for the length of the explanation. > > Thanks for your response. I have some questions. What are the flows when > the system resume follows a system suspend which follows a autosuspend? > Are they as following? > > 1. suspend() with PMSG_IS_AUTO for autosuspned. > 2. suspend() for system suspend. > 3. resume() for system resume. > > And, should the device exist autosuspend before (2)? No, step (2) does not exist. Calls to suspend() and [reset_]resume() always balance. Usually a driver shouldn't care about system suspend. The way the driver is currently coded will also fail for Port-Power Off. Regards Oliver -- 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