Commit e1620d59 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

USB: Move runtime PM callbacks to usb_device_pm_ops

USB defines usb_device_type pointing to usb_device_pm_ops that
provides system-wide PM callbacks only and usb_bus_type pointing to
usb_bus_pm_ops that provides runtime PM callbacks only.  However,
the USB runtime PM callbacks may be defined in usb_device_pm_ops
which makes it possible to drop usb_bus_pm_ops and will allow us
to consolidate the handling of subsystems by the PM core code.
Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
Acked-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 99759619
...@@ -1646,7 +1646,7 @@ static int autosuspend_check(struct usb_device *udev) ...@@ -1646,7 +1646,7 @@ static int autosuspend_check(struct usb_device *udev)
return 0; return 0;
} }
static int usb_runtime_suspend(struct device *dev) int usb_runtime_suspend(struct device *dev)
{ {
struct usb_device *udev = to_usb_device(dev); struct usb_device *udev = to_usb_device(dev);
int status; int status;
...@@ -1667,7 +1667,7 @@ static int usb_runtime_suspend(struct device *dev) ...@@ -1667,7 +1667,7 @@ static int usb_runtime_suspend(struct device *dev)
return status; return status;
} }
static int usb_runtime_resume(struct device *dev) int usb_runtime_resume(struct device *dev)
{ {
struct usb_device *udev = to_usb_device(dev); struct usb_device *udev = to_usb_device(dev);
int status; int status;
...@@ -1679,7 +1679,7 @@ static int usb_runtime_resume(struct device *dev) ...@@ -1679,7 +1679,7 @@ static int usb_runtime_resume(struct device *dev)
return status; return status;
} }
static int usb_runtime_idle(struct device *dev) int usb_runtime_idle(struct device *dev)
{ {
struct usb_device *udev = to_usb_device(dev); struct usb_device *udev = to_usb_device(dev);
...@@ -1691,19 +1691,10 @@ static int usb_runtime_idle(struct device *dev) ...@@ -1691,19 +1691,10 @@ static int usb_runtime_idle(struct device *dev)
return 0; return 0;
} }
static const struct dev_pm_ops usb_bus_pm_ops = {
.runtime_suspend = usb_runtime_suspend,
.runtime_resume = usb_runtime_resume,
.runtime_idle = usb_runtime_idle,
};
#endif /* CONFIG_USB_SUSPEND */ #endif /* CONFIG_USB_SUSPEND */
struct bus_type usb_bus_type = { struct bus_type usb_bus_type = {
.name = "usb", .name = "usb",
.match = usb_device_match, .match = usb_device_match,
.uevent = usb_uevent, .uevent = usb_uevent,
#ifdef CONFIG_USB_SUSPEND
.pm = &usb_bus_pm_ops,
#endif
}; };
...@@ -315,6 +315,11 @@ static const struct dev_pm_ops usb_device_pm_ops = { ...@@ -315,6 +315,11 @@ static const struct dev_pm_ops usb_device_pm_ops = {
.thaw = usb_dev_thaw, .thaw = usb_dev_thaw,
.poweroff = usb_dev_poweroff, .poweroff = usb_dev_poweroff,
.restore = usb_dev_restore, .restore = usb_dev_restore,
#ifdef CONFIG_USB_SUSPEND
.runtime_suspend = usb_runtime_suspend,
.runtime_resume = usb_runtime_resume,
.runtime_idle = usb_runtime_idle,
#endif
}; };
#endif /* CONFIG_PM */ #endif /* CONFIG_PM */
......
...@@ -77,6 +77,9 @@ static inline int usb_port_resume(struct usb_device *udev, pm_message_t msg) ...@@ -77,6 +77,9 @@ static inline int usb_port_resume(struct usb_device *udev, pm_message_t msg)
extern void usb_autosuspend_device(struct usb_device *udev); extern void usb_autosuspend_device(struct usb_device *udev);
extern int usb_autoresume_device(struct usb_device *udev); extern int usb_autoresume_device(struct usb_device *udev);
extern int usb_remote_wakeup(struct usb_device *dev); extern int usb_remote_wakeup(struct usb_device *dev);
extern int usb_runtime_suspend(struct device *dev);
extern int usb_runtime_resume(struct device *dev);
extern int usb_runtime_idle(struct device *dev);
#else #else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment