diff options
Diffstat (limited to 'drivers/usb/core/hcd.c')
| -rw-r--r-- | drivers/usb/core/hcd.c | 13 | 
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index fc4290b6691..b07ba051118 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c @@ -39,6 +39,7 @@  #include <linux/platform_device.h>  #include <linux/workqueue.h>  #include <linux/mutex.h> +#include <linux/pm_runtime.h>  #include <linux/usb.h> @@ -1858,6 +1859,10 @@ int hcd_bus_resume(struct usb_device *rhdev, pm_message_t msg)  	return status;  } +#endif	/* CONFIG_PM */ + +#ifdef	CONFIG_USB_SUSPEND +  /* Workqueue routine for root-hub remote wakeup */  static void hcd_resume_work(struct work_struct *work)  { @@ -1884,12 +1889,12 @@ void usb_hcd_resume_root_hub (struct usb_hcd *hcd)  	spin_lock_irqsave (&hcd_root_hub_lock, flags);  	if (hcd->rh_registered) -		queue_work(ksuspend_usb_wq, &hcd->wakeup_work); +		queue_work(pm_wq, &hcd->wakeup_work);  	spin_unlock_irqrestore (&hcd_root_hub_lock, flags);  }  EXPORT_SYMBOL_GPL(usb_hcd_resume_root_hub); -#endif +#endif	/* CONFIG_USB_SUSPEND */  /*-------------------------------------------------------------------------*/ @@ -2034,7 +2039,7 @@ struct usb_hcd *usb_create_hcd (const struct hc_driver *driver,  	init_timer(&hcd->rh_timer);  	hcd->rh_timer.function = rh_timer_func;  	hcd->rh_timer.data = (unsigned long) hcd; -#ifdef CONFIG_PM +#ifdef CONFIG_USB_SUSPEND  	INIT_WORK(&hcd->wakeup_work, hcd_resume_work);  #endif  	mutex_init(&hcd->bandwidth_mutex); @@ -2234,7 +2239,7 @@ void usb_remove_hcd(struct usb_hcd *hcd)  	hcd->rh_registered = 0;  	spin_unlock_irq (&hcd_root_hub_lock); -#ifdef CONFIG_PM +#ifdef CONFIG_USB_SUSPEND  	cancel_work_sync(&hcd->wakeup_work);  #endif  |