diff options
-rw-r--r-- | drivers/usb/core/Kconfig | 16 | ||||
-rw-r--r-- | drivers/usb/core/driver.c | 4 | ||||
-rw-r--r-- | drivers/usb/core/hcd.c | 10 | ||||
-rw-r--r-- | drivers/usb/core/hub.c | 42 | ||||
-rw-r--r-- | drivers/usb/core/port.c | 4 | ||||
-rw-r--r-- | drivers/usb/core/sysfs.c | 4 | ||||
-rw-r--r-- | drivers/usb/core/usb.c | 4 | ||||
-rw-r--r-- | drivers/usb/core/usb.h | 2 | ||||
-rw-r--r-- | drivers/usb/host/ehci-pci.c | 12 | ||||
-rw-r--r-- | drivers/usb/host/ohci-hub.c | 6 | ||||
-rw-r--r-- | drivers/usb/host/sl811-hcd.c | 2 | ||||
-rw-r--r-- | drivers/usb/host/u132-hcd.c | 9 | ||||
-rw-r--r-- | drivers/usb/host/xhci-hub.c | 2 | ||||
-rw-r--r-- | drivers/usb/host/xhci.c | 4 | ||||
-rw-r--r-- | include/linux/usb.h | 2 | ||||
-rw-r--r-- | include/linux/usb/hcd.h | 6 |
16 files changed, 35 insertions, 94 deletions
diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig index f70c1a1694ad..175701a2dae4 100644 --- a/drivers/usb/core/Kconfig +++ b/drivers/usb/core/Kconfig | |||
@@ -38,22 +38,6 @@ config USB_DYNAMIC_MINORS | |||
38 | 38 | ||
39 | If you are unsure about this, say N here. | 39 | If you are unsure about this, say N here. |
40 | 40 | ||
41 | config USB_SUSPEND | ||
42 | bool "USB runtime power management (autosuspend) and wakeup" | ||
43 | depends on USB && PM_RUNTIME | ||
44 | help | ||
45 | If you say Y here, you can use driver calls or the sysfs | ||
46 | "power/control" file to enable or disable autosuspend for | ||
47 | individual USB peripherals (see | ||
48 | Documentation/usb/power-management.txt for more details). | ||
49 | |||
50 | Also, USB "remote wakeup" signaling is supported, whereby some | ||
51 | USB devices (like keyboards and network adapters) can wake up | ||
52 | their parent hub. That wakeup cascades up the USB tree, and | ||
53 | could wake the system from states like suspend-to-RAM. | ||
54 | |||
55 | If you are unsure about this, say N here. | ||
56 | |||
57 | config USB_OTG | 41 | config USB_OTG |
58 | bool "OTG support" | 42 | bool "OTG support" |
59 | depends on USB | 43 | depends on USB |
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index eb1d00a3543a..84d2b0585810 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c | |||
@@ -1412,7 +1412,7 @@ int usb_resume(struct device *dev, pm_message_t msg) | |||
1412 | 1412 | ||
1413 | #endif /* CONFIG_PM */ | 1413 | #endif /* CONFIG_PM */ |
1414 | 1414 | ||
1415 | #ifdef CONFIG_USB_SUSPEND | 1415 | #ifdef CONFIG_PM_RUNTIME |
1416 | 1416 | ||
1417 | /** | 1417 | /** |
1418 | * usb_enable_autosuspend - allow a USB device to be autosuspended | 1418 | * usb_enable_autosuspend - allow a USB device to be autosuspended |
@@ -1780,7 +1780,7 @@ int usb_set_usb2_hardware_lpm(struct usb_device *udev, int enable) | |||
1780 | return ret; | 1780 | return ret; |
1781 | } | 1781 | } |
1782 | 1782 | ||
1783 | #endif /* CONFIG_USB_SUSPEND */ | 1783 | #endif /* CONFIG_PM_RUNTIME */ |
1784 | 1784 | ||
1785 | struct bus_type usb_bus_type = { | 1785 | struct bus_type usb_bus_type = { |
1786 | .name = "usb", | 1786 | .name = "usb", |
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index f9ec44cbb82f..d53547d2e4c7 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c | |||
@@ -2125,7 +2125,7 @@ int hcd_bus_resume(struct usb_device *rhdev, pm_message_t msg) | |||
2125 | 2125 | ||
2126 | #endif /* CONFIG_PM */ | 2126 | #endif /* CONFIG_PM */ |
2127 | 2127 | ||
2128 | #ifdef CONFIG_USB_SUSPEND | 2128 | #ifdef CONFIG_PM_RUNTIME |
2129 | 2129 | ||
2130 | /* Workqueue routine for root-hub remote wakeup */ | 2130 | /* Workqueue routine for root-hub remote wakeup */ |
2131 | static void hcd_resume_work(struct work_struct *work) | 2131 | static void hcd_resume_work(struct work_struct *work) |
@@ -2160,7 +2160,7 @@ void usb_hcd_resume_root_hub (struct usb_hcd *hcd) | |||
2160 | } | 2160 | } |
2161 | EXPORT_SYMBOL_GPL(usb_hcd_resume_root_hub); | 2161 | EXPORT_SYMBOL_GPL(usb_hcd_resume_root_hub); |
2162 | 2162 | ||
2163 | #endif /* CONFIG_USB_SUSPEND */ | 2163 | #endif /* CONFIG_PM_RUNTIME */ |
2164 | 2164 | ||
2165 | /*-------------------------------------------------------------------------*/ | 2165 | /*-------------------------------------------------------------------------*/ |
2166 | 2166 | ||
@@ -2336,7 +2336,7 @@ struct usb_hcd *usb_create_shared_hcd(const struct hc_driver *driver, | |||
2336 | init_timer(&hcd->rh_timer); | 2336 | init_timer(&hcd->rh_timer); |
2337 | hcd->rh_timer.function = rh_timer_func; | 2337 | hcd->rh_timer.function = rh_timer_func; |
2338 | hcd->rh_timer.data = (unsigned long) hcd; | 2338 | hcd->rh_timer.data = (unsigned long) hcd; |
2339 | #ifdef CONFIG_USB_SUSPEND | 2339 | #ifdef CONFIG_PM_RUNTIME |
2340 | INIT_WORK(&hcd->wakeup_work, hcd_resume_work); | 2340 | INIT_WORK(&hcd->wakeup_work, hcd_resume_work); |
2341 | #endif | 2341 | #endif |
2342 | 2342 | ||
@@ -2590,7 +2590,7 @@ error_create_attr_group: | |||
2590 | hcd->rh_registered = 0; | 2590 | hcd->rh_registered = 0; |
2591 | spin_unlock_irq(&hcd_root_hub_lock); | 2591 | spin_unlock_irq(&hcd_root_hub_lock); |
2592 | 2592 | ||
2593 | #ifdef CONFIG_USB_SUSPEND | 2593 | #ifdef CONFIG_PM_RUNTIME |
2594 | cancel_work_sync(&hcd->wakeup_work); | 2594 | cancel_work_sync(&hcd->wakeup_work); |
2595 | #endif | 2595 | #endif |
2596 | mutex_lock(&usb_bus_list_lock); | 2596 | mutex_lock(&usb_bus_list_lock); |
@@ -2645,7 +2645,7 @@ void usb_remove_hcd(struct usb_hcd *hcd) | |||
2645 | hcd->rh_registered = 0; | 2645 | hcd->rh_registered = 0; |
2646 | spin_unlock_irq (&hcd_root_hub_lock); | 2646 | spin_unlock_irq (&hcd_root_hub_lock); |
2647 | 2647 | ||
2648 | #ifdef CONFIG_USB_SUSPEND | 2648 | #ifdef CONFIG_PM_RUNTIME |
2649 | cancel_work_sync(&hcd->wakeup_work); | 2649 | cancel_work_sync(&hcd->wakeup_work); |
2650 | #endif | 2650 | #endif |
2651 | 2651 | ||
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 443d5cc9330b..feef9351463d 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c | |||
@@ -2827,7 +2827,7 @@ void usb_enable_ltm(struct usb_device *udev) | |||
2827 | } | 2827 | } |
2828 | EXPORT_SYMBOL_GPL(usb_enable_ltm); | 2828 | EXPORT_SYMBOL_GPL(usb_enable_ltm); |
2829 | 2829 | ||
2830 | #ifdef CONFIG_USB_SUSPEND | 2830 | #ifdef CONFIG_PM |
2831 | /* | 2831 | /* |
2832 | * usb_disable_function_remotewakeup - disable usb3.0 | 2832 | * usb_disable_function_remotewakeup - disable usb3.0 |
2833 | * device's function remote wakeup | 2833 | * device's function remote wakeup |
@@ -2886,7 +2886,7 @@ static int usb_disable_function_remotewakeup(struct usb_device *udev) | |||
2886 | * Linux (2.6) currently has NO mechanisms to initiate that: no khubd | 2886 | * Linux (2.6) currently has NO mechanisms to initiate that: no khubd |
2887 | * timer, no SRP, no requests through sysfs. | 2887 | * timer, no SRP, no requests through sysfs. |
2888 | * | 2888 | * |
2889 | * If CONFIG_USB_SUSPEND isn't enabled, non-SuperSpeed devices really get | 2889 | * If Runtime PM isn't enabled or used, non-SuperSpeed devices really get |
2890 | * suspended only when their bus goes into global suspend (i.e., the root | 2890 | * suspended only when their bus goes into global suspend (i.e., the root |
2891 | * hub is suspended). Nevertheless, we change @udev->state to | 2891 | * hub is suspended). Nevertheless, we change @udev->state to |
2892 | * USB_STATE_SUSPENDED as this is the device's "logical" state. The actual | 2892 | * USB_STATE_SUSPENDED as this is the device's "logical" state. The actual |
@@ -3247,6 +3247,10 @@ int usb_port_resume(struct usb_device *udev, pm_message_t msg) | |||
3247 | return status; | 3247 | return status; |
3248 | } | 3248 | } |
3249 | 3249 | ||
3250 | #endif /* CONFIG_PM */ | ||
3251 | |||
3252 | #ifdef CONFIG_PM_RUNTIME | ||
3253 | |||
3250 | /* caller has locked udev */ | 3254 | /* caller has locked udev */ |
3251 | int usb_remote_wakeup(struct usb_device *udev) | 3255 | int usb_remote_wakeup(struct usb_device *udev) |
3252 | { | 3256 | { |
@@ -3263,38 +3267,6 @@ int usb_remote_wakeup(struct usb_device *udev) | |||
3263 | return status; | 3267 | return status; |
3264 | } | 3268 | } |
3265 | 3269 | ||
3266 | #else /* CONFIG_USB_SUSPEND */ | ||
3267 | |||
3268 | /* When CONFIG_USB_SUSPEND isn't set, we never suspend or resume any ports. */ | ||
3269 | |||
3270 | int usb_port_suspend(struct usb_device *udev, pm_message_t msg) | ||
3271 | { | ||
3272 | return 0; | ||
3273 | } | ||
3274 | |||
3275 | /* However we may need to do a reset-resume */ | ||
3276 | |||
3277 | int usb_port_resume(struct usb_device *udev, pm_message_t msg) | ||
3278 | { | ||
3279 | struct usb_hub *hub = usb_hub_to_struct_hub(udev->parent); | ||
3280 | int port1 = udev->portnum; | ||
3281 | int status; | ||
3282 | u16 portchange, portstatus; | ||
3283 | |||
3284 | status = hub_port_status(hub, port1, &portstatus, &portchange); | ||
3285 | status = check_port_resume_type(udev, | ||
3286 | hub, port1, status, portchange, portstatus); | ||
3287 | |||
3288 | if (status) { | ||
3289 | dev_dbg(&udev->dev, "can't resume, status %d\n", status); | ||
3290 | hub_port_logical_disconnect(hub, port1); | ||
3291 | } else if (udev->reset_resume) { | ||
3292 | dev_dbg(&udev->dev, "reset-resume\n"); | ||
3293 | status = usb_reset_and_verify_device(udev); | ||
3294 | } | ||
3295 | return status; | ||
3296 | } | ||
3297 | |||
3298 | #endif | 3270 | #endif |
3299 | 3271 | ||
3300 | static int check_ports_changed(struct usb_hub *hub) | 3272 | static int check_ports_changed(struct usb_hub *hub) |
@@ -4356,7 +4328,7 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1, | |||
4356 | if (portstatus & USB_PORT_STAT_ENABLE) { | 4328 | if (portstatus & USB_PORT_STAT_ENABLE) { |
4357 | status = 0; /* Nothing to do */ | 4329 | status = 0; /* Nothing to do */ |
4358 | 4330 | ||
4359 | #ifdef CONFIG_USB_SUSPEND | 4331 | #ifdef CONFIG_PM_RUNTIME |
4360 | } else if (udev->state == USB_STATE_SUSPENDED && | 4332 | } else if (udev->state == USB_STATE_SUSPENDED && |
4361 | udev->persist_enabled) { | 4333 | udev->persist_enabled) { |
4362 | /* For a suspended device, treat this as a | 4334 | /* For a suspended device, treat this as a |
diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c index 797f9d514732..06c4894bf181 100644 --- a/drivers/usb/core/port.c +++ b/drivers/usb/core/port.c | |||
@@ -71,7 +71,7 @@ static void usb_port_device_release(struct device *dev) | |||
71 | kfree(port_dev); | 71 | kfree(port_dev); |
72 | } | 72 | } |
73 | 73 | ||
74 | #ifdef CONFIG_USB_SUSPEND | 74 | #ifdef CONFIG_PM_RUNTIME |
75 | static int usb_port_runtime_resume(struct device *dev) | 75 | static int usb_port_runtime_resume(struct device *dev) |
76 | { | 76 | { |
77 | struct usb_port *port_dev = to_usb_port(dev); | 77 | struct usb_port *port_dev = to_usb_port(dev); |
@@ -139,7 +139,7 @@ static int usb_port_runtime_suspend(struct device *dev) | |||
139 | #endif | 139 | #endif |
140 | 140 | ||
141 | static const struct dev_pm_ops usb_port_pm_ops = { | 141 | static const struct dev_pm_ops usb_port_pm_ops = { |
142 | #ifdef CONFIG_USB_SUSPEND | 142 | #ifdef CONFIG_PM_RUNTIME |
143 | .runtime_suspend = usb_port_runtime_suspend, | 143 | .runtime_suspend = usb_port_runtime_suspend, |
144 | .runtime_resume = usb_port_runtime_resume, | 144 | .runtime_resume = usb_port_runtime_resume, |
145 | .runtime_idle = pm_generic_runtime_idle, | 145 | .runtime_idle = pm_generic_runtime_idle, |
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c index 3f81a3dc6867..aa38db44818a 100644 --- a/drivers/usb/core/sysfs.c +++ b/drivers/usb/core/sysfs.c | |||
@@ -338,7 +338,7 @@ static void remove_persist_attributes(struct device *dev) | |||
338 | 338 | ||
339 | #endif /* CONFIG_PM */ | 339 | #endif /* CONFIG_PM */ |
340 | 340 | ||
341 | #ifdef CONFIG_USB_SUSPEND | 341 | #ifdef CONFIG_PM_RUNTIME |
342 | 342 | ||
343 | static ssize_t | 343 | static ssize_t |
344 | show_connected_duration(struct device *dev, struct device_attribute *attr, | 344 | show_connected_duration(struct device *dev, struct device_attribute *attr, |
@@ -544,7 +544,7 @@ static void remove_power_attributes(struct device *dev) | |||
544 | #define add_power_attributes(dev) 0 | 544 | #define add_power_attributes(dev) 0 |
545 | #define remove_power_attributes(dev) do {} while (0) | 545 | #define remove_power_attributes(dev) do {} while (0) |
546 | 546 | ||
547 | #endif /* CONFIG_USB_SUSPEND */ | 547 | #endif /* CONFIG_PM_RUNTIME */ |
548 | 548 | ||
549 | 549 | ||
550 | /* Descriptor fields */ | 550 | /* Descriptor fields */ |
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c index f81b92572735..03eb7ae8fc1a 100644 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c | |||
@@ -49,7 +49,7 @@ const char *usbcore_name = "usbcore"; | |||
49 | 49 | ||
50 | static bool nousb; /* Disable USB when built into kernel image */ | 50 | static bool nousb; /* Disable USB when built into kernel image */ |
51 | 51 | ||
52 | #ifdef CONFIG_USB_SUSPEND | 52 | #ifdef CONFIG_PM_RUNTIME |
53 | static int usb_autosuspend_delay = 2; /* Default delay value, | 53 | static int usb_autosuspend_delay = 2; /* Default delay value, |
54 | * in seconds */ | 54 | * in seconds */ |
55 | module_param_named(autosuspend, usb_autosuspend_delay, int, 0644); | 55 | module_param_named(autosuspend, usb_autosuspend_delay, int, 0644); |
@@ -307,7 +307,7 @@ static const struct dev_pm_ops usb_device_pm_ops = { | |||
307 | .thaw = usb_dev_thaw, | 307 | .thaw = usb_dev_thaw, |
308 | .poweroff = usb_dev_poweroff, | 308 | .poweroff = usb_dev_poweroff, |
309 | .restore = usb_dev_restore, | 309 | .restore = usb_dev_restore, |
310 | #ifdef CONFIG_USB_SUSPEND | 310 | #ifdef CONFIG_PM_RUNTIME |
311 | .runtime_suspend = usb_runtime_suspend, | 311 | .runtime_suspend = usb_runtime_suspend, |
312 | .runtime_resume = usb_runtime_resume, | 312 | .runtime_resume = usb_runtime_resume, |
313 | .runtime_idle = usb_runtime_idle, | 313 | .runtime_idle = usb_runtime_idle, |
diff --git a/drivers/usb/core/usb.h b/drivers/usb/core/usb.h index a7f20bde0e5e..823857767a16 100644 --- a/drivers/usb/core/usb.h +++ b/drivers/usb/core/usb.h | |||
@@ -93,7 +93,7 @@ static inline int usb_port_resume(struct usb_device *udev, pm_message_t msg) | |||
93 | 93 | ||
94 | #endif | 94 | #endif |
95 | 95 | ||
96 | #ifdef CONFIG_USB_SUSPEND | 96 | #ifdef CONFIG_PM_RUNTIME |
97 | 97 | ||
98 | extern void usb_autosuspend_device(struct usb_device *udev); | 98 | extern void usb_autosuspend_device(struct usb_device *udev); |
99 | extern int usb_autoresume_device(struct usb_device *udev); | 99 | extern int usb_autoresume_device(struct usb_device *udev); |
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c index 170b9399e09f..a573d5ff9adc 100644 --- a/drivers/usb/host/ehci-pci.c +++ b/drivers/usb/host/ehci-pci.c | |||
@@ -292,17 +292,7 @@ static int ehci_pci_setup(struct usb_hcd *hcd) | |||
292 | } | 292 | } |
293 | } | 293 | } |
294 | 294 | ||
295 | #ifdef CONFIG_USB_SUSPEND | 295 | #ifdef CONFIG_PM_RUNTIME |
296 | /* REVISIT: the controller works fine for wakeup iff the root hub | ||
297 | * itself is "globally" suspended, but usbcore currently doesn't | ||
298 | * understand such things. | ||
299 | * | ||
300 | * System suspend currently expects to be able to suspend the entire | ||
301 | * device tree, device-at-a-time. If we failed selective suspend | ||
302 | * reports, system suspend would fail; so the root hub code must claim | ||
303 | * success. That's lying to usbcore, and it matters for runtime | ||
304 | * PM scenarios with selective suspend and remote wakeup... | ||
305 | */ | ||
306 | if (ehci->no_selective_suspend && device_can_wakeup(&pdev->dev)) | 296 | if (ehci->no_selective_suspend && device_can_wakeup(&pdev->dev)) |
307 | ehci_warn(ehci, "selective suspend/wakeup unavailable\n"); | 297 | ehci_warn(ehci, "selective suspend/wakeup unavailable\n"); |
308 | #endif | 298 | #endif |
diff --git a/drivers/usb/host/ohci-hub.c b/drivers/usb/host/ohci-hub.c index db09dae7b557..60ff4220e8b4 100644 --- a/drivers/usb/host/ohci-hub.c +++ b/drivers/usb/host/ohci-hub.c | |||
@@ -580,14 +580,8 @@ static int ohci_start_port_reset (struct usb_hcd *hcd, unsigned port) | |||
580 | 580 | ||
581 | /* See usb 7.1.7.5: root hubs must issue at least 50 msec reset signaling, | 581 | /* See usb 7.1.7.5: root hubs must issue at least 50 msec reset signaling, |
582 | * not necessarily continuous ... to guard against resume signaling. | 582 | * not necessarily continuous ... to guard against resume signaling. |
583 | * The short timeout is safe for non-root hubs, and is backward-compatible | ||
584 | * with earlier Linux hosts. | ||
585 | */ | 583 | */ |
586 | #ifdef CONFIG_USB_SUSPEND | ||
587 | #define PORT_RESET_MSEC 50 | 584 | #define PORT_RESET_MSEC 50 |
588 | #else | ||
589 | #define PORT_RESET_MSEC 10 | ||
590 | #endif | ||
591 | 585 | ||
592 | /* this timer value might be vendor-specific ... */ | 586 | /* this timer value might be vendor-specific ... */ |
593 | #define PORT_RESET_HW_MSEC 10 | 587 | #define PORT_RESET_HW_MSEC 10 |
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c index d62f0404baaa..15ed7e8d887f 100644 --- a/drivers/usb/host/sl811-hcd.c +++ b/drivers/usb/host/sl811-hcd.c | |||
@@ -1755,7 +1755,7 @@ sl811h_probe(struct platform_device *dev) | |||
1755 | 1755 | ||
1756 | /* for this device there's no useful distinction between the controller | 1756 | /* for this device there's no useful distinction between the controller |
1757 | * and its root hub, except that the root hub only gets direct PM calls | 1757 | * and its root hub, except that the root hub only gets direct PM calls |
1758 | * when CONFIG_USB_SUSPEND is enabled. | 1758 | * when CONFIG_PM_RUNTIME is enabled. |
1759 | */ | 1759 | */ |
1760 | 1760 | ||
1761 | static int | 1761 | static int |
diff --git a/drivers/usb/host/u132-hcd.c b/drivers/usb/host/u132-hcd.c index 5efdffe32365..5c124bf5d018 100644 --- a/drivers/usb/host/u132-hcd.c +++ b/drivers/usb/host/u132-hcd.c | |||
@@ -3141,10 +3141,11 @@ static int u132_probe(struct platform_device *pdev) | |||
3141 | 3141 | ||
3142 | 3142 | ||
3143 | #ifdef CONFIG_PM | 3143 | #ifdef CONFIG_PM |
3144 | /* for this device there's no useful distinction between the controller | 3144 | /* |
3145 | * and its root hub, except that the root hub only gets direct PM calls | 3145 | * for this device there's no useful distinction between the controller |
3146 | * when CONFIG_USB_SUSPEND is enabled. | 3146 | * and its root hub, except that the root hub only gets direct PM calls |
3147 | */ | 3147 | * when CONFIG_PM_RUNTIME is enabled. |
3148 | */ | ||
3148 | static int u132_suspend(struct platform_device *pdev, pm_message_t state) | 3149 | static int u132_suspend(struct platform_device *pdev, pm_message_t state) |
3149 | { | 3150 | { |
3150 | struct usb_hcd *hcd = platform_get_drvdata(pdev); | 3151 | struct usb_hcd *hcd = platform_get_drvdata(pdev); |
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c index 68914429482f..187a3ec1069a 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c | |||
@@ -1075,7 +1075,7 @@ int xhci_bus_suspend(struct usb_hcd *hcd) | |||
1075 | set_bit(port_index, &bus_state->bus_suspended); | 1075 | set_bit(port_index, &bus_state->bus_suspended); |
1076 | } | 1076 | } |
1077 | /* USB core sets remote wake mask for USB 3.0 hubs, | 1077 | /* USB core sets remote wake mask for USB 3.0 hubs, |
1078 | * including the USB 3.0 roothub, but only if CONFIG_USB_SUSPEND | 1078 | * including the USB 3.0 roothub, but only if CONFIG_PM_RUNTIME |
1079 | * is enabled, so also enable remote wake here. | 1079 | * is enabled, so also enable remote wake here. |
1080 | */ | 1080 | */ |
1081 | if (hcd->self.root_hub->do_remote_wakeup) { | 1081 | if (hcd->self.root_hub->do_remote_wakeup) { |
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 53b8f89a0b1c..5156b720a53a 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c | |||
@@ -3801,7 +3801,7 @@ int xhci_find_raw_port_number(struct usb_hcd *hcd, int port1) | |||
3801 | return raw_port; | 3801 | return raw_port; |
3802 | } | 3802 | } |
3803 | 3803 | ||
3804 | #ifdef CONFIG_USB_SUSPEND | 3804 | #ifdef CONFIG_PM_RUNTIME |
3805 | 3805 | ||
3806 | /* BESL to HIRD Encoding array for USB2 LPM */ | 3806 | /* BESL to HIRD Encoding array for USB2 LPM */ |
3807 | static int xhci_besl_encoding[16] = {125, 150, 200, 300, 400, 500, 1000, 2000, | 3807 | static int xhci_besl_encoding[16] = {125, 150, 200, 300, 400, 500, 1000, 2000, |
@@ -4051,7 +4051,7 @@ int xhci_update_device(struct usb_hcd *hcd, struct usb_device *udev) | |||
4051 | return 0; | 4051 | return 0; |
4052 | } | 4052 | } |
4053 | 4053 | ||
4054 | #endif /* CONFIG_USB_SUSPEND */ | 4054 | #endif /* CONFIG_PM_RUNTIME */ |
4055 | 4055 | ||
4056 | /*---------------------- USB 3.0 Link PM functions ------------------------*/ | 4056 | /*---------------------- USB 3.0 Link PM functions ------------------------*/ |
4057 | 4057 | ||
diff --git a/include/linux/usb.h b/include/linux/usb.h index 8d4bc173d66a..a0bee5a28d1a 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
@@ -617,7 +617,7 @@ static inline bool usb_acpi_power_manageable(struct usb_device *hdev, int index) | |||
617 | #endif | 617 | #endif |
618 | 618 | ||
619 | /* USB autosuspend and autoresume */ | 619 | /* USB autosuspend and autoresume */ |
620 | #ifdef CONFIG_USB_SUSPEND | 620 | #ifdef CONFIG_PM_RUNTIME |
621 | extern void usb_enable_autosuspend(struct usb_device *udev); | 621 | extern void usb_enable_autosuspend(struct usb_device *udev); |
622 | extern void usb_disable_autosuspend(struct usb_device *udev); | 622 | extern void usb_disable_autosuspend(struct usb_device *udev); |
623 | 623 | ||
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h index 59694b5e5e90..f5f5c7dfda90 100644 --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h | |||
@@ -84,7 +84,7 @@ struct usb_hcd { | |||
84 | 84 | ||
85 | struct timer_list rh_timer; /* drives root-hub polling */ | 85 | struct timer_list rh_timer; /* drives root-hub polling */ |
86 | struct urb *status_urb; /* the current status urb */ | 86 | struct urb *status_urb; /* the current status urb */ |
87 | #ifdef CONFIG_USB_SUSPEND | 87 | #ifdef CONFIG_PM_RUNTIME |
88 | struct work_struct wakeup_work; /* for remote wakeup */ | 88 | struct work_struct wakeup_work; /* for remote wakeup */ |
89 | #endif | 89 | #endif |
90 | 90 | ||
@@ -593,14 +593,14 @@ extern int hcd_bus_suspend(struct usb_device *rhdev, pm_message_t msg); | |||
593 | extern int hcd_bus_resume(struct usb_device *rhdev, pm_message_t msg); | 593 | extern int hcd_bus_resume(struct usb_device *rhdev, pm_message_t msg); |
594 | #endif /* CONFIG_PM */ | 594 | #endif /* CONFIG_PM */ |
595 | 595 | ||
596 | #ifdef CONFIG_USB_SUSPEND | 596 | #ifdef CONFIG_PM_RUNTIME |
597 | extern void usb_hcd_resume_root_hub(struct usb_hcd *hcd); | 597 | extern void usb_hcd_resume_root_hub(struct usb_hcd *hcd); |
598 | #else | 598 | #else |
599 | static inline void usb_hcd_resume_root_hub(struct usb_hcd *hcd) | 599 | static inline void usb_hcd_resume_root_hub(struct usb_hcd *hcd) |
600 | { | 600 | { |
601 | return; | 601 | return; |
602 | } | 602 | } |
603 | #endif /* CONFIG_USB_SUSPEND */ | 603 | #endif /* CONFIG_PM_RUNTIME */ |
604 | 604 | ||
605 | /*-------------------------------------------------------------------------*/ | 605 | /*-------------------------------------------------------------------------*/ |
606 | 606 | ||