Re: [PATCH 9/9 v4] usbcore: add sysfs support to xHCI usb2 hardware LPM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Sep 09, 2011 at 05:57:38PM +0800, Andiry Xu wrote:
> This patch adds sysfs support to xHCI usb2 hardware LPM, so developer can
> enable and disable usb2 hardware LPM manually for test purpose.
> 
> Signed-off-by: Andiry Xu <andiry.xu@xxxxxxx>
> ---
>  Documentation/ABI/testing/sysfs-bus-usb |   15 ++++++
>  Documentation/usb/power-management.txt  |   27 +++++++++++
>  drivers/usb/core/sysfs.c                |   73 ++++++++++++++++++++++++++++++-
>  3 files changed, 114 insertions(+), 1 deletions(-)
> 
> diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb
> index 294aa86..8105179 100644
> --- a/Documentation/ABI/testing/sysfs-bus-usb
> +++ b/Documentation/ABI/testing/sysfs-bus-usb
> @@ -142,3 +142,18 @@ Description:
>  		such devices.
>  Users:
>  		usb_modeswitch
> +
> +What:		/sys/bus/usb/devices/.../power/usb2_hardware_lpm
> +Date:		September 2011
> +Contact:	Andiry Xu <andiry.xu@xxxxxxx>
> +Description:
> +		If CONFIG_USB_SUSPEND is set and a USB 2.0 lpm-capable device
> +		is plugged in to a xHCI host which support link PM, it will
> +		perform a LPM test; if the test is passed and host supports
> +		USB2 hardware LPM (xHCI 1.0 feature), USB2 hardware LPM will
> +		be enabled for the device and the USB device directory will
> +		contain a file named power/usb2_hardware_lpm.  The file holds
> +		a string value (enable or disable) indicating whether or not
> +		USB2 hardware LPM is enabled for the device. Developer can
> +		write enable or disable to the file to enable/disable the
> +		feature.
> diff --git a/Documentation/usb/power-management.txt b/Documentation/usb/power-management.txt
> index c9ffa9c..7346d1b 100644
> --- a/Documentation/usb/power-management.txt
> +++ b/Documentation/usb/power-management.txt
> @@ -487,3 +487,30 @@ succeed, it may still remain active and thus cause the system to
>  resume as soon as the system suspend is complete.  Or the remote
>  wakeup may fail and get lost.  Which outcome occurs depends on timing
>  and on the hardware and firmware design.
> +
> +
> +	xHCI hardware link PM
> +	---------------------
> +
> +xHCI host controller provides hardware link power management to usb2.0
> +(xHCI 1.0 feature) and usb3.0 devices which support link PM. By
> +enabling hardware LPM, the host can automatically put the device into
> +lower power state(L1 for usb2.0 devices, or U1/U2 for usb3.0 devices),
> +which state device can enter and resume very quickly.
> +
> +The user interface for controlling USB2 hardware LPM is located in the
> +power/ subdirectory of each USB device's sysfs directory, that is, in
> +/sys/bus/usb/devices/.../power/ where "..." is the device's ID. The
> +relevant attribute files is usb2_hardware_lpm.
> +
> +	power/usb2_hardware_lpm
> +
> +		When a USB2 device which support LPM is plugged to a
> +		xHCI host root hub which support software LPM, the
> +		host will run a software LPM test for it; if the device
> +		enters L1 state and resume successfully and the host
> +		supports USB2 hardware LPM, this file will show up and
> +		driver will enable hardware LPM	for the device. You
> +		can write "enable" or "disable" to the file to
> +		enable/disable USB2 hardware LPM manually. This is for
> +		test purpose mainly.
> diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
> index cf05b97..8366d5f 100644
> --- a/drivers/usb/core/sysfs.c
> +++ b/drivers/usb/core/sysfs.c
> @@ -412,6 +412,70 @@ set_level(struct device *dev, struct device_attribute *attr,
>  
>  static DEVICE_ATTR(level, S_IRUGO | S_IWUSR, show_level, set_level);
>  
> +static const char enable_string[] = "enable";
> +static const char disable_string[] = "disable";

I think we have a "generic" way of doing "yes/no enable/disable 0/1 T/F"
now with sysfs, so please use that and not these strings.

thanks,

greg k-h
--
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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux