iwlwifi: keep plcp_delta_threshold in priv
authorJohannes Berg <johannes.berg@intel.com>
Tue, 6 Mar 2012 21:30:53 +0000 (13:30 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 7 Mar 2012 18:55:44 +0000 (13:55 -0500)
The base_params shouldn't be writable, so keep
a copy of this in priv that can be modified.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-agn-rx.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-debugfs.c
drivers/net/wireless/iwlwifi/iwl-dev.h

index d16e73d1b5c9d80287de88014102fdb4169d7ce3..5c9c88b8609fc393331e08852353cd735be0cfd9 100644 (file)
@@ -320,7 +320,7 @@ static bool iwlagn_good_plcp_health(struct iwl_priv *priv,
                                 unsigned int msecs)
 {
        int delta;
-       int threshold = cfg(priv)->base_params->plcp_delta_threshold;
+       int threshold = priv->plcp_delta_threshold;
 
        if (threshold == IWL_MAX_PLCP_ERR_THRESHOLD_DISABLE) {
                IWL_DEBUG_RADIO(priv, "plcp_err check disabled\n");
index 8cf149cd20ca3ac506d7fb4b2c6822025bdefe78..ac23aa3dd6d788211eb53d6bd95dac8d3c2ed414 100644 (file)
@@ -1045,6 +1045,9 @@ static int iwl_init_drv(struct iwl_priv *priv)
        priv->ieee_rates = NULL;
        priv->band = IEEE80211_BAND_2GHZ;
 
+       priv->plcp_delta_threshold =
+               cfg(priv)->base_params->plcp_delta_threshold;
+
        priv->iw_mode = NL80211_IFTYPE_STATION;
        priv->current_ht_config.smps = IEEE80211_SMPS_STATIC;
        priv->missed_beacon_threshold = IWL_MISSED_BEACON_THRESHOLD_DEF;
index b9b6d628f59a8f4a9d8655efc54b568c298ff9d0..ade4134fc1ec3f403379d4fab52a5e0d673e9977 100644 (file)
@@ -2241,7 +2241,7 @@ static ssize_t iwl_dbgfs_plcp_delta_read(struct file *file,
        const size_t bufsz = sizeof(buf);
 
        pos += scnprintf(buf + pos, bufsz - pos, "%u\n",
-                       cfg(priv)->base_params->plcp_delta_threshold);
+                       priv->plcp_delta_threshold);
 
        return simple_read_from_buffer(user_buf, count, ppos, buf, pos);
 }
@@ -2263,10 +2263,10 @@ static ssize_t iwl_dbgfs_plcp_delta_write(struct file *file,
                return -EINVAL;
        if ((plcp < IWL_MAX_PLCP_ERR_THRESHOLD_MIN) ||
                (plcp > IWL_MAX_PLCP_ERR_THRESHOLD_MAX))
-               cfg(priv)->base_params->plcp_delta_threshold =
+               priv->plcp_delta_threshold =
                        IWL_MAX_PLCP_ERR_THRESHOLD_DISABLE;
        else
-               cfg(priv)->base_params->plcp_delta_threshold = plcp;
+               priv->plcp_delta_threshold = plcp;
        return count;
 }
 
index 73acbab6c248f846ba8432333d91e04c9466d20e..0c397fd635a31b4c85e8c449056ee0e305f8b665 100644 (file)
@@ -770,6 +770,8 @@ struct iwl_priv {
        struct iwl_channel_info *channel_info;  /* channel info array */
        u8 channel_count;       /* # of channels */
 
+       u8 plcp_delta_threshold;
+
        /* thermal calibration */
        s32 temperature;        /* Celsius */
        s32 last_temperature;