diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2006-10-30 17:07:51 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-12-01 14:23:30 -0800 |
commit | 692a186c9d5f12d43cef28d40c25247dc4f302f0 (patch) | |
tree | 8271b7930fbabfd6b6d5cc0a3b42e65ea56976d4 /include | |
parent | af4f76066d0fcb215ae389b8839d7ae37ce0e28b (diff) | |
download | kernel_samsung_smdk4412-692a186c9d5f12d43cef28d40c25247dc4f302f0.zip kernel_samsung_smdk4412-692a186c9d5f12d43cef28d40c25247dc4f302f0.tar.gz kernel_samsung_smdk4412-692a186c9d5f12d43cef28d40c25247dc4f302f0.tar.bz2 |
USB: expand autosuspend/autoresume API
This patch (as814) adds usb_autopm_set_interface() to the autosuspend
API. It also provides convenient wrapper routines,
usb_autopm_enable() and usb_autopm_disable(), for drivers that want
to specify directly whether autosuspend should be allowed.
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 | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/include/linux/usb.h b/include/linux/usb.h index e732e02..864c6c2 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -415,14 +415,37 @@ extern struct usb_device *usb_find_device(u16 vendor_id, u16 product_id); /* USB autosuspend and autoresume */ #ifdef CONFIG_USB_SUSPEND +extern int usb_autopm_set_interface(struct usb_interface *intf); extern int usb_autopm_get_interface(struct usb_interface *intf); extern void usb_autopm_put_interface(struct usb_interface *intf); +static inline void usb_autopm_enable(struct usb_interface *intf) +{ + intf->pm_usage_cnt = 0; + usb_autopm_set_interface(intf); +} + +static inline void usb_autopm_disable(struct usb_interface *intf) +{ + intf->pm_usage_cnt = 1; + usb_autopm_set_interface(intf); +} + #else -#define usb_autopm_get_interface(intf) 0 -#define usb_autopm_put_interface(intf) do {} while (0) -#endif +static inline int usb_autopm_set_interface(struct usb_interface *intf) +{ return 0; } + +static inline int usb_autopm_get_interface(struct usb_interface *intf) +{ return 0; } + +static inline void usb_autopm_put_interface(struct usb_interface *intf) +{ } +static inline void usb_autopm_enable(struct usb_interface *intf) +{ } +static inline void usb_autopm_disable(struct usb_interface *intf) +{ } +#endif /*-------------------------------------------------------------------------*/ |