aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorZhu Yi <yi.zhu@intel.com>2006-08-20 23:38:39 -0400
committerJohn W. Linville <linville@tuxdriver.com>2006-08-29 17:06:33 -0400
commitc8c22c942e46ca0e06fc7c72845314da1ad41702 (patch)
treedf4ed73123b9cb1cddac846c0d8c82370b638596 /drivers
parentb9bec768c321e51a8da00d56230bc795464992b2 (diff)
[PATCH] ipw2200: Add pci .shutdown handler
If we don't disable the card in the pci .shutdown method, there might be pending interrupts still in the interrupt line after a reboot on some platform. This patch fixes the problem by disable the hardware in the pci .shutdown method. Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ipw2200.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index e18fbca83cef..15258301b643 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -11735,6 +11735,16 @@ static int ipw_pci_resume(struct pci_dev *pdev)
11735} 11735}
11736#endif 11736#endif
11737 11737
11738static void ipw_pci_shutdown(struct pci_dev *pdev)
11739{
11740 struct ipw_priv *priv = pci_get_drvdata(pdev);
11741
11742 /* Take down the device; powers it off, etc. */
11743 ipw_down(priv);
11744
11745 pci_disable_device(pdev);
11746}
11747
11738/* driver initialization stuff */ 11748/* driver initialization stuff */
11739static struct pci_driver ipw_driver = { 11749static struct pci_driver ipw_driver = {
11740 .name = DRV_NAME, 11750 .name = DRV_NAME,
@@ -11745,6 +11755,7 @@ static struct pci_driver ipw_driver = {
11745 .suspend = ipw_pci_suspend, 11755 .suspend = ipw_pci_suspend,
11746 .resume = ipw_pci_resume, 11756 .resume = ipw_pci_resume,
11747#endif 11757#endif
11758 .shutdown = ipw_pci_shutdown,
11748}; 11759};
11749 11760
11750static int __init ipw_init(void) 11761static int __init ipw_init(void)