iwlwifi: remove false rxon if rx chain changes
Rx chain might change during power save transitions but it doesn't require sending Full-ROXN command to the firmware. Full-RXON requires reconnection to an AP and thus affects user experience. The patch avoids the Full-RXON by removing the rx_chain modification check in iwl_full_rxon_required function. Signed-off-by: Mohamed Abbas <mohamed.abbas@intel.com Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
0ffe014a8c
commit
545597036c
|
@ -181,14 +181,14 @@ static int iwl4965_check_rxon_cmd(struct iwl_rxon_cmd *rxon)
|
|||
}
|
||||
|
||||
/**
|
||||
* iwl4965_full_rxon_required - check if full RXON (vs RXON_ASSOC) cmd is needed
|
||||
* 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 iwl4965_full_rxon_required(struct iwl_priv *priv)
|
||||
static int iwl_full_rxon_required(struct iwl_priv *priv)
|
||||
{
|
||||
|
||||
/* These items are only settable from the full RXON command */
|
||||
|
@ -207,7 +207,6 @@ static int iwl4965_full_rxon_required(struct iwl_priv *priv)
|
|||
priv->active_rxon.ofdm_ht_single_stream_basic_rates) ||
|
||||
(priv->staging_rxon.ofdm_ht_dual_stream_basic_rates !=
|
||||
priv->active_rxon.ofdm_ht_dual_stream_basic_rates) ||
|
||||
(priv->staging_rxon.rx_chain != priv->active_rxon.rx_chain) ||
|
||||
(priv->staging_rxon.assoc_id != priv->active_rxon.assoc_id))
|
||||
return 1;
|
||||
|
||||
|
@ -263,7 +262,7 @@ static int iwl4965_commit_rxon(struct iwl_priv *priv)
|
|||
/* If we don't need to send a full RXON, we can use
|
||||
* iwl4965_rxon_assoc_cmd which is used to reconfigure filter
|
||||
* and other flags for the current radio configuration. */
|
||||
if (!iwl4965_full_rxon_required(priv)) {
|
||||
if (!iwl_full_rxon_required(priv)) {
|
||||
ret = iwl_send_rxon_assoc(priv);
|
||||
if (ret) {
|
||||
IWL_ERROR("Error setting RXON_ASSOC (%d)\n", ret);
|
||||
|
|
Loading…
Reference in New Issue