aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-03-08 04:19:55 -0500
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2012-04-12 17:18:03 -0400
commit4dcba6d3c5f6e9a32db85f6554c8cd81b38f1a42 (patch)
treec066fdf9e44500048daa6819690b8a568250a1ed /drivers/net/wireless/iwlwifi/iwl-agn-sta.c
parentd1888db58869fdda7872359358e8584fbccd9bad (diff)
iwlwifi: make iwl_sta_fill_lq static
It's only used in a single place. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn-sta.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-sta.c100
1 files changed, 50 insertions, 50 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
index b74bb6854b61..79cbaab79ddd 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
@@ -581,6 +581,56 @@ void iwl_deactivate_station(struct iwl_priv *priv, const u8 sta_id,
581 spin_unlock_bh(&priv->sta_lock); 581 spin_unlock_bh(&priv->sta_lock);
582} 582}
583 583
584static void iwl_sta_fill_lq(struct iwl_priv *priv, struct iwl_rxon_context *ctx,
585 u8 sta_id, struct iwl_link_quality_cmd *link_cmd)
586{
587 int i, r;
588 u32 rate_flags = 0;
589 __le32 rate_n_flags;
590
591 lockdep_assert_held(&priv->mutex);
592
593 memset(link_cmd, 0, sizeof(*link_cmd));
594
595 /* Set up the rate scaling to start at selected rate, fall back
596 * all the way down to 1M in IEEE order, and then spin on 1M */
597 if (priv->band == IEEE80211_BAND_5GHZ)
598 r = IWL_RATE_6M_INDEX;
599 else if (ctx && ctx->vif && ctx->vif->p2p)
600 r = IWL_RATE_6M_INDEX;
601 else
602 r = IWL_RATE_1M_INDEX;
603
604 if (r >= IWL_FIRST_CCK_RATE && r <= IWL_LAST_CCK_RATE)
605 rate_flags |= RATE_MCS_CCK_MSK;
606
607 rate_flags |= first_antenna(priv->hw_params.valid_tx_ant) <<
608 RATE_MCS_ANT_POS;
609 rate_n_flags = iwl_hw_set_rate_n_flags(iwl_rates[r].plcp, rate_flags);
610 for (i = 0; i < LINK_QUAL_MAX_RETRY_NUM; i++)
611 link_cmd->rs_table[i].rate_n_flags = rate_n_flags;
612
613 link_cmd->general_params.single_stream_ant_msk =
614 first_antenna(priv->hw_params.valid_tx_ant);
615
616 link_cmd->general_params.dual_stream_ant_msk =
617 priv->hw_params.valid_tx_ant &
618 ~first_antenna(priv->hw_params.valid_tx_ant);
619 if (!link_cmd->general_params.dual_stream_ant_msk) {
620 link_cmd->general_params.dual_stream_ant_msk = ANT_AB;
621 } else if (num_of_ant(priv->hw_params.valid_tx_ant) == 2) {
622 link_cmd->general_params.dual_stream_ant_msk =
623 priv->hw_params.valid_tx_ant;
624 }
625
626 link_cmd->agg_params.agg_dis_start_th =
627 LINK_QUAL_AGG_DISABLE_START_DEF;
628 link_cmd->agg_params.agg_time_limit =
629 cpu_to_le16(LINK_QUAL_AGG_TIME_LIMIT_DEF);
630
631 link_cmd->sta_id = sta_id;
632}
633
584/** 634/**
585 * iwl_clear_ucode_stations - clear ucode station table bits 635 * iwl_clear_ucode_stations - clear ucode station table bits
586 * 636 *
@@ -841,56 +891,6 @@ int iwl_send_lq_cmd(struct iwl_priv *priv, struct iwl_rxon_context *ctx,
841} 891}
842 892
843 893
844void iwl_sta_fill_lq(struct iwl_priv *priv, struct iwl_rxon_context *ctx,
845 u8 sta_id, struct iwl_link_quality_cmd *link_cmd)
846{
847 int i, r;
848 u32 rate_flags = 0;
849 __le32 rate_n_flags;
850
851 lockdep_assert_held(&priv->mutex);
852
853 memset(link_cmd, 0, sizeof(*link_cmd));
854
855 /* Set up the rate scaling to start at selected rate, fall back
856 * all the way down to 1M in IEEE order, and then spin on 1M */
857 if (priv->band == IEEE80211_BAND_5GHZ)
858 r = IWL_RATE_6M_INDEX;
859 else if (ctx && ctx->vif && ctx->vif->p2p)
860 r = IWL_RATE_6M_INDEX;
861 else
862 r = IWL_RATE_1M_INDEX;
863
864 if (r >= IWL_FIRST_CCK_RATE && r <= IWL_LAST_CCK_RATE)
865 rate_flags |= RATE_MCS_CCK_MSK;
866
867 rate_flags |= first_antenna(priv->hw_params.valid_tx_ant) <<
868 RATE_MCS_ANT_POS;
869 rate_n_flags = iwl_hw_set_rate_n_flags(iwl_rates[r].plcp, rate_flags);
870 for (i = 0; i < LINK_QUAL_MAX_RETRY_NUM; i++)
871 link_cmd->rs_table[i].rate_n_flags = rate_n_flags;
872
873 link_cmd->general_params.single_stream_ant_msk =
874 first_antenna(priv->hw_params.valid_tx_ant);
875
876 link_cmd->general_params.dual_stream_ant_msk =
877 priv->hw_params.valid_tx_ant &
878 ~first_antenna(priv->hw_params.valid_tx_ant);
879 if (!link_cmd->general_params.dual_stream_ant_msk) {
880 link_cmd->general_params.dual_stream_ant_msk = ANT_AB;
881 } else if (num_of_ant(priv->hw_params.valid_tx_ant) == 2) {
882 link_cmd->general_params.dual_stream_ant_msk =
883 priv->hw_params.valid_tx_ant;
884 }
885
886 link_cmd->agg_params.agg_dis_start_th =
887 LINK_QUAL_AGG_DISABLE_START_DEF;
888 link_cmd->agg_params.agg_time_limit =
889 cpu_to_le16(LINK_QUAL_AGG_TIME_LIMIT_DEF);
890
891 link_cmd->sta_id = sta_id;
892}
893
894static struct iwl_link_quality_cmd * 894static struct iwl_link_quality_cmd *
895iwl_sta_alloc_lq(struct iwl_priv *priv, struct iwl_rxon_context *ctx, 895iwl_sta_alloc_lq(struct iwl_priv *priv, struct iwl_rxon_context *ctx,
896 u8 sta_id) 896 u8 sta_id)