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/usb | |
| 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/usb')
| -rw-r--r-- | Documentation/usb/power-management.txt | 19 |
1 files changed, 11 insertions, 8 deletions
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 |
