Change Since v1: (1) Add driver/usb/core/port.c file and move usb port related code into new file. (2) Modify usb port's runtime pm callback and set/clear PORT_POWER feature in the resume/suspend callback. (3) Power off port through suspend port device instead of setting/ clearing PORT_POWER feature. Existing problem: When pm qos flags is updating, pm core will do pm_runtime_get_sync(port_dev) and pm_runtime_put(port_dev). Currently port's runtime pm callback set/clear PORT_POWER feature. This will cause alwas port power off after port's pm qos flags being changed. This patchset is to add usb port power off mechanism. The main discussion is in the following link: http://marc.info/?l=linux-usb&m=134818340017208&w=2 The patchset is based on the pm qos flags patches on the linux-pm's next tree and pm-qos http://git.kernel.org/?p=linux/kernel/git/rafael/linux-pm.git;a=shortlog;h=refs/heads/pm-qos and patchset "usb: expose DeviceRemovable to user space via sysfs attribute" http://marc.info/?l=linux-usb&m=135234231804002&w=2 usb: add usb port's pm qos flags request to change NO_POWER_OFF flag usb: expose usb port's pm qos flags to user space usb: add usb port auto power off mechanism usb: add runtime pm support for usb port device usb: Add driver/usb/core/port.c file to fill usb port related code. usb: Register usb port's acpi power resources drivers/usb/core/Makefile | 1 + drivers/usb/core/hub.c | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------ drivers/usb/core/port.c | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/usb/core/usb-acpi.c | 22 +++++++++++++++++ drivers/usb/core/usb.h | 11 +++++++++ include/linux/usb.h | 23 ++++++++++++++++++ 6 files changed, 338 insertions(+), 96 deletions(-) -- 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