diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2010-04-02 13:22:16 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-20 16:21:37 -0400 |
commit | a90309860b0935805d49e75499fb8dc59fea8e94 (patch) | |
tree | 2d5ed0376a0f0ead945afdaa11be00a48bc0af6c /Documentation | |
parent | 9e18c821659d836bd63f88df3c19729327728496 (diff) |
USB: deprecate the power/level sysfs attribute
This patch (as1367) deprecates USB's power/level sysfs attribute in
favor of the power/control attribute provided by the runtime PM core.
The two attributes do the same thing.
It would be nice to replace power/level with a symlink to
power/control, but at the moment sysfs doesn't offer any way to do so.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/ABI/obsolete/sysfs-bus-usb | 31 | ||||
-rw-r--r-- | Documentation/ABI/testing/sysfs-bus-usb | 28 | ||||
-rw-r--r-- | Documentation/usb/power-management.txt | 19 |
3 files changed, 42 insertions, 36 deletions
diff --git a/Documentation/ABI/obsolete/sysfs-bus-usb b/Documentation/ABI/obsolete/sysfs-bus-usb new file mode 100644 index 000000000000..bd096d33fbc7 --- /dev/null +++ b/Documentation/ABI/obsolete/sysfs-bus-usb | |||
@@ -0,0 +1,31 @@ | |||
1 | What: /sys/bus/usb/devices/.../power/level | ||
2 | Date: March 2007 | ||
3 | KernelVersion: 2.6.21 | ||
4 | Contact: Alan Stern <stern@rowland.harvard.edu> | ||
5 | Description: | ||
6 | Each USB device directory will contain a file named | ||
7 | power/level. This file holds a power-level setting for | ||
8 | the device, either "on" or "auto". | ||
9 | |||
10 | "on" means that the device is not allowed to autosuspend, | ||
11 | although normal suspends for system sleep will still | ||
12 | be honored. "auto" means the device will autosuspend | ||
13 | and autoresume in the usual manner, according to the | ||
14 | capabilities of its driver. | ||
15 | |||
16 | During normal use, devices should be left in the "auto" | ||
17 | level. The "on" level is meant for administrative uses. | ||
18 | If you want to suspend a device immediately but leave it | ||
19 | free to wake up in response to I/O requests, you should | ||
20 | write "0" to power/autosuspend. | ||
21 | |||
22 | Device not capable of proper suspend and resume should be | ||
23 | left in the "on" level. Although the USB spec requires | ||
24 | devices to support suspend/resume, many of them do not. | ||
25 | In fact so many don't that by default, the USB core | ||
26 | initializes all non-hub devices in the "on" level. Some | ||
27 | drivers may change this setting when they are bound. | ||
28 | |||
29 | This file is deprecated and will be removed after 2010. | ||
30 | Use the power/control file instead; it does exactly the | ||
31 | same thing. | ||
diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb index bcebb9eaedce..294aa864a60a 100644 --- a/Documentation/ABI/testing/sysfs-bus-usb +++ b/Documentation/ABI/testing/sysfs-bus-usb | |||
@@ -14,34 +14,6 @@ Description: | |||
14 | The autosuspend delay for newly-created devices is set to | 14 | The autosuspend delay for newly-created devices is set to |
15 | the value of the usbcore.autosuspend module parameter. | 15 | the value of the usbcore.autosuspend module parameter. |
16 | 16 | ||
17 | What: /sys/bus/usb/devices/.../power/level | ||
18 | Date: March 2007 | ||
19 | KernelVersion: 2.6.21 | ||
20 | Contact: Alan Stern <stern@rowland.harvard.edu> | ||
21 | Description: | ||
22 | Each USB device directory will contain a file named | ||
23 | power/level. This file holds a power-level setting for | ||
24 | the device, either "on" or "auto". | ||
25 | |||
26 | "on" means that the device is not allowed to autosuspend, | ||
27 | although normal suspends for system sleep will still | ||
28 | be honored. "auto" means the device will autosuspend | ||
29 | and autoresume in the usual manner, according to the | ||
30 | capabilities of its driver. | ||
31 | |||
32 | During normal use, devices should be left in the "auto" | ||
33 | level. The "on" level is meant for administrative uses. | ||
34 | If you want to suspend a device immediately but leave it | ||
35 | free to wake up in response to I/O requests, you should | ||
36 | write "0" to power/autosuspend. | ||
37 | |||
38 | Device not capable of proper suspend and resume should be | ||
39 | left in the "on" level. Although the USB spec requires | ||
40 | devices to support suspend/resume, many of them do not. | ||
41 | In fact so many don't that by default, the USB core | ||
42 | initializes all non-hub devices in the "on" level. Some | ||
43 | drivers may change this setting when they are bound. | ||
44 | |||
45 | What: /sys/bus/usb/devices/.../power/persist | 17 | What: /sys/bus/usb/devices/.../power/persist |
46 | Date: May 2007 | 18 | Date: May 2007 |
47 | KernelVersion: 2.6.23 | 19 | KernelVersion: 2.6.23 |
diff --git a/Documentation/usb/power-management.txt b/Documentation/usb/power-management.txt index 2790ad48cfc2..b29d8e56cf28 100644 --- a/Documentation/usb/power-management.txt +++ b/Documentation/usb/power-management.txt | |||
@@ -107,7 +107,9 @@ allowed to issue dynamic suspends. | |||
107 | The user interface for controlling dynamic PM is located in the power/ | 107 | The user interface for controlling dynamic PM is located in the power/ |
108 | subdirectory of each USB device's sysfs directory, that is, in | 108 | subdirectory of each USB device's sysfs directory, that is, in |
109 | /sys/bus/usb/devices/.../power/ where "..." is the device's ID. The | 109 | /sys/bus/usb/devices/.../power/ where "..." is the device's ID. The |
110 | relevant attribute files are: wakeup, level, and autosuspend. | 110 | relevant attribute files are: wakeup, control, and autosuspend. |
111 | (There may also be a file named "level"; this file was deprecated | ||
112 | as of the 2.6.35 kernel and replaced by the "control" file.) | ||
111 | 113 | ||
112 | power/wakeup | 114 | power/wakeup |
113 | 115 | ||
@@ -120,7 +122,7 @@ relevant attribute files are: wakeup, level, and autosuspend. | |||
120 | while the device is suspended, the change won't take | 122 | while the device is suspended, the change won't take |
121 | effect until the following suspend.) | 123 | effect until the following suspend.) |
122 | 124 | ||
123 | power/level | 125 | power/control |
124 | 126 | ||
125 | This file contains one of two words: "on" or "auto". | 127 | This file contains one of two words: "on" or "auto". |
126 | You can write those words to the file to change the | 128 | You can write those words to the file to change the |
@@ -148,14 +150,15 @@ relevant attribute files are: wakeup, level, and autosuspend. | |||
148 | never to autosuspend. You can write a number to the | 150 | never to autosuspend. You can write a number to the |
149 | file to change the autosuspend idle-delay time. | 151 | file to change the autosuspend idle-delay time. |
150 | 152 | ||
151 | Writing "-1" to power/autosuspend and writing "on" to power/level do | 153 | Writing "-1" to power/autosuspend and writing "on" to power/control do |
152 | essentially the same thing -- they both prevent the device from being | 154 | essentially the same thing -- they both prevent the device from being |
153 | autosuspended. Yes, this is a redundancy in the API. | 155 | autosuspended. Yes, this is a redundancy in the API. |
154 | 156 | ||
155 | (In 2.6.21 writing "0" to power/autosuspend would prevent the device | 157 | (In 2.6.21 writing "0" to power/autosuspend would prevent the device |
156 | from being autosuspended; the behavior was changed in 2.6.22. The | 158 | from being autosuspended; the behavior was changed in 2.6.22. The |
157 | power/autosuspend attribute did not exist prior to 2.6.21, and the | 159 | power/autosuspend attribute did not exist prior to 2.6.21, and the |
158 | power/level attribute did not exist prior to 2.6.22.) | 160 | power/level attribute did not exist prior to 2.6.22. power/control |
161 | was added in 2.6.34.) | ||
159 | 162 | ||
160 | 163 | ||
161 | Changing the default idle-delay time | 164 | Changing the default idle-delay time |
@@ -212,7 +215,7 @@ among printers and scanners, but plenty of other types of device have | |||
212 | the same deficiency. | 215 | the same deficiency. |
213 | 216 | ||
214 | For this reason, by default the kernel disables autosuspend (the | 217 | For this reason, by default the kernel disables autosuspend (the |
215 | power/level attribute is initialized to "on") for all devices other | 218 | power/control attribute is initialized to "on") for all devices other |
216 | than hubs. Hubs, at least, appear to be reasonably well-behaved in | 219 | than hubs. Hubs, at least, appear to be reasonably well-behaved in |
217 | this regard. | 220 | this regard. |
218 | 221 | ||
@@ -373,7 +376,7 @@ usb_autopm_put_interface() in its close or release routine. But other | |||
373 | patterns are possible. | 376 | patterns are possible. |
374 | 377 | ||
375 | The autosuspend attempts mentioned above will often fail for one | 378 | The autosuspend attempts mentioned above will often fail for one |
376 | reason or another. For example, the power/level attribute might be | 379 | reason or another. For example, the power/control attribute might be |
377 | set to "on", or another interface in the same device might not be | 380 | set to "on", or another interface in the same device might not be |
378 | idle. This is perfectly normal. If the reason for failure was that | 381 | idle. This is perfectly normal. If the reason for failure was that |
379 | the device hasn't been idle for long enough, a timer is scheduled to | 382 | the device hasn't been idle for long enough, a timer is scheduled to |
@@ -394,12 +397,12 @@ Drivers can enable autosuspend for their devices by calling | |||
394 | 397 | ||
395 | in their probe() routine, if they know that the device is capable of | 398 | in their probe() routine, if they know that the device is capable of |
396 | suspending and resuming correctly. This is exactly equivalent to | 399 | suspending and resuming correctly. This is exactly equivalent to |
397 | writing "auto" to the device's power/level attribute. Likewise, | 400 | writing "auto" to the device's power/control attribute. Likewise, |
398 | drivers can disable autosuspend by calling | 401 | drivers can disable autosuspend by calling |
399 | 402 | ||
400 | usb_disable_autosuspend(struct usb_device *udev); | 403 | usb_disable_autosuspend(struct usb_device *udev); |
401 | 404 | ||
402 | This is exactly the same as writing "on" to the power/level attribute. | 405 | This is exactly the same as writing "on" to the power/control attribute. |
403 | 406 | ||
404 | Sometimes a driver needs to make sure that remote wakeup is enabled | 407 | Sometimes a driver needs to make sure that remote wakeup is enabled |
405 | during autosuspend. For example, there's not much point | 408 | during autosuspend. For example, there's not much point |