aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-calib.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-calib.c b/drivers/net/wireless/iwlwifi/iwl-calib.c
index 845831ac053e..64de42be7ea3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-calib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-calib.c
@@ -807,6 +807,18 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv,
807 } 807 }
808 } 808 }
809 809
810 /*
811 * The above algorithm sometimes fails when the ucode
812 * reports 0 for all chains. It's not clear why that
813 * happens to start with, but it is then causing trouble
814 * because this can make us enable more chains than the
815 * hardware really has.
816 *
817 * To be safe, simply mask out any chains that we know
818 * are not on the device.
819 */
820 active_chains &= priv->hw_params.valid_rx_ant;
821
810 num_tx_chains = 0; 822 num_tx_chains = 0;
811 for (i = 0; i < NUM_RX_CHAINS; i++) { 823 for (i = 0; i < NUM_RX_CHAINS; i++) {
812 /* loops on all the bits of 824 /* loops on all the bits of