aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00dev.c
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2007-10-06 14:12:42 +0200
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 16:55:09 -0700
commit6d7f9877a66a3abe0b04b63d1de4659919e21a92 (patch)
treec89cd9767c0a8aaef89e799b3a821262f703d7d5 /drivers/net/wireless/rt2x00/rt2x00dev.c
parent[PATCH] rt2x00: Remove radio check from rt2x00lib_toggle_rx (diff)
downloadlinux-dev-6d7f9877a66a3abe0b04b63d1de4659919e21a92.tar.xz
linux-dev-6d7f9877a66a3abe0b04b63d1de4659919e21a92.zip
[PATCH] rt2x00: Store "STARTED" state during suspend
Store the started state into a new flag DEVICE_STARTED_SUSPEND and set this when suspending while the device was started. We can't check for is_interface_present() since only mac80211 knows if there are monitor interfaces present. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to '')
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index b6a5c3481126..f25475318c9b 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -1088,12 +1088,13 @@ int rt2x00lib_suspend(struct rt2x00_dev *rt2x00dev, pm_message_t state)
*/
if (!test_bit(DEVICE_STARTED, &rt2x00dev->flags))
goto exit;
+ __set_bit(DEVICE_STARTED_SUSPEND, &rt2x00dev->flags);
/*
* Disable radio and unitialize all items
* that must be recreated on resume.
*/
- rt2x00lib_disable_radio(rt2x00dev);
+ rt2x00mac_stop(rt2x00dev->hw);
rt2x00lib_uninitialize(rt2x00dev);
rt2x00debug_deregister(rt2x00dev);
@@ -1123,9 +1124,9 @@ int rt2x00lib_resume(struct rt2x00_dev *rt2x00dev)
rt2x00debug_register(rt2x00dev);
/*
- * Only continue if mac80211 has open interfaces.
+ * Only continue if mac80211 had open interfaces.
*/
- if (!test_bit(DEVICE_STARTED, &rt2x00dev->flags))
+ if (!__test_and_clear_bit(DEVICE_STARTED_SUSPEND, &rt2x00dev->flags))
return 0;
/*