iwlegacy: move ht out of ctx structure
authorStanislaw Gruszka <sgruszka@redhat.com>
Fri, 3 Feb 2012 16:31:52 +0000 (17:31 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 6 Feb 2012 19:56:07 +0000 (14:56 -0500)
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlegacy/4965-mac.c
drivers/net/wireless/iwlegacy/4965-rs.c
drivers/net/wireless/iwlegacy/common.c
drivers/net/wireless/iwlegacy/common.h

index 1dd001475522cf2ce3886da688d8e8063f6e7dc0..94984c850e846f36f9d83495c9b42e501338efb4 100644 (file)
@@ -5793,23 +5793,23 @@ il4965_mac_channel_switch(struct ieee80211_hw *hw,
        il->current_ht_config.smps = conf->smps_mode;
 
        /* Configure HT40 channels */
-       ctx->ht.enabled = conf_is_ht(conf);
-       if (ctx->ht.enabled) {
+       il->ht.enabled = conf_is_ht(conf);
+       if (il->ht.enabled) {
                if (conf_is_ht40_minus(conf)) {
-                       ctx->ht.extension_chan_offset =
+                       il->ht.extension_chan_offset =
                            IEEE80211_HT_PARAM_CHA_SEC_BELOW;
-                       ctx->ht.is_40mhz = true;
+                       il->ht.is_40mhz = true;
                } else if (conf_is_ht40_plus(conf)) {
-                       ctx->ht.extension_chan_offset =
+                       il->ht.extension_chan_offset =
                            IEEE80211_HT_PARAM_CHA_SEC_ABOVE;
-                       ctx->ht.is_40mhz = true;
+                       il->ht.is_40mhz = true;
                } else {
-                       ctx->ht.extension_chan_offset =
+                       il->ht.extension_chan_offset =
                            IEEE80211_HT_PARAM_CHA_SEC_NONE;
-                       ctx->ht.is_40mhz = false;
+                       il->ht.is_40mhz = false;
                }
        } else
-               ctx->ht.is_40mhz = false;
+               il->ht.is_40mhz = false;
 
        if ((le16_to_cpu(il->staging.channel) != ch))
                il->staging.flags = 0;
index 467d0cb14ecdf56213839126ac08ac8c03668834..ad186d9a598fb613cc14f67e4dda6bc367e004dc 100644 (file)
@@ -641,13 +641,10 @@ il4965_rs_toggle_antenna(u32 valid_ant, u32 *rate_n_flags,
  * there are no non-GF stations present in the BSS.
  */
 static bool
-il4965_rs_use_green(struct ieee80211_sta *sta)
+il4965_rs_use_green(struct il_priv *il, struct ieee80211_sta *sta)
 {
-       struct il_station_priv *sta_priv = (void *)sta->drv_priv;
-       struct il_rxon_context *ctx = sta_priv->common.ctx;
-
        return (sta->ht_cap.cap & IEEE80211_HT_CAP_GRN_FLD) &&
-           !(ctx->ht.non_gf_sta_present);
+              !il->ht.non_gf_sta_present;
 }
 
 /**
@@ -1815,7 +1812,7 @@ il4965_rs_rate_scale_perform(struct il_priv *il, struct sk_buff *skb,
        if (is_legacy(tbl->lq_type))
                lq_sta->is_green = 0;
        else
-               lq_sta->is_green = il4965_rs_use_green(sta);
+               lq_sta->is_green = il4965_rs_use_green(il, sta);
        is_green = lq_sta->is_green;
 
        /* current tx rate */
@@ -2166,7 +2163,7 @@ il4965_rs_initialize_lq(struct il_priv *il, struct ieee80211_conf *conf,
        int rate_idx;
        int i;
        u32 rate;
-       u8 use_green = il4965_rs_use_green(sta);
+       u8 use_green = il4965_rs_use_green(il, sta);
        u8 active_tbl = 0;
        u8 valid_tx_ant;
        struct il_station_priv *sta_priv;
@@ -2341,7 +2338,7 @@ il4965_rs_rate_init(struct il_priv *il, struct ieee80211_sta *sta, u8 sta_id)
        lq_sta->is_dup = 0;
        lq_sta->max_rate_idx = -1;
        lq_sta->missed_rate_counter = IL_MISSED_RATE_MAX;
-       lq_sta->is_green = il4965_rs_use_green(sta);
+       lq_sta->is_green = il4965_rs_use_green(il, sta);
        lq_sta->active_legacy_rate = il->active_rate & ~(0x1000);
        lq_sta->band = il->band;
        /*
index c93fa1b85da578ee683d48b480ae136061fd4c2a..db2e8bb11fa1ff8eb10800dad78a727659d64521 100644 (file)
@@ -2352,7 +2352,7 @@ il_is_lq_table_valid(struct il_priv *il, struct il_rxon_context *ctx,
 {
        int i;
 
-       if (ctx->ht.enabled)
+       if (il->ht.enabled)
                return true;
 
        D_INFO("Channel %u is not an HT channel\n", il->active.channel);
@@ -3559,7 +3559,7 @@ bool
 il_is_ht40_tx_allowed(struct il_priv *il, struct il_rxon_context *ctx,
                      struct ieee80211_sta_ht_cap *ht_cap)
 {
-       if (!ctx->ht.enabled || !ctx->ht.is_40mhz)
+       if (!il->ht.enabled || !il->ht.is_40mhz)
                return false;
 
        /*
@@ -3576,7 +3576,7 @@ il_is_ht40_tx_allowed(struct il_priv *il, struct il_rxon_context *ctx,
 
        return il_is_channel_extension(il, il->band,
                                       le16_to_cpu(il->staging.channel),
-                                      ctx->ht.extension_chan_offset);
+                                      il->ht.extension_chan_offset);
 }
 EXPORT_SYMBOL(il_is_ht40_tx_allowed);
 
@@ -3832,7 +3832,7 @@ _il_set_rxon_ht(struct il_priv *il, struct il_ht_config *ht_conf,
 {
        struct il_rxon_cmd *rxon = &il->staging;
 
-       if (!ctx->ht.enabled) {
+       if (!il->ht.enabled) {
                rxon->flags &=
                    ~(RXON_FLG_CHANNEL_MODE_MSK |
                      RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK | RXON_FLG_HT40_PROT_MSK
@@ -3841,7 +3841,7 @@ _il_set_rxon_ht(struct il_priv *il, struct il_ht_config *ht_conf,
        }
 
        rxon->flags |=
-           cpu_to_le32(ctx->ht.protection << RXON_FLG_HT_OPERATING_MODE_POS);
+           cpu_to_le32(il->ht.protection << RXON_FLG_HT_OPERATING_MODE_POS);
 
        /* Set up channel bandwidth:
         * 20 MHz only, 20/40 mixed or pure 40 if ht40 ok */
@@ -3850,10 +3850,10 @@ _il_set_rxon_ht(struct il_priv *il, struct il_ht_config *ht_conf,
            ~(RXON_FLG_CHANNEL_MODE_MSK | RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK);
        if (il_is_ht40_tx_allowed(il, ctx, NULL)) {
                /* pure ht40 */
-               if (ctx->ht.protection == IEEE80211_HT_OP_MODE_PROTECTION_20MHZ) {
+               if (il->ht.protection == IEEE80211_HT_OP_MODE_PROTECTION_20MHZ) {
                        rxon->flags |= RXON_FLG_CHANNEL_MODE_PURE_40;
                        /* Note: control channel is opposite of extension channel */
-                       switch (ctx->ht.extension_chan_offset) {
+                       switch (il->ht.extension_chan_offset) {
                        case IEEE80211_HT_PARAM_CHA_SEC_ABOVE:
                                rxon->flags &=
                                    ~RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK;
@@ -3864,7 +3864,7 @@ _il_set_rxon_ht(struct il_priv *il, struct il_ht_config *ht_conf,
                        }
                } else {
                        /* Note: control channel is opposite of extension channel */
-                       switch (ctx->ht.extension_chan_offset) {
+                       switch (il->ht.extension_chan_offset) {
                        case IEEE80211_HT_PARAM_CHA_SEC_ABOVE:
                                rxon->flags &=
                                    ~(RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK);
@@ -3890,7 +3890,7 @@ _il_set_rxon_ht(struct il_priv *il, struct il_ht_config *ht_conf,
 
        D_ASSOC("rxon flags 0x%X operation mode :0x%X "
                "extension channel offset 0x%x\n", le32_to_cpu(rxon->flags),
-               ctx->ht.protection, ctx->ht.extension_chan_offset);
+               il->ht.protection, il->ht.extension_chan_offset);
 }
 
 void
@@ -5236,7 +5236,7 @@ il_update_qos(struct il_priv *il, struct il_rxon_context *ctx)
                il->qos_data.def_qos_parm.qos_flags |=
                    QOS_PARAM_FLG_UPDATE_EDCA_MSK;
 
-       if (ctx->ht.enabled)
+       if (il->ht.enabled)
                il->qos_data.def_qos_parm.qos_flags |= QOS_PARAM_FLG_TGN_MSK;
 
        D_QOS("send QoS cmd with Qos active=%d FLAGS=0x%X\n",
@@ -5319,32 +5319,32 @@ il_mac_config(struct ieee80211_hw *hw, u32 changed)
                spin_lock_irqsave(&il->lock, flags);
 
                /* Configure HT40 channels */
-               if (ctx->ht.enabled != conf_is_ht(conf)) {
-                       ctx->ht.enabled = conf_is_ht(conf);
+               if (il->ht.enabled != conf_is_ht(conf)) {
+                       il->ht.enabled = conf_is_ht(conf);
                        ht_changed = true;
                }
-               if (ctx->ht.enabled) {
+               if (il->ht.enabled) {
                        if (conf_is_ht40_minus(conf)) {
-                               ctx->ht.extension_chan_offset =
+                               il->ht.extension_chan_offset =
                                    IEEE80211_HT_PARAM_CHA_SEC_BELOW;
-                               ctx->ht.is_40mhz = true;
+                               il->ht.is_40mhz = true;
                        } else if (conf_is_ht40_plus(conf)) {
-                               ctx->ht.extension_chan_offset =
+                               il->ht.extension_chan_offset =
                                    IEEE80211_HT_PARAM_CHA_SEC_ABOVE;
-                               ctx->ht.is_40mhz = true;
+                               il->ht.is_40mhz = true;
                        } else {
-                               ctx->ht.extension_chan_offset =
+                               il->ht.extension_chan_offset =
                                    IEEE80211_HT_PARAM_CHA_SEC_NONE;
-                               ctx->ht.is_40mhz = false;
+                               il->ht.is_40mhz = false;
                        }
                } else
-                       ctx->ht.is_40mhz = false;
+                       il->ht.is_40mhz = false;
 
                /*
                 * Default to no protection. Protection mode will
                 * later be set from BSS config in il_ht_conf
                 */
-               ctx->ht.protection = IEEE80211_HT_OP_MODE_PROTECTION_NONE;
+               il->ht.protection = IEEE80211_HT_OP_MODE_PROTECTION_NONE;
 
                /* if we are switching from ht to 2.4 clear flags
                 * from any ht related info since 2.4 does not
@@ -5460,16 +5460,15 @@ il_ht_conf(struct il_priv *il, struct ieee80211_vif *vif)
        struct il_ht_config *ht_conf = &il->current_ht_config;
        struct ieee80211_sta *sta;
        struct ieee80211_bss_conf *bss_conf = &vif->bss_conf;
-       struct il_rxon_context *ctx = il_rxon_ctx_from_vif(vif);
 
        D_ASSOC("enter:\n");
 
-       if (!ctx->ht.enabled)
+       if (!il->ht.enabled)
                return;
 
-       ctx->ht.protection =
+       il->ht.protection =
            bss_conf->ht_operation_mode & IEEE80211_HT_OP_MODE_PROTECTION;
-       ctx->ht.non_gf_sta_present =
+       il->ht.non_gf_sta_present =
            !!(bss_conf->
               ht_operation_mode & IEEE80211_HT_OP_MODE_NON_GF_STA_PRSNT);
 
index 18375cb7904c1ea80912f1a697b632aa0c46bc1f..df4d1602289c7ced959d1542f1bbd0f7c1754de7 100644 (file)
@@ -1164,13 +1164,6 @@ struct il_rxon_context {
         * we already removed the vif for type setting.
         */
        bool always_active, is_active;
-
-       struct {
-               bool non_gf_sta_present;
-               u8 protection;
-               bool enabled, is_40mhz;
-               u8 extension_chan_offset;
-       } ht;
 };
 
 struct il_power_mgr {
@@ -1278,6 +1271,14 @@ struct il_priv {
 
        struct il_qos_info qos_data;
 
+       struct {
+               bool enabled;
+               bool is_40mhz;
+               bool non_gf_sta_present;
+               u8 protection;
+               u8 extension_chan_offset;
+       } ht;
+
        /*
         * We declare this const so it can only be
         * changed via explicit cast within the