brcmfmac: remove mode field from brcmf_cfg80211_vif structure
authorArend van Spriel <arend@broadcom.com>
Sat, 15 Mar 2014 16:18:21 +0000 (17:18 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 17 Mar 2014 17:44:14 +0000 (13:44 -0400)
The nl80211 iftype was converted to a mode value and stored in
brcmf_cfg80211_vif structure. The value was used only within
brcmfmac driver to decide execution of conditional code. Better
use wireless_dev::iftype for that as the wdev is contained in
the brcmf_cfg80211_vif structure.

Reviewed-by: Daniel (Deognyoun) Kim <dekim@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmfmac/p2p.c
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h

index fc4f98b275d7db6a8519b7c05dcddeb7aa2e2bf1..f3445ac627e48d84ef0391f59b5904beb9bf80f9 100644 (file)
@@ -797,7 +797,8 @@ static s32 brcmf_p2p_run_escan(struct brcmf_cfg80211_info *cfg,
                        /* SOCIAL CHANNELS 1, 6, 11 */
                        search_state = WL_P2P_DISC_ST_SEARCH;
                        brcmf_dbg(INFO, "P2P SEARCH PHASE START\n");
-               } else if (dev != NULL && vif->mode == WL_MODE_AP) {
+               } else if (dev != NULL &&
+                          vif->wdev.iftype == NL80211_IFTYPE_P2P_GO) {
                        /* If you are already a GO, then do SEARCH only */
                        brcmf_dbg(INFO, "Already a GO. Do SEARCH Only\n");
                        search_state = WL_P2P_DISC_ST_SEARCH;
@@ -2256,7 +2257,6 @@ struct wireless_dev *brcmf_p2p_add_vif(struct wiphy *wiphy, const char *name,
        struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg));
        struct brcmf_cfg80211_vif *vif;
        enum brcmf_fil_p2p_if_types iftype;
-       enum wl_mode mode;
        int err;
 
        if (brcmf_cfg80211_vif_event_armed(cfg))
@@ -2267,11 +2267,9 @@ struct wireless_dev *brcmf_p2p_add_vif(struct wiphy *wiphy, const char *name,
        switch (type) {
        case NL80211_IFTYPE_P2P_CLIENT:
                iftype = BRCMF_FIL_P2P_IF_CLIENT;
-               mode = WL_MODE_BSS;
                break;
        case NL80211_IFTYPE_P2P_GO:
                iftype = BRCMF_FIL_P2P_IF_GO;
-               mode = WL_MODE_AP;
                break;
        case NL80211_IFTYPE_P2P_DEVICE:
                return brcmf_p2p_create_p2pdev(&cfg->p2p, wiphy,
index adbd5b7331470cfa229ff83a0958a2db7b48e21b..9f75afb3baa0e59a177a4fcc36568a85431a9ea7 100644 (file)
@@ -494,6 +494,19 @@ brcmf_configure_arp_offload(struct brcmf_if *ifp, bool enable)
        return err;
 }
 
+static bool brcmf_is_apmode(struct brcmf_cfg80211_vif *vif)
+{
+       enum nl80211_iftype iftype;
+
+       iftype = vif->wdev.iftype;
+       return iftype == NL80211_IFTYPE_AP || iftype == NL80211_IFTYPE_P2P_GO;
+}
+
+static bool brcmf_is_ibssmode(struct brcmf_cfg80211_vif *vif)
+{
+       return vif->wdev.iftype == NL80211_IFTYPE_ADHOC;
+}
+
 static struct wireless_dev *brcmf_cfg80211_add_iface(struct wiphy *wiphy,
                                                     const char *name,
                                                     enum nl80211_iftype type,
@@ -654,7 +667,6 @@ brcmf_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
                          type);
                return -EOPNOTSUPP;
        case NL80211_IFTYPE_ADHOC:
-               vif->mode = WL_MODE_IBSS;
                infra = 0;
                break;
        case NL80211_IFTYPE_STATION:
@@ -670,12 +682,10 @@ brcmf_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
                         */
                        return 0;
                }
-               vif->mode = WL_MODE_BSS;
                infra = 1;
                break;
        case NL80211_IFTYPE_AP:
        case NL80211_IFTYPE_P2P_GO:
-               vif->mode = WL_MODE_AP;
                ap = 1;
                break;
        default:
@@ -699,7 +709,7 @@ brcmf_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
                        err = -EAGAIN;
                        goto done;
                }
-               brcmf_dbg(INFO, "IF Type = %s\n", (vif->mode == WL_MODE_IBSS) ?
+               brcmf_dbg(INFO, "IF Type = %s\n", brcmf_is_ibssmode(vif) ?
                          "Adhoc" : "Infra");
        }
        ndev->ieee80211_ptr->iftype = type;
@@ -1923,7 +1933,7 @@ brcmf_add_keyext(struct wiphy *wiphy, struct net_device *ndev,
                brcmf_dbg(CONN, "Setting the key index %d\n", key.index);
                memcpy(key.data, params->key, key.len);
 
-               if ((ifp->vif->mode != WL_MODE_AP) &&
+               if (!brcmf_is_apmode(ifp->vif) &&
                    (params->cipher == WLAN_CIPHER_SUITE_TKIP)) {
                        brcmf_dbg(CONN, "Swapping RX/TX MIC key\n");
                        memcpy(keybuf, &key.data[24], sizeof(keybuf));
@@ -2022,7 +2032,7 @@ brcmf_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
                brcmf_dbg(CONN, "WLAN_CIPHER_SUITE_WEP104\n");
                break;
        case WLAN_CIPHER_SUITE_TKIP:
-               if (ifp->vif->mode != WL_MODE_AP) {
+               if (!brcmf_is_apmode(ifp->vif)) {
                        brcmf_dbg(CONN, "Swapping RX/TX MIC key\n");
                        memcpy(keybuf, &key.data[24], sizeof(keybuf));
                        memcpy(&key.data[24], &key.data[16], sizeof(keybuf));
@@ -2183,7 +2193,7 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev,
        if (!check_vif_up(ifp->vif))
                return -EIO;
 
-       if (ifp->vif->mode == WL_MODE_AP) {
+       if (brcmf_is_apmode(ifp->vif)) {
                memcpy(&sta_info_le, mac, ETH_ALEN);
                err = brcmf_fil_iovar_data_get(ifp, "sta_info",
                                               &sta_info_le,
@@ -2200,7 +2210,7 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev,
                }
                brcmf_dbg(TRACE, "STA idle time : %d ms, connected time :%d sec\n",
                          sinfo->inactive_time, sinfo->connected_time);
-       } else if (ifp->vif->mode == WL_MODE_BSS) {
+       } else if (ifp->vif->wdev.iftype == NL80211_IFTYPE_STATION) {
                if (memcmp(mac, bssid, ETH_ALEN)) {
                        brcmf_err("Wrong Mac address cfg_mac-%pM wl_bssid-%pM\n",
                                  mac, bssid);
@@ -2482,11 +2492,6 @@ CleanUp:
        return err;
 }
 
-static bool brcmf_is_ibssmode(struct brcmf_cfg80211_vif *vif)
-{
-       return vif->mode == WL_MODE_IBSS;
-}
-
 static s32 brcmf_update_bss_info(struct brcmf_cfg80211_info *cfg,
                                 struct brcmf_if *ifp)
 {
@@ -4259,32 +4264,6 @@ static struct cfg80211_ops wl_cfg80211_ops = {
        CFG80211_TESTMODE_CMD(brcmf_cfg80211_testmode)
 };
 
-static s32 brcmf_nl80211_iftype_to_mode(enum nl80211_iftype type)
-{
-       switch (type) {
-       case NL80211_IFTYPE_AP_VLAN:
-       case NL80211_IFTYPE_WDS:
-       case NL80211_IFTYPE_MONITOR:
-       case NL80211_IFTYPE_MESH_POINT:
-               return -ENOTSUPP;
-       case NL80211_IFTYPE_ADHOC:
-               return WL_MODE_IBSS;
-       case NL80211_IFTYPE_STATION:
-       case NL80211_IFTYPE_P2P_CLIENT:
-               return WL_MODE_BSS;
-       case NL80211_IFTYPE_AP:
-       case NL80211_IFTYPE_P2P_GO:
-               return WL_MODE_AP;
-       case NL80211_IFTYPE_P2P_DEVICE:
-               return WL_MODE_P2P;
-       case NL80211_IFTYPE_UNSPECIFIED:
-       default:
-               break;
-       }
-
-       return -EINVAL;
-}
-
 static void brcmf_wiphy_pno_params(struct wiphy *wiphy)
 {
        /* scheduled scan settings */
@@ -4409,7 +4388,6 @@ struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg,
        vif->wdev.wiphy = cfg->wiphy;
        vif->wdev.iftype = type;
 
-       vif->mode = brcmf_nl80211_iftype_to_mode(type);
        vif->pm_block = pm_block;
        vif->roam_off = -1;
 
@@ -4703,7 +4681,7 @@ brcmf_notify_connect_status(struct brcmf_if *ifp,
        s32 err = 0;
        u16 reason;
 
-       if (ifp->vif->mode == WL_MODE_AP) {
+       if (brcmf_is_apmode(ifp->vif)) {
                err = brcmf_notify_connect_status_ap(cfg, ndev, e, data);
        } else if (brcmf_is_linkup(e)) {
                brcmf_dbg(CONN, "Linkup\n");
index 5715bb0708cf39c738b0e915c3c12cadd298fe4a..283c525a44f759d7995d882df93fdb700360abed 100644 (file)
@@ -89,21 +89,6 @@ enum brcmf_scan_status {
        BRCMF_SCAN_STATUS_SUPPRESS,
 };
 
-/**
- * enum wl_mode - driver mode of virtual interface.
- *
- * @WL_MODE_BSS: connects to BSS.
- * @WL_MODE_IBSS: operate as ad-hoc.
- * @WL_MODE_AP: operate as access-point.
- * @WL_MODE_P2P: provide P2P discovery.
- */
-enum wl_mode {
-       WL_MODE_BSS,
-       WL_MODE_IBSS,
-       WL_MODE_AP,
-       WL_MODE_P2P
-};
-
 /* dongle configuration */
 struct brcmf_cfg80211_conf {
        u32 frag_threshold;
@@ -193,7 +178,6 @@ struct vif_saved_ie {
  * @ifp: lower layer interface pointer
  * @wdev: wireless device.
  * @profile: profile information.
- * @mode: operating mode.
  * @roam_off: roaming state.
  * @sme_state: SME state using enum brcmf_vif_status bits.
  * @pm_block: power-management blocked.
@@ -204,7 +188,6 @@ struct brcmf_cfg80211_vif {
        struct brcmf_if *ifp;
        struct wireless_dev wdev;
        struct brcmf_cfg80211_profile profile;
-       s32 mode;
        s32 roam_off;
        unsigned long sme_state;
        bool pm_block;