From ca142567ba97c738c1c403bd8119d239ed98e3ac Mon Sep 17 00:00:00 2001 From: Alan Stern Date: Fri, 5 May 2006 16:23:42 -0400 Subject: [PATCH] --- yaml --- r: 28324 b: refs/heads/master c: 2d61bde7a0e630e1906e6478b6b2a7aeaaa8f8da h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/usb/gadget/net2280.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 228f7bfba95a..33e3919eef8a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b383539e04c413e040d998aedcc120c49aa670da +refs/heads/master: 2d61bde7a0e630e1906e6478b6b2a7aeaaa8f8da diff --git a/trunk/drivers/usb/gadget/net2280.c b/trunk/drivers/usb/gadget/net2280.c index 020d3c42b1af..1facdea56a8a 100644 --- a/trunk/drivers/usb/gadget/net2280.c +++ b/trunk/drivers/usb/gadget/net2280.c @@ -2966,6 +2966,22 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id) 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, .remove = net2280_remove, + .shutdown = net2280_shutdown, /* FIXME add power management support */ };