aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/core/Kconfig16
-rw-r--r--drivers/usb/core/driver.c4
-rw-r--r--drivers/usb/core/hcd.c10
-rw-r--r--drivers/usb/core/hub.c42
-rw-r--r--drivers/usb/core/port.c4
-rw-r--r--drivers/usb/core/sysfs.c4
-rw-r--r--drivers/usb/core/usb.c4
-rw-r--r--drivers/usb/core/usb.h2
-rw-r--r--drivers/usb/host/ehci-pci.c12
-rw-r--r--drivers/usb/host/ohci-hub.c6
-rw-r--r--drivers/usb/host/sl811-hcd.c2
-rw-r--r--drivers/usb/host/u132-hcd.c9
-rw-r--r--drivers/usb/host/xhci-hub.c2
-rw-r--r--drivers/usb/host/xhci.c4
-rw-r--r--include/linux/usb.h2
-rw-r--r--include/linux/usb/hcd.h6
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
41config 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
57config USB_OTG 41config 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
1785struct bus_type usb_bus_type = { 1785struct 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 */
2131static void hcd_resume_work(struct work_struct *work) 2131static void hcd_resume_work(struct work_struct *work)
@@ -2160,7 +2160,7 @@ void usb_hcd_resume_root_hub (struct usb_hcd *hcd)
2160} 2160}
2161EXPORT_SYMBOL_GPL(usb_hcd_resume_root_hub); 2161EXPORT_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}
2828EXPORT_SYMBOL_GPL(usb_enable_ltm); 2828EXPORT_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 */
3251int usb_remote_wakeup(struct usb_device *udev) 3255int 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
3270int 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
3277int 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
3300static int check_ports_changed(struct usb_hub *hub) 3272static 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
75static int usb_port_runtime_resume(struct device *dev) 75static 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
141static const struct dev_pm_ops usb_port_pm_ops = { 141static 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
343static ssize_t 343static ssize_t
344show_connected_duration(struct device *dev, struct device_attribute *attr, 344show_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
50static bool nousb; /* Disable USB when built into kernel image */ 50static bool nousb; /* Disable USB when built into kernel image */
51 51
52#ifdef CONFIG_USB_SUSPEND 52#ifdef CONFIG_PM_RUNTIME
53static int usb_autosuspend_delay = 2; /* Default delay value, 53static int usb_autosuspend_delay = 2; /* Default delay value,
54 * in seconds */ 54 * in seconds */
55module_param_named(autosuspend, usb_autosuspend_delay, int, 0644); 55module_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
98extern void usb_autosuspend_device(struct usb_device *udev); 98extern void usb_autosuspend_device(struct usb_device *udev);
99extern int usb_autoresume_device(struct usb_device *udev); 99extern 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
1761static int 1761static 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 */
3148static int u132_suspend(struct platform_device *pdev, pm_message_t state) 3149static 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 */
3807static int xhci_besl_encoding[16] = {125, 150, 200, 300, 400, 500, 1000, 2000, 3807static 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
621extern void usb_enable_autosuspend(struct usb_device *udev); 621extern void usb_enable_autosuspend(struct usb_device *udev);
622extern void usb_disable_autosuspend(struct usb_device *udev); 622extern 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);
593extern int hcd_bus_resume(struct usb_device *rhdev, pm_message_t msg); 593extern 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
597extern void usb_hcd_resume_root_hub(struct usb_hcd *hcd); 597extern void usb_hcd_resume_root_hub(struct usb_hcd *hcd);
598#else 598#else
599static inline void usb_hcd_resume_root_hub(struct usb_hcd *hcd) 599static 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