libertas: get current channel out of priv->curbssparams
authorHolger Schurig <hs4233@mail.mn-solutions.de>
Thu, 22 Oct 2009 13:30:50 +0000 (15:30 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 27 Oct 2009 20:48:37 +0000 (16:48 -0400)
... as priv->curbssparams won't exist once libertas+cfg80211 lands.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/libertas/assoc.c
drivers/net/wireless/libertas/assoc.h
drivers/net/wireless/libertas/cmd.c
drivers/net/wireless/libertas/dev.h
drivers/net/wireless/libertas/main.c
drivers/net/wireless/libertas/wext.c

index 2ccfeca32cdefd17690fdc5589263bac0c34b0bb..b8bdba67ad17c5a540b14a1333a735f486f25543 100644 (file)
@@ -376,7 +376,7 @@ static int lbs_associate(struct lbs_private *priv,
                                   (u16)(pos - (u8 *) &cmd.iebuf));
 
        /* update curbssparams */
-       priv->curbssparams.channel = bss->phy.ds.channel;
+       priv->channel = bss->phy.ds.channel;
 
        ret = lbs_cmd_with_response(priv, command, &cmd);
        if (ret == 0) {
@@ -489,7 +489,7 @@ static int lbs_adhoc_post(struct lbs_private *priv,
        lbs_deb_join("ADHOC_RESP: Joined/started '%s', BSSID %pM, channel %d\n",
                     print_ssid(ssid, bss->ssid, bss->ssid_len),
                     priv->curbssparams.bssid,
-                    priv->curbssparams.channel);
+                    priv->channel);
 
 done:
        lbs_deb_leave_args(LBS_DEB_JOIN, "ret %d", ret);
@@ -562,7 +562,7 @@ static int lbs_adhoc_join(struct lbs_private *priv,
        lbs_deb_join("AdhocJoin: band = %c\n", assoc_req->band);
 
        priv->adhoccreate = 0;
-       priv->curbssparams.channel = bss->channel;
+       priv->channel = bss->channel;
 
        /* Build the join command */
        memset(&cmd, 0, sizeof(cmd));
@@ -1196,7 +1196,7 @@ static int assoc_helper_channel(struct lbs_private *priv,
                goto done;
        }
 
-       if (assoc_req->channel == priv->curbssparams.channel)
+       if (assoc_req->channel == priv->channel)
                goto done;
 
        if (priv->mesh_dev) {
@@ -1208,7 +1208,7 @@ static int assoc_helper_channel(struct lbs_private *priv,
        }
 
        lbs_deb_assoc("ASSOC: channel: %d -> %d\n",
-                     priv->curbssparams.channel, assoc_req->channel);
+                     priv->channel, assoc_req->channel);
 
        ret = lbs_set_channel(priv, assoc_req->channel);
        if (ret < 0)
@@ -1223,7 +1223,7 @@ static int assoc_helper_channel(struct lbs_private *priv,
                goto done;
        }
 
-       if (assoc_req->channel != priv->curbssparams.channel) {
+       if (assoc_req->channel != priv->channel) {
                lbs_deb_assoc("ASSOC: channel: failed to update channel to %d\n",
                              assoc_req->channel);
                goto restore_mesh;
@@ -1244,7 +1244,7 @@ static int assoc_helper_channel(struct lbs_private *priv,
  restore_mesh:
        if (priv->mesh_dev)
                lbs_mesh_config(priv, CMD_ACT_MESH_CONFIG_START,
-                               priv->curbssparams.channel);
+                               priv->channel);
 
  done:
        lbs_deb_leave_args(LBS_DEB_ASSOC, "ret %d", ret);
@@ -1466,7 +1466,7 @@ static int should_stop_adhoc(struct lbs_private *priv,
        }
 
        if (test_bit(ASSOC_FLAG_CHANNEL, &assoc_req->flags)) {
-               if (assoc_req->channel != priv->curbssparams.channel)
+               if (assoc_req->channel != priv->channel)
                        return 1;
        }
 
@@ -1771,7 +1771,7 @@ struct assoc_request *lbs_get_association_request(struct lbs_private *priv)
        }
 
        if (!test_bit(ASSOC_FLAG_CHANNEL, &assoc_req->flags))
-               assoc_req->channel = priv->curbssparams.channel;
+               assoc_req->channel = priv->channel;
 
        if (!test_bit(ASSOC_FLAG_BAND, &assoc_req->flags))
                assoc_req->band = priv->curbssparams.band;
index 610d14c14cd4d532370b8b9310e377dcffa1e3f5..d8c266895dd3d8f78c980588cae1e07ddf1f7afc 100644 (file)
@@ -36,8 +36,7 @@ struct current_bss_params {
 
        /** band */
        u8 band;
-       /** channel */
-       u8 channel;
+       /** channel is directly in priv->channel */
        /** zero-terminated array of supported data rates */
        u8 rates[MAX_RATES + 1];
 };
index ec65be0c4d930896aad9b2ba4e055afaf17d5034..076cf7e625fbd3c8d7d67efff4c40703a00ba8e2 100644 (file)
@@ -880,7 +880,7 @@ int lbs_update_channel(struct lbs_private *priv)
 
        ret = lbs_get_channel(priv);
        if (ret > 0) {
-               priv->curbssparams.channel = ret;
+               priv->channel = ret;
                ret = 0;
        }
        lbs_deb_leave_args(LBS_DEB_ASSOC, "ret %d", ret);
@@ -899,7 +899,7 @@ int lbs_set_channel(struct lbs_private *priv, u8 channel)
 {
        struct cmd_ds_802_11_rf_channel cmd;
 #ifdef DEBUG
-       u8 old_channel = priv->curbssparams.channel;
+       u8 old_channel = priv->channel;
 #endif
        int ret = 0;
 
@@ -914,9 +914,9 @@ int lbs_set_channel(struct lbs_private *priv, u8 channel)
        if (ret)
                goto out;
 
-       priv->curbssparams.channel = (uint8_t) le16_to_cpu(cmd.channel);
+       priv->channel = (uint8_t) le16_to_cpu(cmd.channel);
        lbs_deb_cmd("channel switch from %d to %d\n", old_channel,
-               priv->curbssparams.channel);
+               priv->channel);
 
 out:
        lbs_deb_leave_args(LBS_DEB_CMD, "ret %d", ret);
index 27f0f1f2a58a9f8b1ec1f41266fe2f54e42f2cfc..1a675111300d49a8ea6ee01deeb9f8ff27fb7cc2 100644 (file)
@@ -165,6 +165,7 @@ struct lbs_private {
        /* NIC/link operation characteristics */
        u16 mac_control;
        u8 radio_on;
+       u8 channel;
        s16 txpower_cur;
        s16 txpower_min;
        s16 txpower_max;
index ee0893334553f627423e4010b0fa5bacaeb73a6c..eb61f6955e9ed5c708514a0fab3db26bb6e34252 100644 (file)
@@ -285,7 +285,7 @@ static ssize_t lbs_mesh_set(struct device *dev,
                return count;
        if (enable)
                action = CMD_ACT_MESH_CONFIG_START;
-       ret = lbs_mesh_config(priv, action, priv->curbssparams.channel);
+       ret = lbs_mesh_config(priv, action, priv->channel);
        if (ret)
                return ret;
 
@@ -1046,7 +1046,7 @@ static int lbs_init_adapter(struct lbs_private *priv)
        priv->mesh_connect_status = LBS_DISCONNECTED;
        priv->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM;
        priv->mode = IW_MODE_INFRA;
-       priv->curbssparams.channel = DEFAULT_AD_HOC_CHANNEL;
+       priv->channel = DEFAULT_AD_HOC_CHANNEL;
        priv->mac_control = CMD_ACT_MAC_RX_ON | CMD_ACT_MAC_TX_ON;
        priv->radio_on = 1;
        priv->enablehwauto = 1;
@@ -1314,10 +1314,10 @@ int lbs_start_card(struct lbs_private *priv)
 
                priv->mesh_tlv = TLV_TYPE_OLD_MESH_ID;
                if (lbs_mesh_config(priv, CMD_ACT_MESH_CONFIG_START,
-                                   priv->curbssparams.channel)) {
+                                   priv->channel)) {
                        priv->mesh_tlv = TLV_TYPE_MESH_ID;
                        if (lbs_mesh_config(priv, CMD_ACT_MESH_CONFIG_START,
-                                           priv->curbssparams.channel))
+                                           priv->channel))
                                priv->mesh_tlv = 0;
                }
        } else if (priv->mesh_fw_ver == MESH_FW_NEW) {
@@ -1326,7 +1326,7 @@ int lbs_start_card(struct lbs_private *priv)
                 */
                priv->mesh_tlv = TLV_TYPE_MESH_ID;
                if (lbs_mesh_config(priv, CMD_ACT_MESH_CONFIG_START,
-                                   priv->curbssparams.channel))
+                                   priv->channel))
                        priv->mesh_tlv = 0;
        }
        if (priv->mesh_tlv) {
index 3e8be9a578e8a71b6dfa23acc4e19e48240cf943..c688ca7ab322dd326412ef0507db0aad445dab0c 100644 (file)
@@ -164,12 +164,12 @@ static int lbs_get_freq(struct net_device *dev, struct iw_request_info *info,
        lbs_deb_enter(LBS_DEB_WEXT);
 
        cfp = lbs_find_cfp_by_band_and_channel(priv, 0,
-                                          priv->curbssparams.channel);
+                                          priv->channel);
 
        if (!cfp) {
-               if (priv->curbssparams.channel)
+               if (priv->channel)
                        lbs_deb_wext("invalid channel %d\n",
-                              priv->curbssparams.channel);
+                              priv->channel);
                return -EINVAL;
        }
 
@@ -986,7 +986,7 @@ static int lbs_mesh_set_freq(struct net_device *dev,
                goto out;
        }
 
-       if (fwrq->m != priv->curbssparams.channel) {
+       if (fwrq->m != priv->channel) {
                lbs_deb_wext("mesh channel change forces eth disconnect\n");
                if (priv->mode == IW_MODE_INFRA)
                        lbs_cmd_80211_deauthenticate(priv,
@@ -2100,7 +2100,7 @@ static int lbs_mesh_set_essid(struct net_device *dev,
        }
 
        lbs_mesh_config(priv, CMD_ACT_MESH_CONFIG_START,
-                       priv->curbssparams.channel);
+                       priv->channel);
  out:
        lbs_deb_leave_args(LBS_DEB_WEXT, "ret %d", ret);
        return ret;