mirror of https://gitee.com/openkylin/linux.git
[PATCH] USB UHCI: Add shutdown method
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>
This commit is contained in:
parent
c074b416b9
commit
02597d2dee
|
@ -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)
|
||||
{
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue