Skip to content

Commit

Permalink
ipw2100: fix rebooting hang with driver loaded
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Zhu Yi authored and John W. Linville committed Dec 4, 2009
1 parent 269ac5f commit 52ce3e9
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions drivers/net/wireless/ipw2x00/ipw2100.c
Original file line number Diff line number Diff line change
Expand Up @@ -6573,6 +6573,16 @@ static int ipw2100_resume(struct pci_dev *pci_dev)
}
#endif

static void ipw2100_shutdown(struct pci_dev *pci_dev)
{
struct ipw2100_priv *priv = pci_get_drvdata(pci_dev);

/* Take down the device; powers it off, etc. */
ipw2100_down(priv);

pci_disable_device(pci_dev);
}

#define IPW2100_DEV_ID(x) { PCI_VENDOR_ID_INTEL, 0x1043, 0x8086, x }

static struct pci_device_id ipw2100_pci_id_table[] __devinitdata = {
Expand Down Expand Up @@ -6636,6 +6646,7 @@ static struct pci_driver ipw2100_pci_driver = {
.suspend = ipw2100_suspend,
.resume = ipw2100_resume,
#endif
.shutdown = ipw2100_shutdown,
};

/**
Expand Down

0 comments on commit 52ce3e9

Please sign in to comment.