aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-sta.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-04-28 17:44:45 -0400
committerReinette Chatre <reinette.chatre@intel.com>2010-05-10 18:09:01 -0400
commit156b70d17ce85778341cfb2a90c5bcb14b28ab3f (patch)
tree298075985d2de00039c8a50cac99a0b221914ae1 /drivers/net/wireless/iwlwifi/iwl-sta.c
parent59c02b4149183cb53d95b1ce3a8188cbee63f57f (diff)
iwlwifi: fix iwl_sta_init_lq station ID
The "is_ap" argument to iwl_sta_init_lq is never true, so it and the corresponding code can be removed. However, it needs to have the station ID because it is also used for the IBSS BSSID station, and that doesn't have the broadcast ID. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-sta.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-sta.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c
index 0db742c0aff..dd1c639074c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-sta.c
+++ b/drivers/net/wireless/iwlwifi/iwl-sta.c
@@ -408,7 +408,7 @@ int iwl_add_station_common(struct iwl_priv *priv, const u8 *addr,
408EXPORT_SYMBOL(iwl_add_station_common); 408EXPORT_SYMBOL(iwl_add_station_common);
409 409
410static struct iwl_link_quality_cmd *iwl_sta_init_lq(struct iwl_priv *priv, 410static struct iwl_link_quality_cmd *iwl_sta_init_lq(struct iwl_priv *priv,
411 const u8 *addr, bool is_ap) 411 u8 sta_id)
412{ 412{
413 int i, r; 413 int i, r;
414 struct iwl_link_quality_cmd *link_cmd; 414 struct iwl_link_quality_cmd *link_cmd;
@@ -422,9 +422,7 @@ static struct iwl_link_quality_cmd *iwl_sta_init_lq(struct iwl_priv *priv,
422 } 422 }
423 /* Set up the rate scaling to start at selected rate, fall back 423 /* Set up the rate scaling to start at selected rate, fall back
424 * all the way down to 1M in IEEE order, and then spin on 1M */ 424 * all the way down to 1M in IEEE order, and then spin on 1M */
425 if (is_ap) 425 if (priv->band == IEEE80211_BAND_5GHZ)
426 r = IWL_RATE_54M_INDEX;
427 else if (priv->band == IEEE80211_BAND_5GHZ)
428 r = IWL_RATE_6M_INDEX; 426 r = IWL_RATE_6M_INDEX;
429 else 427 else
430 r = IWL_RATE_1M_INDEX; 428 r = IWL_RATE_1M_INDEX;
@@ -459,8 +457,7 @@ static struct iwl_link_quality_cmd *iwl_sta_init_lq(struct iwl_priv *priv,
459 link_cmd->agg_params.agg_time_limit = 457 link_cmd->agg_params.agg_time_limit =
460 cpu_to_le16(LINK_QUAL_AGG_TIME_LIMIT_DEF); 458 cpu_to_le16(LINK_QUAL_AGG_TIME_LIMIT_DEF);
461 459
462 /* Update the rate scaling for control frame Tx to AP */ 460 link_cmd->sta_id = sta_id;
463 link_cmd->sta_id = is_ap ? IWL_AP_ID : priv->hw_params.bcast_sta_id;
464 461
465 ret = iwl_send_lq_cmd(priv, link_cmd, CMD_SYNC, true); 462 ret = iwl_send_lq_cmd(priv, link_cmd, CMD_SYNC, true);
466 if (ret) 463 if (ret)
@@ -496,7 +493,7 @@ int iwl_add_local_station(struct iwl_priv *priv, const u8 *addr, bool init_rs)
496 493
497 if (init_rs) { 494 if (init_rs) {
498 /* Set up default rate scaling table in device's station table */ 495 /* Set up default rate scaling table in device's station table */
499 link_cmd = iwl_sta_init_lq(priv, addr, false); 496 link_cmd = iwl_sta_init_lq(priv, sta_id);
500 if (!link_cmd) { 497 if (!link_cmd) {
501 IWL_ERR(priv, "Unable to initialize rate scaling for station %pM.\n", 498 IWL_ERR(priv, "Unable to initialize rate scaling for station %pM.\n",
502 addr); 499 addr);