iwlwifi: move iwl_full_rxon_required and mark it static
iwl_full_rxon_required is used only in iwl-agn-rxon.c. Move it there and mark it static. Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
8931b5761b
commit
5562092131
@ -24,6 +24,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#include <linux/etherdevice.h>
|
||||
#include "iwl-dev.h"
|
||||
#include "iwl-agn.h"
|
||||
#include "iwl-core.h"
|
||||
@ -585,6 +586,69 @@ static int iwl_check_rxon_cmd(struct iwl_priv *priv,
|
||||
return errors ? -EINVAL : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* iwl_full_rxon_required - check if full RXON (vs RXON_ASSOC) cmd is needed
|
||||
* @priv: staging_rxon is compared to active_rxon
|
||||
*
|
||||
* If the RXON structure is changing enough to require a new tune,
|
||||
* or is clearing the RXON_FILTER_ASSOC_MSK, then return 1 to indicate that
|
||||
* a new tune (full RXON command, rather than RXON_ASSOC cmd) is required.
|
||||
*/
|
||||
static int iwl_full_rxon_required(struct iwl_priv *priv,
|
||||
struct iwl_rxon_context *ctx)
|
||||
{
|
||||
const struct iwl_rxon_cmd *staging = &ctx->staging;
|
||||
const struct iwl_rxon_cmd *active = &ctx->active;
|
||||
|
||||
#define CHK(cond) \
|
||||
if ((cond)) { \
|
||||
IWL_DEBUG_INFO(priv, "need full RXON - " #cond "\n"); \
|
||||
return 1; \
|
||||
}
|
||||
|
||||
#define CHK_NEQ(c1, c2) \
|
||||
if ((c1) != (c2)) { \
|
||||
IWL_DEBUG_INFO(priv, "need full RXON - " \
|
||||
#c1 " != " #c2 " - %d != %d\n", \
|
||||
(c1), (c2)); \
|
||||
return 1; \
|
||||
}
|
||||
|
||||
/* These items are only settable from the full RXON command */
|
||||
CHK(!iwl_is_associated_ctx(ctx));
|
||||
CHK(compare_ether_addr(staging->bssid_addr, active->bssid_addr));
|
||||
CHK(compare_ether_addr(staging->node_addr, active->node_addr));
|
||||
CHK(compare_ether_addr(staging->wlap_bssid_addr,
|
||||
active->wlap_bssid_addr));
|
||||
CHK_NEQ(staging->dev_type, active->dev_type);
|
||||
CHK_NEQ(staging->channel, active->channel);
|
||||
CHK_NEQ(staging->air_propagation, active->air_propagation);
|
||||
CHK_NEQ(staging->ofdm_ht_single_stream_basic_rates,
|
||||
active->ofdm_ht_single_stream_basic_rates);
|
||||
CHK_NEQ(staging->ofdm_ht_dual_stream_basic_rates,
|
||||
active->ofdm_ht_dual_stream_basic_rates);
|
||||
CHK_NEQ(staging->ofdm_ht_triple_stream_basic_rates,
|
||||
active->ofdm_ht_triple_stream_basic_rates);
|
||||
CHK_NEQ(staging->assoc_id, active->assoc_id);
|
||||
|
||||
/* flags, filter_flags, ofdm_basic_rates, and cck_basic_rates can
|
||||
* be updated with the RXON_ASSOC command -- however only some
|
||||
* flag transitions are allowed using RXON_ASSOC */
|
||||
|
||||
/* Check if we are not switching bands */
|
||||
CHK_NEQ(staging->flags & RXON_FLG_BAND_24G_MSK,
|
||||
active->flags & RXON_FLG_BAND_24G_MSK);
|
||||
|
||||
/* Check if we are switching association toggle */
|
||||
CHK_NEQ(staging->filter_flags & RXON_FILTER_ASSOC_MSK,
|
||||
active->filter_flags & RXON_FILTER_ASSOC_MSK);
|
||||
|
||||
#undef CHK
|
||||
#undef CHK_NEQ
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* iwlagn_commit_rxon - commit staging_rxon to hardware
|
||||
*
|
||||
|
@ -28,7 +28,6 @@
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/slab.h>
|
||||
#include <net/mac80211.h>
|
||||
@ -88,69 +87,6 @@ bool iwl_is_ht40_tx_allowed(struct iwl_priv *priv,
|
||||
ctx->ht.extension_chan_offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* iwl_full_rxon_required - check if full RXON (vs RXON_ASSOC) cmd is needed
|
||||
* @priv: staging_rxon is compared to active_rxon
|
||||
*
|
||||
* If the RXON structure is changing enough to require a new tune,
|
||||
* or is clearing the RXON_FILTER_ASSOC_MSK, then return 1 to indicate that
|
||||
* a new tune (full RXON command, rather than RXON_ASSOC cmd) is required.
|
||||
*/
|
||||
int iwl_full_rxon_required(struct iwl_priv *priv,
|
||||
struct iwl_rxon_context *ctx)
|
||||
{
|
||||
const struct iwl_rxon_cmd *staging = &ctx->staging;
|
||||
const struct iwl_rxon_cmd *active = &ctx->active;
|
||||
|
||||
#define CHK(cond) \
|
||||
if ((cond)) { \
|
||||
IWL_DEBUG_INFO(priv, "need full RXON - " #cond "\n"); \
|
||||
return 1; \
|
||||
}
|
||||
|
||||
#define CHK_NEQ(c1, c2) \
|
||||
if ((c1) != (c2)) { \
|
||||
IWL_DEBUG_INFO(priv, "need full RXON - " \
|
||||
#c1 " != " #c2 " - %d != %d\n", \
|
||||
(c1), (c2)); \
|
||||
return 1; \
|
||||
}
|
||||
|
||||
/* These items are only settable from the full RXON command */
|
||||
CHK(!iwl_is_associated_ctx(ctx));
|
||||
CHK(compare_ether_addr(staging->bssid_addr, active->bssid_addr));
|
||||
CHK(compare_ether_addr(staging->node_addr, active->node_addr));
|
||||
CHK(compare_ether_addr(staging->wlap_bssid_addr,
|
||||
active->wlap_bssid_addr));
|
||||
CHK_NEQ(staging->dev_type, active->dev_type);
|
||||
CHK_NEQ(staging->channel, active->channel);
|
||||
CHK_NEQ(staging->air_propagation, active->air_propagation);
|
||||
CHK_NEQ(staging->ofdm_ht_single_stream_basic_rates,
|
||||
active->ofdm_ht_single_stream_basic_rates);
|
||||
CHK_NEQ(staging->ofdm_ht_dual_stream_basic_rates,
|
||||
active->ofdm_ht_dual_stream_basic_rates);
|
||||
CHK_NEQ(staging->ofdm_ht_triple_stream_basic_rates,
|
||||
active->ofdm_ht_triple_stream_basic_rates);
|
||||
CHK_NEQ(staging->assoc_id, active->assoc_id);
|
||||
|
||||
/* flags, filter_flags, ofdm_basic_rates, and cck_basic_rates can
|
||||
* be updated with the RXON_ASSOC command -- however only some
|
||||
* flag transitions are allowed using RXON_ASSOC */
|
||||
|
||||
/* Check if we are not switching bands */
|
||||
CHK_NEQ(staging->flags & RXON_FLG_BAND_24G_MSK,
|
||||
active->flags & RXON_FLG_BAND_24G_MSK);
|
||||
|
||||
/* Check if we are switching association toggle */
|
||||
CHK_NEQ(staging->filter_flags & RXON_FILTER_ASSOC_MSK,
|
||||
active->filter_flags & RXON_FILTER_ASSOC_MSK);
|
||||
|
||||
#undef CHK
|
||||
#undef CHK_NEQ
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void _iwl_set_rxon_ht(struct iwl_priv *priv,
|
||||
struct iwl_ht_config *ht_conf,
|
||||
struct iwl_rxon_context *ctx)
|
||||
|
@ -93,7 +93,6 @@ struct iwl_lib_ops {
|
||||
* L i b *
|
||||
***************************/
|
||||
|
||||
int iwl_full_rxon_required(struct iwl_priv *priv, struct iwl_rxon_context *ctx);
|
||||
void iwl_set_rxon_channel(struct iwl_priv *priv, struct ieee80211_channel *ch,
|
||||
struct iwl_rxon_context *ctx);
|
||||
void iwl_set_flags_for_band(struct iwl_priv *priv,
|
||||
|
Loading…
Reference in New Issue
Block a user