diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-sta.c')
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-sta.c | 20 | 
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c index 7df2814fd4f..65386e575b1 100644 --- a/drivers/net/wireless/iwlwifi/iwl-sta.c +++ b/drivers/net/wireless/iwlwifi/iwl-sta.c @@ -35,6 +35,8 @@  #include "iwl-dev.h"  #include "iwl-core.h"  #include "iwl-sta.h" +#include "iwl-trans.h" +#include "iwl-agn.h"  /* priv->sta_lock must be held */  static void iwl_sta_ucode_activate(struct iwl_priv *priv, u8 sta_id) @@ -132,6 +134,16 @@ static void iwl_add_sta_callback(struct iwl_priv *priv,  } +static u16 iwlagn_build_addsta_hcmd(const struct iwl_addsta_cmd *cmd, u8 *data) +{ +	u16 size = (u16)sizeof(struct iwl_addsta_cmd); +	struct iwl_addsta_cmd *addsta = (struct iwl_addsta_cmd *)data; +	memcpy(addsta, cmd, size); +	/* resrved in 5000 */ +	addsta->rate_n_flags = cpu_to_le16(0); +	return size; +} +  int iwl_send_add_sta(struct iwl_priv *priv,  		     struct iwl_addsta_cmd *sta, u8 flags)  { @@ -155,8 +167,8 @@ int iwl_send_add_sta(struct iwl_priv *priv,  		might_sleep();  	} -	cmd.len[0] = priv->cfg->ops->utils->build_addsta_hcmd(sta, data); -	ret = iwl_send_cmd(priv, &cmd); +	cmd.len[0] = iwlagn_build_addsta_hcmd(sta, data); +	ret = trans_send_cmd(priv, &cmd);  	if (ret || (flags & CMD_ASYNC))  		return ret; @@ -412,7 +424,7 @@ static int iwl_send_remove_station(struct iwl_priv *priv,  	cmd.flags |= CMD_WANT_SKB; -	ret = iwl_send_cmd(priv, &cmd); +	ret = trans_send_cmd(priv, &cmd);  	if (ret)  		return ret; @@ -781,7 +793,7 @@ int iwl_send_lq_cmd(struct iwl_priv *priv, struct iwl_rxon_context *ctx,  		return -EINVAL;  	if (is_lq_table_valid(priv, ctx, lq)) -		ret = iwl_send_cmd(priv, &cmd); +		ret = trans_send_cmd(priv, &cmd);  	else  		ret = -EINVAL;  |