iwlwifi: fix suspend/resume and its usage of pci saved state
authorReinette Chatre <reinette.chatre@intel.com>
Tue, 10 Feb 2009 20:02:49 +0000 (12:02 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 11 Feb 2009 16:27:21 +0000 (11:27 -0500)
commit89c581b3fb2986e303f1299e6458e3e9b115fa3f
tree6123009bfd05d833060ecf44c9965870beb5e3d5
parentefb43f4b2ccf8066abc3920a0e6858e4350a65c7
iwlwifi: fix suspend/resume and its usage of pci saved state

Here we do two things:

First, revert "iwlwifi: save PCI state before suspend, restore after
resume".  That misguided patch led to being unable to use iwlwifi
devices after resume.

Next, indicate to PCI driver that the saved PCI state is valid during suspend.

We restore PCI state and enable the device when network interface is created,
similarly PCI state is saved and the device is disabled when network interface
is removed. Thus, when .suspend is called the PCI state is saved and device
is disabled. This is the case even if an interface is never created as PCI
state is saved and device disabled during .probe.

PCI driver assumes PCI state is saved in .suspend. Saving the state at this
time will save state of disabled device and thus cause problems during
resume (resuming a disabled device). We thus indicate directly to PCI
driver that current PCI saved state is valid.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Tested-by: Alex Riesen <fork0@users.sf.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl3945-base.c