Skip to content

Commit

Permalink
[PATCH] USB UHCI: Add shutdown method
Browse files Browse the repository at this point in the history
After all the discussion you might not be interested in this still, but
nevertheless here it is.  This patch adds a shutdown method to the
uhci-hcd driver.  Its prerequisite is the patch you wrote adding shutdown
support for PCI.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Alan Stern authored and Greg Kroah-Hartman committed Jun 27, 2005
1 parent c074b41 commit 02597d2
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions drivers/usb/host/uhci-hcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ static void reset_hc(struct uhci_hcd *uhci)

/*
* Last rites for a defunct/nonfunctional controller
* or one we don't want to use any more.
*/
static void hc_died(struct uhci_hcd *uhci)
{
Expand Down Expand Up @@ -525,6 +526,20 @@ static int uhci_reset(struct usb_hcd *hcd)
return 0;
}

/* Make sure the controller is quiescent and that we're not using it
* any more. This is mainly for the benefit of programs which, like kexec,
* expect the hardware to be idle: not doing DMA or generating IRQs.
*
* This routine may be called in a damaged or failing kernel. Hence we
* do not acquire the spinlock before shutting down the controller.
*/
static void uhci_shutdown(struct pci_dev *pdev)
{
struct usb_hcd *hcd = (struct usb_hcd *) pci_get_drvdata(pdev);

hc_died(hcd_to_uhci(hcd));
}

/*
* Allocate a frame list, and then setup the skeleton
*
Expand Down Expand Up @@ -939,6 +954,7 @@ static struct pci_driver uhci_pci_driver = {

.probe = usb_hcd_pci_probe,
.remove = usb_hcd_pci_remove,
.shutdown = uhci_shutdown,

#ifdef CONFIG_PM
.suspend = usb_hcd_pci_suspend,
Expand Down

0 comments on commit 02597d2

Please sign in to comment.