aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-core.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index f67cab5bc6f..c393b20ae1c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -529,10 +529,22 @@ int iwl_send_rxon_timing(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
529 ctx->timing.atim_window = 0; 529 ctx->timing.atim_window = 0;
530 530
531 if (ctx->ctxid == IWL_RXON_CTX_PAN && 531 if (ctx->ctxid == IWL_RXON_CTX_PAN &&
532 (!ctx->vif || ctx->vif->type != NL80211_IFTYPE_STATION)) { 532 (!ctx->vif || ctx->vif->type != NL80211_IFTYPE_STATION) &&
533 iwl_is_associated(priv, IWL_RXON_CTX_BSS) &&
534 priv->contexts[IWL_RXON_CTX_BSS].vif &&
535 priv->contexts[IWL_RXON_CTX_BSS].vif->bss_conf.beacon_int) {
533 ctx->timing.beacon_interval = 536 ctx->timing.beacon_interval =
534 priv->contexts[IWL_RXON_CTX_BSS].timing.beacon_interval; 537 priv->contexts[IWL_RXON_CTX_BSS].timing.beacon_interval;
535 beacon_int = le16_to_cpu(ctx->timing.beacon_interval); 538 beacon_int = le16_to_cpu(ctx->timing.beacon_interval);
539 } else if (ctx->ctxid == IWL_RXON_CTX_BSS &&
540 iwl_is_associated(priv, IWL_RXON_CTX_PAN) &&
541 priv->contexts[IWL_RXON_CTX_PAN].vif &&
542 priv->contexts[IWL_RXON_CTX_PAN].vif->bss_conf.beacon_int &&
543 (!iwl_is_associated_ctx(ctx) || !ctx->vif ||
544 !ctx->vif->bss_conf.beacon_int)) {
545 ctx->timing.beacon_interval =
546 priv->contexts[IWL_RXON_CTX_PAN].timing.beacon_interval;
547 beacon_int = le16_to_cpu(ctx->timing.beacon_interval);
536 } else { 548 } else {
537 beacon_int = iwl_adjust_beacon_interval(beacon_int, 549 beacon_int = iwl_adjust_beacon_interval(beacon_int,
538 priv->hw_params.max_beacon_itrvl * TIME_UNIT); 550 priv->hw_params.max_beacon_itrvl * TIME_UNIT);