aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-3945.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-07-24 14:13:05 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-07-27 15:24:21 -0400
commitc2acea8e9b86ba5a5469ff477445676a223af4e2 (patch)
tree3c4705b13dd5c85817a1132a17743757135b7047 /drivers/net/wireless/iwlwifi/iwl-3945.h
parentfbf3a2af3834e8e93e9c2876de62c5b49988e352 (diff)
iwlwifi: fix up command sending
The current command sending in iwlwifi is a bit of a mess: 1) there is a struct, iwl_cmd, that contains both driver and device data in a single packed structure -- this is very confusing 2) the on-stack data and the command metadata share a structure by embedding the latter in the former, which is also rather confusing because it leads to weird unions and similarly odd constructs 3) each txq always has enough space for 256 commands, even if only 32 end up being used This patch fixes these things: 1) rename iwl_cmd to iwl_device_cmd and keep track of command metadata and device command separately, in two arrays in each tx queue 2) remove the 'meta' member from iwl_host_cmd and only put in the required members 3) allocate the cmd/meta arrays separately instead of embedding them into the txq structure Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-3945.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.h b/drivers/net/wireless/iwlwifi/iwl-3945.h
index f2ffc48cbaf8..f24036909916 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.h
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.h
@@ -254,10 +254,11 @@ extern int iwl3945_hw_tx_queue_init(struct iwl_priv *priv,
254 struct iwl_tx_queue *txq); 254 struct iwl_tx_queue *txq);
255extern unsigned int iwl3945_hw_get_beacon_cmd(struct iwl_priv *priv, 255extern unsigned int iwl3945_hw_get_beacon_cmd(struct iwl_priv *priv,
256 struct iwl3945_frame *frame, u8 rate); 256 struct iwl3945_frame *frame, u8 rate);
257void iwl3945_hw_build_tx_cmd_rate(struct iwl_priv *priv, struct iwl_cmd *cmd, 257void iwl3945_hw_build_tx_cmd_rate(struct iwl_priv *priv,
258 struct ieee80211_tx_info *info, 258 struct iwl_device_cmd *cmd,
259 struct ieee80211_hdr *hdr, 259 struct ieee80211_tx_info *info,
260 int sta_id, int tx_id); 260 struct ieee80211_hdr *hdr,
261 int sta_id, int tx_id);
261extern int iwl3945_hw_reg_send_txpower(struct iwl_priv *priv); 262extern int iwl3945_hw_reg_send_txpower(struct iwl_priv *priv);
262extern int iwl3945_hw_reg_set_txpower(struct iwl_priv *priv, s8 power); 263extern int iwl3945_hw_reg_set_txpower(struct iwl_priv *priv, s8 power);
263extern void iwl3945_hw_rx_statistics(struct iwl_priv *priv, 264extern void iwl3945_hw_rx_statistics(struct iwl_priv *priv,