Skip to content

Commit

Permalink
iwlegacy: set tx power after rxon_assoc
Browse files Browse the repository at this point in the history
commit 17e859a upstream.

If settings of tx power was deferred during scan or changing channel we
have to setup them during commit rxon. Fix problem on 3945 (4965 already
has this fix).

Optimize code to apply tx settings only when tx power was actually
changed.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Stanislaw Gruszka authored and Greg Kroah-Hartman committed Aug 16, 2011
1 parent b7d9c86 commit 9650452
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
6 changes: 5 additions & 1 deletion drivers/net/wireless/iwlegacy/iwl-3945.c
Original file line number Diff line number Diff line change
Expand Up @@ -1747,7 +1747,11 @@ int iwl3945_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
}

memcpy(active_rxon, staging_rxon, sizeof(*active_rxon));

/*
* We do not commit tx power settings while channel changing,
* do it now if tx power changed.
*/
iwl_legacy_set_tx_power(priv, priv->tx_power_next, false);
return 0;
}

Expand Down
8 changes: 6 additions & 2 deletions drivers/net/wireless/iwlegacy/iwl-4965.c
Original file line number Diff line number Diff line change
Expand Up @@ -1237,7 +1237,12 @@ static int iwl4965_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *c

memcpy(active_rxon, &ctx->staging, sizeof(*active_rxon));
iwl_legacy_print_rx_config_cmd(priv, ctx);
goto set_tx_power;
/*
* We do not commit tx power settings while channel changing,
* do it now if tx power changed.
*/
iwl_legacy_set_tx_power(priv, priv->tx_power_next, false);
return 0;
}

/* If we are currently associated and the new config requires
Expand Down Expand Up @@ -1317,7 +1322,6 @@ static int iwl4965_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *c

iwl4965_init_sensitivity(priv);

set_tx_power:
/* If we issue a new RXON command which required a tune then we must
* send a new TXPOWER command or we won't be able to Tx any frames */
ret = iwl_legacy_set_tx_power(priv, priv->tx_power_next, true);
Expand Down

0 comments on commit 9650452

Please sign in to comment.