aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ipw2x00
diff options
context:
space:
mode:
authorZhu Yi <yi.zhu@intel.com>2009-12-02 01:24:37 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-12-04 14:16:25 -0500
commit52ce3e9a7db754b78cf2cbabc87013f921b25b28 (patch)
tree994271a4ae1f045f1776349dbe9f44b6c975809a /drivers/net/wireless/ipw2x00
parent269ac5fd2d75b118d76a2291e28796527db2f3f8 (diff)
ipw2100: fix rebooting hang with driver loaded
Add PCI .shutdown method so that we can disable the device during shutdown or reboot. Without this, the reboot doesn't work well on some platforms. This fixes http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2124 Tested-by: pablo <pablolm2005@gmail.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ipw2x00')
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2100.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/wireless/ipw2x00/ipw2100.c b/drivers/net/wireless/ipw2x00/ipw2100.c
index 6c836c892e43..17a9cb3528fc 100644
--- a/drivers/net/wireless/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/ipw2x00/ipw2100.c
@@ -6573,6 +6573,16 @@ static int ipw2100_resume(struct pci_dev *pci_dev)
6573} 6573}
6574#endif 6574#endif
6575 6575
6576static void ipw2100_shutdown(struct pci_dev *pci_dev)
6577{
6578 struct ipw2100_priv *priv = pci_get_drvdata(pci_dev);
6579
6580 /* Take down the device; powers it off, etc. */
6581 ipw2100_down(priv);
6582
6583 pci_disable_device(pci_dev);
6584}
6585
6576#define IPW2100_DEV_ID(x) { PCI_VENDOR_ID_INTEL, 0x1043, 0x8086, x } 6586#define IPW2100_DEV_ID(x) { PCI_VENDOR_ID_INTEL, 0x1043, 0x8086, x }
6577 6587
6578static struct pci_device_id ipw2100_pci_id_table[] __devinitdata = { 6588static struct pci_device_id ipw2100_pci_id_table[] __devinitdata = {
@@ -6636,6 +6646,7 @@ static struct pci_driver ipw2100_pci_driver = {
6636 .suspend = ipw2100_suspend, 6646 .suspend = ipw2100_suspend,
6637 .resume = ipw2100_resume, 6647 .resume = ipw2100_resume,
6638#endif 6648#endif
6649 .shutdown = ipw2100_shutdown,
6639}; 6650};
6640 6651
6641/** 6652/**