diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2007-05-04 11:52:20 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-07-12 19:29:47 -0400 |
commit | 0458d5b4c9cc4ca0f62625d0144ddc4b4bc97a3c (patch) | |
tree | 8b1fcb4f063ef4aa6f2e3cd41a60d986a1e432d4 /include | |
parent | ce7cd137fced114d49178b73d468b82096a107fb (diff) |
USB: add USB-Persist facility
This patch (as886) adds the controversial USB-persist facility,
allowing USB devices to persist across a power loss during system
suspend.
The facility is controlled by a new Kconfig option (with appropriate
warnings about the potential dangers); when the option is off the
behavior will remain the same as it is now. But when the option is
on, people will be able to use suspend-to-disk and keep their USB
filesystems intact -- something particularly valuable for small
machines where the root filesystem is on a USB device!
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/usb.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/linux/usb.h b/include/linux/usb.h index 56aa2ee21f1b..3d63e0c2dd70 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
@@ -403,6 +403,7 @@ struct usb_device { | |||
403 | 403 | ||
404 | unsigned auto_pm:1; /* autosuspend/resume in progress */ | 404 | unsigned auto_pm:1; /* autosuspend/resume in progress */ |
405 | unsigned do_remote_wakeup:1; /* remote wakeup should be enabled */ | 405 | unsigned do_remote_wakeup:1; /* remote wakeup should be enabled */ |
406 | unsigned reset_resume:1; /* needs reset instead of resume */ | ||
406 | unsigned autosuspend_disabled:1; /* autosuspend and autoresume */ | 407 | unsigned autosuspend_disabled:1; /* autosuspend and autoresume */ |
407 | unsigned autoresume_disabled:1; /* disabled by the user */ | 408 | unsigned autoresume_disabled:1; /* disabled by the user */ |
408 | #endif | 409 | #endif |
@@ -819,7 +820,10 @@ struct usbdrv_wrap { | |||
819 | * @pre_reset: Called by usb_reset_composite_device() when the device | 820 | * @pre_reset: Called by usb_reset_composite_device() when the device |
820 | * is about to be reset. | 821 | * is about to be reset. |
821 | * @post_reset: Called by usb_reset_composite_device() after the device | 822 | * @post_reset: Called by usb_reset_composite_device() after the device |
822 | * has been reset. | 823 | * has been reset, or in lieu of @resume following a reset-resume |
824 | * (i.e., the device is reset instead of being resumed, as might | ||
825 | * happen if power was lost). The second argument tells which is | ||
826 | * the reason. | ||
823 | * @id_table: USB drivers use ID table to support hotplugging. | 827 | * @id_table: USB drivers use ID table to support hotplugging. |
824 | * Export this with MODULE_DEVICE_TABLE(usb,...). This must be set | 828 | * Export this with MODULE_DEVICE_TABLE(usb,...). This must be set |
825 | * or your driver's probe function will never get called. | 829 | * or your driver's probe function will never get called. |
@@ -861,7 +865,7 @@ struct usb_driver { | |||
861 | int (*resume) (struct usb_interface *intf); | 865 | int (*resume) (struct usb_interface *intf); |
862 | 866 | ||
863 | void (*pre_reset) (struct usb_interface *intf); | 867 | void (*pre_reset) (struct usb_interface *intf); |
864 | void (*post_reset) (struct usb_interface *intf); | 868 | void (*post_reset) (struct usb_interface *intf, int reset_resume); |
865 | 869 | ||
866 | const struct usb_device_id *id_table; | 870 | const struct usb_device_id *id_table; |
867 | 871 | ||