iwlwifi: remove device type checking for tx power in debugfs
authorWey-Yi Guy <wey-yi.w.guy@intel.com>
Tue, 27 Apr 2010 21:33:33 +0000 (14:33 -0700)
committerReinette Chatre <reinette.chatre@intel.com>
Mon, 10 May 2010 22:08:48 +0000 (15:08 -0700)
Instead of checking device type for enable/disable tx power control,
move it to .cfg for better control and more flexibilities.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
drivers/net/wireless/iwlwifi/iwl-3945.c
drivers/net/wireless/iwlwifi/iwl-4965.c
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl-debugfs.c

index 3faa78ceaed113b576d8c9e1eb3a7cd12b9f1ca6..360781326cb7dea795fcad8b0ed016d344fd2f67 100644 (file)
@@ -1714,6 +1714,11 @@ static int iwl3945_hw_reg_comp_txpower_temp(struct iwl_priv *priv)
        int ref_temp;
        int temperature = priv->temperature;
 
+       if (priv->disable_tx_power_cal ||
+           test_bit(STATUS_SCANNING, &priv->status)) {
+               /* do not perform tx power calibration */
+               return 0;
+       }
        /* set up new Tx power info for each and every channel, 2.4 and 5.x */
        for (i = 0; i < priv->channel_count; i++) {
                ch_info = &priv->channel_info[i];
@@ -2842,6 +2847,7 @@ static struct iwl_cfg iwl3945_bg_cfg = {
        .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
        .monitor_recover_period = IWL_MONITORING_PERIOD,
        .max_event_log_size = 512,
+       .tx_power_by_driver = true,
 };
 
 static struct iwl_cfg iwl3945_abg_cfg = {
@@ -2862,6 +2868,7 @@ static struct iwl_cfg iwl3945_abg_cfg = {
        .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
        .monitor_recover_period = IWL_MONITORING_PERIOD,
        .max_event_log_size = 512,
+       .tx_power_by_driver = true,
 };
 
 DEFINE_PCI_DEVICE_TABLE(iwl3945_hw_card_ids) = {
index 136c29067489ebbadbe9ec25593285cd973ea20a..460aea3240c8fdd35fa096ddf00e61063d8c75dd 100644 (file)
@@ -2262,6 +2262,7 @@ struct iwl_cfg iwl4965_agn_cfg = {
        .monitor_recover_period = IWL_MONITORING_PERIOD,
        .temperature_kelvin = true,
        .max_event_log_size = 512,
+       .tx_power_by_driver = true,
 
        /*
         * Force use of chains B and C for scan RX on 5 GHz band
index 7deed865b14f0f912dd3709a0ff75e065f8ec2c7..60d26e4e6edcec8698702e03c1acc1db08498189 100644 (file)
@@ -319,6 +319,7 @@ struct iwl_cfg {
        u32 monitor_recover_period;
        bool temperature_kelvin;
        u32 max_event_log_size;
+       const bool tx_power_by_driver;
        u8 scan_antennas[IEEE80211_NUM_BANDS];
 };
 
index b071e1bff80eec78398260fc05d292adc506b30b..0faadf3a8b82cb749cd37c03db5599935eb2fdda 100644 (file)
@@ -1647,8 +1647,7 @@ int iwl_dbgfs_register(struct iwl_priv *priv, const char *name)
        DEBUGFS_ADD_BOOL(disable_sensitivity, dir_rf, &priv->disable_sens_cal);
        DEBUGFS_ADD_BOOL(disable_chain_noise, dir_rf,
                         &priv->disable_chain_noise_cal);
-       if (((priv->hw_rev & CSR_HW_REV_TYPE_MSK) == CSR_HW_REV_TYPE_4965) ||
-           ((priv->hw_rev & CSR_HW_REV_TYPE_MSK) == CSR_HW_REV_TYPE_3945))
+       if (priv->cfg->tx_power_by_driver)
                DEBUGFS_ADD_BOOL(disable_tx_power, dir_rf,
                                &priv->disable_tx_power_cal);
        return 0;