aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core/hcd.c
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2006-08-30 15:47:11 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2006-09-27 14:58:57 -0400
commit02c399ee45a54987c152fe5f627ed949bb55f187 (patch)
treeb4af9b47729985739815f62a2388e4afa2b49e03 /drivers/usb/core/hcd.c
parent01d883d44a1ca8dc77486635d428cba63e7fdadf (diff)
usbcore: remove usb_suspend_root_hub
This patch (as740) removes the existing support for autosuspend of root hubs. That support fit in rather awkwardly with the rest of usbcore and it was used only by ohci-hcd. It won't be needed any more since the hub driver will take care of autosuspending all hubs, root or external. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/core/hcd.c')
-rw-r--r--drivers/usb/core/hcd.c44
1 files changed, 0 insertions, 44 deletions
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 9dfc812de03..e86f6295708 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1431,50 +1431,6 @@ int hcd_bus_resume (struct usb_bus *bus)
1431 return status; 1431 return status;
1432} 1432}
1433 1433
1434/*
1435 * usb_hcd_suspend_root_hub - HCD autosuspends downstream ports
1436 * @hcd: host controller for this root hub
1437 *
1438 * This call arranges that usb_hcd_resume_root_hub() is safe to call later;
1439 * that the HCD's root hub polling is deactivated; and that the root's hub
1440 * driver is suspended. HCDs may call this to autosuspend when their root
1441 * hub's downstream ports are all inactive: unpowered, disconnected,
1442 * disabled, or suspended.
1443 *
1444 * The HCD will autoresume on device connect change detection (using SRP
1445 * or a D+/D- pullup). The HCD also autoresumes on remote wakeup signaling
1446 * from any ports that are suspended (if that is enabled). In most cases,
1447 * overcurrent signaling (on powered ports) will also start autoresume.
1448 *
1449 * Always called with IRQs blocked.
1450 */
1451void usb_hcd_suspend_root_hub (struct usb_hcd *hcd)
1452{
1453 struct urb *urb;
1454
1455 spin_lock (&hcd_root_hub_lock);
1456 usb_suspend_root_hub (hcd->self.root_hub);
1457
1458 /* force status urb to complete/unlink while suspended */
1459 if (hcd->status_urb) {
1460 urb = hcd->status_urb;
1461 urb->status = -ECONNRESET;
1462 urb->hcpriv = NULL;
1463 urb->actual_length = 0;
1464
1465 del_timer (&hcd->rh_timer);
1466 hcd->poll_pending = 0;
1467 hcd->status_urb = NULL;
1468 } else
1469 urb = NULL;
1470 spin_unlock (&hcd_root_hub_lock);
1471 hcd->state = HC_STATE_SUSPENDED;
1472
1473 if (urb)
1474 usb_hcd_giveback_urb (hcd, urb, NULL);
1475}
1476EXPORT_SYMBOL_GPL(usb_hcd_suspend_root_hub);
1477
1478/** 1434/**
1479 * usb_hcd_resume_root_hub - called by HCD to resume its root hub 1435 * usb_hcd_resume_root_hub - called by HCD to resume its root hub
1480 * @hcd: host controller for this root hub 1436 * @hcd: host controller for this root hub