[PATCH] USB: net2280: add a shutdown routine
The net2280 board has an annoying habit of surviving soft reboots with interrupts enabled. This patch (as674) adds a shutdown routine to the driver so that the board can be put in a quiescent state. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b383539e04
commit
2d61bde7a0
@@ -2966,6 +2966,22 @@ done:
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* make sure the board is quiescent; otherwise it will continue
|
||||||
|
* generating IRQs across the upcoming reboot.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void net2280_shutdown (struct pci_dev *pdev)
|
||||||
|
{
|
||||||
|
struct net2280 *dev = pci_get_drvdata (pdev);
|
||||||
|
|
||||||
|
/* disable IRQs */
|
||||||
|
writel (0, &dev->regs->pciirqenb0);
|
||||||
|
writel (0, &dev->regs->pciirqenb1);
|
||||||
|
|
||||||
|
/* disable the pullup so the host will think we're gone */
|
||||||
|
writel (0, &dev->usb->usbctl);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
@@ -2995,6 +3011,7 @@ static struct pci_driver net2280_pci_driver = {
|
|||||||
|
|
||||||
.probe = net2280_probe,
|
.probe = net2280_probe,
|
||||||
.remove = net2280_remove,
|
.remove = net2280_remove,
|
||||||
|
.shutdown = net2280_shutdown,
|
||||||
|
|
||||||
/* FIXME add power management support */
|
/* FIXME add power management support */
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user