diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-calib.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-calib.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-calib.c b/drivers/net/wireless/iwlwifi/iwl-calib.c index 1289d4c91abe..a6c7f0d9a414 100644 --- a/drivers/net/wireless/iwlwifi/iwl-calib.c +++ b/drivers/net/wireless/iwlwifi/iwl-calib.c | |||
@@ -426,6 +426,9 @@ void iwl_init_sensitivity(struct iwl_priv *priv) | |||
426 | struct iwl_sensitivity_data *data = NULL; | 426 | struct iwl_sensitivity_data *data = NULL; |
427 | const struct iwl_sensitivity_ranges *ranges = priv->hw_params.sens; | 427 | const struct iwl_sensitivity_ranges *ranges = priv->hw_params.sens; |
428 | 428 | ||
429 | if (priv->disable_sens_cal) | ||
430 | return; | ||
431 | |||
429 | IWL_DEBUG_CALIB("Start iwl_init_sensitivity\n"); | 432 | IWL_DEBUG_CALIB("Start iwl_init_sensitivity\n"); |
430 | 433 | ||
431 | /* Clear driver's sensitivity algo data */ | 434 | /* Clear driver's sensitivity algo data */ |
@@ -486,6 +489,9 @@ void iwl_sensitivity_calibration(struct iwl_priv *priv, | |||
486 | unsigned long flags; | 489 | unsigned long flags; |
487 | struct statistics_general_data statis; | 490 | struct statistics_general_data statis; |
488 | 491 | ||
492 | if (priv->disable_sens_cal) | ||
493 | return; | ||
494 | |||
489 | data = &(priv->sensitivity_data); | 495 | data = &(priv->sensitivity_data); |
490 | 496 | ||
491 | if (!iwl_is_associated(priv)) { | 497 | if (!iwl_is_associated(priv)) { |
@@ -608,6 +614,9 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv, | |||
608 | unsigned long flags; | 614 | unsigned long flags; |
609 | struct statistics_rx_non_phy *rx_info = &(stat_resp->rx.general); | 615 | struct statistics_rx_non_phy *rx_info = &(stat_resp->rx.general); |
610 | 616 | ||
617 | if (priv->disable_chain_noise_cal) | ||
618 | return; | ||
619 | |||
611 | data = &(priv->chain_noise_data); | 620 | data = &(priv->chain_noise_data); |
612 | 621 | ||
613 | /* Accumulate just the first 20 beacons after the first association, | 622 | /* Accumulate just the first 20 beacons after the first association, |
@@ -777,3 +786,21 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv, | |||
777 | } | 786 | } |
778 | EXPORT_SYMBOL(iwl_chain_noise_calibration); | 787 | EXPORT_SYMBOL(iwl_chain_noise_calibration); |
779 | 788 | ||
789 | |||
790 | void iwl_reset_run_time_calib(struct iwl_priv *priv) | ||
791 | { | ||
792 | int i; | ||
793 | memset(&(priv->sensitivity_data), 0, | ||
794 | sizeof(struct iwl_sensitivity_data)); | ||
795 | memset(&(priv->chain_noise_data), 0, | ||
796 | sizeof(struct iwl_chain_noise_data)); | ||
797 | for (i = 0; i < NUM_RX_CHAINS; i++) | ||
798 | priv->chain_noise_data.delta_gain_code[i] = | ||
799 | CHAIN_NOISE_DELTA_GAIN_INIT_VAL; | ||
800 | |||
801 | /* Ask for statistics now, the uCode will send notification | ||
802 | * periodically after association */ | ||
803 | iwl_send_statistics_request(priv, CMD_ASYNC); | ||
804 | } | ||
805 | EXPORT_SYMBOL(iwl_reset_run_time_calib); | ||
806 | |||