Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d7f9877 authored by Ivo van Doorn's avatar Ivo van Doorn Committed by David S. Miller
Browse files

[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: default avatarIvo van Doorn <IvDoorn@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 3a84732a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -508,6 +508,7 @@ struct rt2x00_dev {
#define CONFIG_EXTERNAL_LNA_BG		13
#define CONFIG_DOUBLE_ANTENNA		14
#define CONFIG_DISABLE_LINK_TUNING	15
#define DEVICE_STARTED_SUSPEND		16

	/*
	 * Chipset identification.
+4 −3
Original line number Diff line number Diff line
@@ -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;

	/*