From: Ivo van Doorn <ivdoorn@gmail.com>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org, rt2400-devel@lists.sourceforge.net
Subject: [PATCH 11/24] rt2x00: Remove rt2x00mac_reset()
Date: Sun, 16 Sep 2007 14:18:43 +0200 [thread overview]
Message-ID: <200709161418.44822.IvDoorn@gmail.com> (raw)
In-Reply-To: <200709161403.11332.IvDoorn@gmail.com>
rt2x00mac_reset() only had a single caller which
didn't require the shutdown part of the function.
This means the time has come to remove the function
completely and have the resume handler perform all
tasks itself.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
drivers/net/wireless/rt2x00/rt2x00.h | 3 +-
drivers/net/wireless/rt2x00/rt2x00config.c | 12 +++---
drivers/net/wireless/rt2x00/rt2x00dev.c | 49 ++++++++++++++++++++++-----
drivers/net/wireless/rt2x00/rt2x00mac.c | 47 --------------------------
4 files changed, 47 insertions(+), 64 deletions(-)
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index 5ecabc8..b5f408c 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -513,7 +513,7 @@ struct rt2x00_dev {
#define REQUIRE_FIRMWARE 5
#define PACKET_FILTER_SCHEDULED 6
#define PACKET_FILTER_PENDING 7
-#define INTERFACE_RESET 8
+#define INTERFACE_RESUME 8
#define INTERFACE_ENABLED 9
#define INTERFACE_ENABLED_MONITOR 10
#define REQUIRE_BEACON_RING 11
@@ -776,7 +776,6 @@ void rt2x00lib_write_tx_desc(struct rt2x00_dev *rt2x00dev,
*/
int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb,
struct ieee80211_tx_control *control);
-int rt2x00mac_reset(struct ieee80211_hw *hw);
int rt2x00mac_add_interface(struct ieee80211_hw *hw,
struct ieee80211_if_init_conf *conf);
void rt2x00mac_remove_interface(struct ieee80211_hw *hw,
diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c
index b5075b5..de890a1 100644
--- a/drivers/net/wireless/rt2x00/rt2x00config.c
+++ b/drivers/net/wireless/rt2x00/rt2x00config.c
@@ -50,10 +50,10 @@ void rt2x00lib_config_packet_filter(struct rt2x00_dev *rt2x00dev, int filter)
{
/*
* Only configure the device when something has changed,
- * or if we are in RESET state in which case all configuration
+ * or if we are in RESUME state in which case all configuration
* will be forced upon the device.
*/
- if (!test_bit(INTERFACE_RESET, &rt2x00dev->flags) &&
+ if (!test_bit(INTERFACE_RESUME, &rt2x00dev->flags) &&
!test_bit(PACKET_FILTER_PENDING, &rt2x00dev->flags))
return;
@@ -82,10 +82,10 @@ void rt2x00lib_config_type(struct rt2x00_dev *rt2x00dev, int type)
/*
* Only configure the device when something has changed,
- * or if we are in RESET state in which case all configuration
+ * or if we are in RESUME state in which case all configuration
* will be forced upon the device.
*/
- if (!test_bit(INTERFACE_RESET, &rt2x00dev->flags) &&
+ if (!test_bit(INTERFACE_RESUME, &rt2x00dev->flags) &&
(!(is_interface_present(intf) ^
test_bit(INTERFACE_ENABLED, &rt2x00dev->flags)) &&
!(is_monitor_present(intf) ^
@@ -119,10 +119,10 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev, struct ieee80211_conf *conf)
int flags = 0;
/*
- * If we are in RESET state we should
+ * If we are in RESUME state we should
* force all configuration options.
*/
- if (test_bit(INTERFACE_RESET, &rt2x00dev->flags)) {
+ if (test_bit(INTERFACE_RESUME, &rt2x00dev->flags)) {
flags = CONFIG_UPDATE_ALL;
goto config;
}
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index 81458bf..7730d9d 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -944,12 +944,6 @@ void rt2x00lib_deinit_interface(struct rt2x00_dev *rt2x00dev)
rt2x00lib_config_bssid(rt2x00dev, intf->bssid);
rt2x00lib_config_type(rt2x00dev, intf->type);
}
-
- /*
- * If we are in reset mode, the device must be deinitialized.
- */
- if (test_bit(INTERFACE_RESET, &rt2x00dev->flags))
- rt2x00lib_uninitialize(rt2x00dev);
}
/*
@@ -1136,7 +1130,11 @@ EXPORT_SYMBOL_GPL(rt2x00lib_suspend);
int rt2x00lib_resume(struct rt2x00_dev *rt2x00dev)
{
+ struct interface *intf = &rt2x00dev->interface;
+ int retval;
+
NOTICE(rt2x00dev, "Waking up.\n");
+ __set_bit(INTERFACE_RESUME, &rt2x00dev->flags);
/*
* Open the debugfs entry.
@@ -1144,10 +1142,43 @@ int rt2x00lib_resume(struct rt2x00_dev *rt2x00dev)
rt2x00debug_register(rt2x00dev);
/*
- * The reset handler can take care of bringing the
- * device back into a workable state.
+ * Reinitialize device and all active interfaces.
+ */
+ retval = rt2x00lib_init_interface(rt2x00dev);
+ if (retval)
+ goto exit;
+
+ /*
+ * Reconfigure device.
+ */
+ retval = rt2x00mac_config(rt2x00dev->hw, &rt2x00dev->hw->conf);
+ if (retval)
+ goto exit;
+
+ rt2x00lib_config_type(rt2x00dev, intf->type);
+ rt2x00lib_config_packet_filter(rt2x00dev, intf->filter);
+ rt2x00lib_config_bssid(rt2x00dev, intf->bssid);
+
+ /*
+ * When in Master or Ad-hoc mode,
+ * restart Beacon transmitting by faking a beacondone event.
*/
- return rt2x00mac_reset(rt2x00dev->hw);
+ if (intf->type == IEEE80211_IF_TYPE_AP ||
+ intf->type == IEEE80211_IF_TYPE_IBSS)
+ rt2x00lib_beacondone(rt2x00dev);
+
+ __clear_bit(INTERFACE_RESUME, &rt2x00dev->flags);
+
+ return 0;
+
+exit:
+ rt2x00lib_disable_radio(rt2x00dev);
+ rt2x00lib_uninitialize(rt2x00dev);
+ rt2x00debug_deregister(rt2x00dev);
+
+ __clear_bit(INTERFACE_RESUME, &rt2x00dev->flags);
+
+ return retval;
}
EXPORT_SYMBOL_GPL(rt2x00lib_resume);
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index 0001b79..006154c 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -121,53 +121,6 @@ int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb,
}
EXPORT_SYMBOL_GPL(rt2x00mac_tx);
-int rt2x00mac_reset(struct ieee80211_hw *hw)
-{
- struct rt2x00_dev *rt2x00dev = hw->priv;
- struct interface *intf = &rt2x00dev->interface;
- int retval;
-
- NOTICE(rt2x00dev, "Entering reset state.\n");
- __set_bit(INTERFACE_RESET, &rt2x00dev->flags);
-
- /*
- * Disable radio and unitialize all items
- * that we will recreate to reset the device.
- */
- rt2x00lib_disable_radio(rt2x00dev);
- rt2x00lib_deinit_interface(rt2x00dev);
-
- /*
- * Reinitialize device and all active interfaces.
- */
- retval = rt2x00lib_init_interface(rt2x00dev);
- if (retval)
- goto exit;
-
- /*
- * Reconfigure device.
- */
- rt2x00lib_config(rt2x00dev, &hw->conf);
- rt2x00lib_config_type(rt2x00dev, intf->type);
- rt2x00lib_config_packet_filter(rt2x00dev, intf->filter);
- rt2x00lib_config_bssid(rt2x00dev, intf->bssid);
-
- /*
- * When in Master or Ad-hoc mode,
- * restart Beacon transmitting by faking a beacondone event.
- */
- if (intf->type == IEEE80211_IF_TYPE_AP ||
- intf->type == IEEE80211_IF_TYPE_IBSS)
- rt2x00lib_beacondone(rt2x00dev);
-
-exit:
- __clear_bit(INTERFACE_RESET, &rt2x00dev->flags);
- NOTICE(rt2x00dev, "Device reset %s.\n",
- retval ? "failed" : "succeeded");
-
- return retval;
-}
-
int rt2x00mac_add_interface(struct ieee80211_hw *hw,
struct ieee80211_if_init_conf *conf)
{
--
1.5.3
next prev parent reply other threads:[~2007-09-16 12:08 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200709161403.11332.IvDoorn@gmail.com>
2007-09-16 12:17 ` [PATCH 1/24] rt2x00: Remove firmware not-NULL check Ivo van Doorn
2007-09-16 12:17 ` [PATCH 2/24] rt2x00: Don't check for IEEE80211_TXCTL_REQ_TX_STATUS Ivo van Doorn
2007-09-16 12:18 ` [PATCH 3/24] rt2x00: Cleanup rxdone Ivo van Doorn
2007-09-16 12:18 ` [PATCH 4/24] rt2x00: Don't allow configuration calls when uninitialized Ivo van Doorn
2007-09-16 12:18 ` [PATCH 5/24] rt2x00: Fix rt61pci and rt73usb beacon handling Ivo van Doorn
2007-09-16 12:18 ` [PATCH 6/24] rt2x00: Recalculate link quality Ivo van Doorn
2007-09-16 12:18 ` [PATCH 7/24] rt2x00: Cleanup entry->flags Ivo van Doorn
2007-09-16 12:18 ` [PATCH 8/24] rt2x00: Reduce LNA flags Ivo van Doorn
2007-09-16 12:18 ` [PATCH 9/24] rt2x00: Rework RT61 and RT73 Antenna handling Ivo van Doorn
2007-09-16 12:18 ` [PATCH 10/24] rt2x00: Rename DEVICE_SUPPORT_ATIM to REQUIRE_BEACON_RING Ivo van Doorn
2007-09-16 12:18 ` Ivo van Doorn [this message]
2007-09-16 12:18 ` [PATCH 12/24] rt2x00: Fix system freeze on device removal Ivo van Doorn
2007-09-16 12:18 ` [PATCH 13/24] rt2x00: Reduce magic value writing to device Ivo van Doorn
2007-09-16 12:19 ` [PATCH 14/24] rt2x00: New USB ID's for rt73usb and rt2500usb Ivo van Doorn
2007-09-16 12:19 ` [PATCH 15/24] rt2x00: Beacon ring entries should have QID_MGMT Ivo van Doorn
2007-09-16 12:19 ` [PATCH 16/24] rt2x00: Fix DEV_RATEBIT_ definitions Ivo van Doorn
2007-09-16 12:19 ` [PATCH 17/24] rt2x00: Fix rfkill handling Ivo van Doorn
2007-09-16 12:19 ` [PATCH 18/24] rt2x00: Merge allocation/free register components Ivo van Doorn
2007-09-16 12:19 ` [PATCH 19/24] rt2x00: macro's shouldn't use hidden arguments Ivo van Doorn
2007-09-16 12:19 ` [PATCH 20/24] rt2x00: Fix channel initialization Ivo van Doorn
2007-09-16 12:19 ` [PATCH 21/24] rt2x00: Add better CONFIG_PM checks Ivo van Doorn
2007-09-16 12:19 ` [PATCH 22/24] rt2x00: Add start/stop handlers Ivo van Doorn
2007-09-16 12:19 ` [PATCH 23/24] rt2x00: Add additional bit to MAX_FRAME_UNIT Ivo van Doorn
2007-09-16 12:19 ` [PATCH 24/24] rt2x00: Release rt2x00 2.0.8 Ivo van Doorn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200709161418.44822.IvDoorn@gmail.com \
--to=ivdoorn@gmail.com \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=rt2400-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).