brcmf_netdev_wait_pend8021x(ndev);
 
-       err = brcmf_fil_bsscfg_data_set(ndev, "wsec_key", &key_le,
+       err = brcmf_fil_bsscfg_data_set(netdev_priv(ndev), "wsec_key", &key_le,
                                        sizeof(key_le));
 
        if (err)
                }
                WL_INFO("IF Type = AP\n");
        } else {
-               err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_INFRA, infra);
+               err = brcmf_fil_cmd_int_set(netdev_priv(ndev),
+                                           BRCMF_C_SET_INFRA, infra);
                if (err) {
                        WL_ERR("WLC_SET_INFRA error (%d)\n", err);
                        err = -EAGAIN;
        struct brcmf_cfg80211_info *cfg = ndev_to_cfg(ndev);
 
        if (test_bit(WL_STATUS_READY, &cfg->status)) {
-               err = brcmf_fil_iovar_int_set(ndev, "mpc", mpc);
+               err = brcmf_fil_iovar_int_set(netdev_priv(ndev), "mpc", mpc);
                if (err) {
                        WL_ERR("fail to set mpc\n");
                        return;
        params->action = cpu_to_le16(action);
        params->scan_duration = cpu_to_le16(0);
 
-       err = brcmf_fil_iovar_data_set(iscan->ndev, "iscan", params,
-                                      params_size);
+       err = brcmf_fil_iovar_data_set(netdev_priv(iscan->ndev), "iscan",
+                                      params, params_size);
        if (err) {
                if (err == -EBUSY)
                        WL_INFO("system busy : iscan canceled\n");
        iscan->state = WL_ISCAN_STATE_SCANING;
 
        passive_scan = cfg->active_scan ? 0 : 1;
-       err = brcmf_fil_cmd_int_set(cfg_to_ndev(cfg),
+       err = brcmf_fil_cmd_int_set(netdev_priv(ndev),
                                    BRCMF_C_SET_PASSIVE_SCAN, passive_scan);
        if (err) {
                WL_ERR("error (%d)\n", err);
                }
 
                passive_scan = cfg->active_scan ? 0 : 1;
-               err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_PASSIVE_SCAN,
+               err = brcmf_fil_cmd_int_set(netdev_priv(ndev),
+                                           BRCMF_C_SET_PASSIVE_SCAN,
                                            passive_scan);
                if (err) {
                        WL_ERR("WLC_SET_PASSIVE_SCAN error (%d)\n", err);
                        goto scan_out;
                }
                brcmf_set_mpc(ndev, 0);
-               err = brcmf_fil_cmd_data_set(ndev, BRCMF_C_SCAN, &sr->ssid_le,
-                                            sizeof(sr->ssid_le));
+               err = brcmf_fil_cmd_data_set(netdev_priv(ndev), BRCMF_C_SCAN,
+                                            &sr->ssid_le, sizeof(sr->ssid_le));
                if (err) {
                        if (err == -EBUSY)
                                WL_INFO("system busy : scan for \"%s\" "
                /* Scan is aborted by setting channel_list[0] to -1 */
                params_le.channel_list[0] = cpu_to_le16(-1);
                /* E-Scan (or anyother type) can be aborted by SCAN */
-               err = brcmf_fil_cmd_data_set(ndev, BRCMF_C_SCAN, ¶ms_le,
-                                            sizeof(params_le));
+               err = brcmf_fil_cmd_data_set(netdev_priv(ndev), BRCMF_C_SCAN,
+                                            ¶ms_le, sizeof(params_le));
                if (err)
                        WL_ERR("Scan abort  failed\n");
        }
        params->action = cpu_to_le16(action);
        params->sync_id = cpu_to_le16(0x1234);
 
-       err = brcmf_fil_iovar_data_set(ndev, "escan", params, params_size);
+       err = brcmf_fil_iovar_data_set(netdev_priv(ndev), "escan",
+                                      params, params_size);
        if (err) {
                if (err == -EBUSY)
                        WL_INFO("system busy : escan canceled\n");
        cfg->escan_info.wiphy = wiphy;
        cfg->escan_info.escan_state = WL_ESCAN_STATE_SCANNING;
        passive_scan = cfg->active_scan ? 0 : 1;
-       err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_PASSIVE_SCAN,
+       err = brcmf_fil_cmd_int_set(netdev_priv(ndev), BRCMF_C_SET_PASSIVE_SCAN,
                                    passive_scan);
        if (err) {
                WL_ERR("error (%d)\n", err);
                        WL_SCAN("Broadcast scan\n");
 
                passive_scan = cfg->active_scan ? 0 : 1;
-               err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_PASSIVE_SCAN,
+               err = brcmf_fil_cmd_int_set(netdev_priv(ndev),
+                                           BRCMF_C_SET_PASSIVE_SCAN,
                                            passive_scan);
                if (err) {
                        WL_ERR("WLC_SET_PASSIVE_SCAN error (%d)\n", err);
                        goto scan_out;
                }
                brcmf_set_mpc(ndev, 0);
-               err = brcmf_fil_cmd_data_set(ndev, BRCMF_C_SCAN, &sr->ssid_le,
-                                            sizeof(sr->ssid_le));
+               err = brcmf_fil_cmd_data_set(netdev_priv(ndev), BRCMF_C_SCAN,
+                                            &sr->ssid_le, sizeof(sr->ssid_le));
                if (err) {
                        if (err == -EBUSY)
                                WL_INFO("BUSY: scan for \"%s\" canceled\n",
 {
        s32 err = 0;
 
-       err = brcmf_fil_iovar_int_set(ndev, "rtsthresh", rts_threshold);
+       err = brcmf_fil_iovar_int_set(netdev_priv(ndev), "rtsthresh",
+                                     rts_threshold);
        if (err)
                WL_ERR("Error (%d)\n", err);
 
 {
        s32 err = 0;
 
-       err = brcmf_fil_iovar_int_set(ndev, "fragthresh", frag_threshold);
+       err = brcmf_fil_iovar_int_set(netdev_priv(ndev), "fragthresh",
+                                     frag_threshold);
        if (err)
                WL_ERR("Error (%d)\n", err);
 
        s32 err = 0;
        u32 cmd = (l ? BRCM_SET_LRL : BRCM_SET_SRL);
 
-       err = brcmf_fil_cmd_int_set(ndev, cmd, retry);
+       err = brcmf_fil_cmd_int_set(netdev_priv(ndev), cmd, retry);
        if (err) {
                WL_ERR("cmd (%d) , error (%d)\n", cmd, err);
                return err;
        if (cfg->link_up) {
                ndev = cfg_to_ndev(cfg);
                WL_INFO("Call WLC_DISASSOC to stop excess roaming\n ");
-               err = brcmf_fil_cmd_data_set(ndev, BRCMF_C_DISASSOC, NULL, 0);
+               err = brcmf_fil_cmd_data_set(netdev_priv(ndev),
+                                            BRCMF_C_DISASSOC, NULL, 0);
                if (err)
                        WL_ERR("WLC_DISASSOC failed (%d)\n", err);
                cfg->link_up = false;
        if (params->privacy)
                wsec |= WEP_ENABLED;
 
-       err = brcmf_fil_iovar_int_set(ndev, "wsec", wsec);
+       err = brcmf_fil_iovar_int_set(netdev_priv(ndev), "wsec", wsec);
        if (err) {
                WL_ERR("wsec failed (%d)\n", err);
                goto done;
        else
                bcnprd = 100;
 
-       err = brcmf_fil_cmd_int_set(ndev, BRCM_SET_BCNPRD, bcnprd);
+       err = brcmf_fil_cmd_int_set(netdev_priv(ndev), BRCM_SET_BCNPRD, bcnprd);
        if (err) {
                WL_ERR("WLC_SET_BCNPRD failed (%d)\n", err);
                goto done;
 
                /* set channel for starter */
                target_channel = cfg->channel;
-               err = brcmf_fil_cmd_int_set(ndev, BRCM_SET_CHANNEL,
+               err = brcmf_fil_cmd_int_set(netdev_priv(ndev), BRCM_SET_CHANNEL,
                                            target_channel);
                if (err) {
                        WL_ERR("WLC_SET_CHANNEL failed (%d)\n", err);
        cfg->ibss_starter = false;
 
 
-       err = brcmf_fil_cmd_data_set(ndev, BRCMF_C_SET_SSID,
+       err = brcmf_fil_cmd_data_set(netdev_priv(ndev), BRCMF_C_SET_SSID,
                                     &join_params, join_params_size);
        if (err) {
                WL_ERR("WLC_SET_SSID failed (%d)\n", err);
        else
                val = WPA_AUTH_DISABLED;
        WL_CONN("setting wpa_auth to 0x%0x\n", val);
-       err = brcmf_fil_iovar_int_set(ndev, "wpa_auth", val);
+       err = brcmf_fil_iovar_int_set(netdev_priv(ndev), "wpa_auth", val);
        if (err) {
                WL_ERR("set wpa_auth failed (%d)\n", err);
                return err;
                break;
        }
 
-       err = brcmf_fil_iovar_int_set(ndev, "auth", val);
+       err = brcmf_fil_iovar_int_set(netdev_priv(ndev), "auth", val);
        if (err) {
                WL_ERR("set auth failed (%d)\n", err);
                return err;
        }
 
        WL_CONN("pval (%d) gval (%d)\n", pval, gval);
-       err = brcmf_fil_iovar_int_set(ndev, "wsec", pval | gval);
+       err = brcmf_fil_iovar_int_set(netdev_priv(ndev), "wsec", pval | gval);
        if (err) {
                WL_ERR("error (%d)\n", err);
                return err;
        s32 err = 0;
 
        if (sme->crypto.n_akm_suites) {
-               err = brcmf_fil_iovar_int_get(ndev, "wpa_auth", &val);
+               err = brcmf_fil_iovar_int_get(netdev_priv(ndev),
+                                             "wpa_auth", &val);
                if (err) {
                        WL_ERR("could not get wpa_auth (%d)\n", err);
                        return err;
                }
 
                WL_CONN("setting wpa_auth to %d\n", val);
-               err = brcmf_fil_iovar_int_set(ndev, "wpa_auth", val);
+               err = brcmf_fil_iovar_int_set(netdev_priv(ndev),
+                                             "wpa_auth", val);
                if (err) {
                        WL_ERR("could not set wpa_auth (%d)\n", err);
                        return err;
        if (sec->auth_type == NL80211_AUTHTYPE_SHARED_KEY) {
                WL_CONN("set auth_type to shared key\n");
                val = WL_AUTH_SHARED_KEY;       /* shared key */
-               err = brcmf_fil_bsscfg_int_set(ndev, "auth", val);
+               err = brcmf_fil_bsscfg_int_set(netdev_priv(ndev), "auth", val);
                if (err)
                        WL_ERR("set auth failed (%d)\n", err);
        }
 
        brcmf_ch_to_chanspec(cfg->channel,
                             &join_params, &join_params_size);
-       err = brcmf_fil_cmd_data_set(ndev, BRCMF_C_SET_SSID,
+       err = brcmf_fil_cmd_data_set(netdev_priv(ndev), BRCMF_C_SET_SSID,
                                     &join_params, join_params_size);
        if (err)
                WL_ERR("WLC_SET_SSID failed (%d)\n", err);
 
        memcpy(&scbval.ea, &profile->bssid, ETH_ALEN);
        scbval.val = cpu_to_le32(reason_code);
-       err = brcmf_fil_cmd_data_set(ndev, BRCMF_C_DISASSOC, &scbval,
-                                    sizeof(struct brcmf_scb_val_le));
+       err = brcmf_fil_cmd_data_set(netdev_priv(ndev), BRCMF_C_DISASSOC,
+                                    &scbval, sizeof(scbval));
        if (err)
                WL_ERR("error (%d)\n", err);
 
 {
 
        struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
-       struct net_device *ndev = cfg_to_ndev(cfg);
+       struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg));
        u16 txpwrmw;
        s32 err = 0;
        s32 disable = 0;
        }
        /* Make sure radio is off or on as far as software is concerned */
        disable = WL_RADIO_SW_DISABLE << 16;
-       err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_RADIO, disable);
+       err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_RADIO, disable);
        if (err)
                WL_ERR("WLC_SET_RADIO error (%d)\n", err);
 
                txpwrmw = 0xffff;
        else
                txpwrmw = (u16) dbm;
-       err = brcmf_fil_iovar_int_set(ndev, "qtxpower",
-                       (s32) (brcmf_mw_to_qdbm(txpwrmw)));
+       err = brcmf_fil_iovar_int_set(ifp, "qtxpower",
+                                     (s32)brcmf_mw_to_qdbm(txpwrmw));
        if (err)
                WL_ERR("qtxpower error (%d)\n", err);
        cfg->conf->tx_power = dbm;
        if (!check_sys_up(wiphy))
                return -EIO;
 
-       err = brcmf_fil_iovar_int_get(ndev, "qtxpower", &txpwrdbm);
+       err = brcmf_fil_iovar_int_get(netdev_priv(ndev), "qtxpower", &txpwrdbm);
        if (err) {
                WL_ERR("error (%d)\n", err);
                goto done;
 brcmf_cfg80211_config_default_key(struct wiphy *wiphy, struct net_device *ndev,
                               u8 key_idx, bool unicast, bool multicast)
 {
-       struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
        u32 index;
        u32 wsec;
        s32 err = 0;
-       s32 bssidx;
 
        WL_TRACE("Enter\n");
        WL_CONN("key index (%d)\n", key_idx);
        if (!check_sys_up(wiphy))
                return -EIO;
 
-       bssidx = brcmf_find_bssidx(cfg, ndev);
-       err = brcmf_fil_bsscfg_int_get(ndev, "wsec", &wsec);
+       err = brcmf_fil_bsscfg_int_get(netdev_priv(ndev), "wsec", &wsec);
        if (err) {
                WL_ERR("WLC_GET_WSEC error (%d)\n", err);
                goto done;
        if (wsec & WEP_ENABLED) {
                /* Just select a new current key */
                index = key_idx;
-               err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_KEY_PRIMARY,
-                                           index);
+               err = brcmf_fil_cmd_int_set(netdev_priv(ndev),
+                                           BRCMF_C_SET_KEY_PRIMARY, index);
                if (err)
                        WL_ERR("error (%d)\n", err);
        }
        if (err)
                goto done;
 
-       err = brcmf_fil_bsscfg_int_get(ndev, "wsec", &wsec);
+       err = brcmf_fil_bsscfg_int_get(netdev_priv(ndev), "wsec", &wsec);
        if (err) {
                WL_ERR("get wsec error (%d)\n", err);
                goto done;
        }
        wsec |= val;
-       err = brcmf_fil_bsscfg_int_set(ndev, "wsec", wsec);
+       err = brcmf_fil_bsscfg_int_set(netdev_priv(ndev), "wsec", wsec);
        if (err) {
                WL_ERR("set wsec error (%d)\n", err);
                goto done;
        memset(¶ms, 0, sizeof(params));
 
        bssidx = brcmf_find_bssidx(cfg, ndev);
-       err = brcmf_fil_bsscfg_int_get(ndev, "wsec", &wsec);
+       err = brcmf_fil_bsscfg_int_get(netdev_priv(ndev), "wsec", &wsec);
        if (err) {
                WL_ERR("WLC_GET_WSEC error (%d)\n", err);
                /* Ignore this error, may happen during DISASSOC */
 
        if (cfg->conf->mode == WL_MODE_AP) {
                memcpy(&sta_info_le, mac, ETH_ALEN);
-               err = brcmf_fil_iovar_data_get(ndev, "sta_info", &sta_info_le,
+               err = brcmf_fil_iovar_data_get(netdev_priv(ndev), "sta_info",
+                                              &sta_info_le,
                                               sizeof(sta_info_le));
                if (err < 0) {
                        WL_ERR("GET STA INFO failed, %d\n", err);
                        goto done;
                }
                /* Report the current tx rate */
-       err = brcmf_fil_cmd_int_get(ndev, BRCMF_C_GET_RATE, &rate);
+       err = brcmf_fil_cmd_int_get(netdev_priv(ndev), BRCMF_C_GET_RATE, &rate);
                if (err) {
                        WL_ERR("Could not get rate (%d)\n", err);
                        goto done;
 
                if (test_bit(WL_STATUS_CONNECTED, &cfg->status)) {
                        memset(&scb_val, 0, sizeof(scb_val));
-               err = brcmf_fil_cmd_data_get(ndev, BRCMF_C_GET_RSSI, &scb_val,
-                                            sizeof(struct brcmf_scb_val_le));
+               err = brcmf_fil_cmd_data_get(netdev_priv(ndev),
+                                            BRCMF_C_GET_RSSI, &scb_val,
+                                            sizeof(scb_val));
                        if (err) {
                                WL_ERR("Could not get rssi (%d)\n", err);
                                goto done;
        pm = enabled ? PM_FAST : PM_OFF;
        WL_INFO("power save %s\n", (pm ? "enabled" : "disabled"));
 
-       err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_PM, pm);
+       err = brcmf_fil_cmd_int_set(netdev_priv(ndev), BRCMF_C_SET_PM, pm);
        if (err) {
                if (err == -ENODEV)
                        WL_ERR("net_device is not ready yet\n");
 
        /* addr param is always NULL. ignore it */
        /* Get current rateset */
-       err = brcmf_fil_cmd_data_get(ndev, BRCM_GET_CURR_RATESET, &rateset_le,
-                                    sizeof(rateset_le));
+       err = brcmf_fil_cmd_data_get(netdev_priv(ndev), BRCM_GET_CURR_RATESET,
+                                    &rateset_le, sizeof(rateset_le));
        if (err) {
                WL_ERR("could not get current rateset (%d)\n", err);
                goto done;
         *      Set rate override,
         *      Since the is a/b/g-blind, both a/bg_rate are enforced.
         */
-       err_bg = brcmf_fil_iovar_int_set(ndev, "bg_rate", rate);
-       err_a = brcmf_fil_iovar_int_set(ndev, "a_rate", rate);
+       err_bg = brcmf_fil_iovar_int_set(netdev_priv(ndev), "bg_rate", rate);
+       err_a = brcmf_fil_iovar_int_set(netdev_priv(ndev), "a_rate", rate);
        if (err_bg && err_a) {
                WL_ERR("could not set fixed rate (%d) (%d)\n", err_bg, err_a);
                err = err_bg | err_a;
 
        *(__le32 *)buf = cpu_to_le32(WL_BSS_INFO_MAX);
 
-       err = brcmf_fil_cmd_data_get(ndev, BRCMF_C_GET_BSS_INFO, buf,
-                                    WL_BSS_INFO_MAX);
+       err = brcmf_fil_cmd_data_get(netdev_priv(ndev), BRCMF_C_GET_BSS_INFO,
+                                    buf, WL_BSS_INFO_MAX);
        if (err) {
                WL_ERR("WLC_GET_BSS_INFO failed: %d\n", err);
                goto CleanUp;
 static s32 brcmf_update_bss_info(struct brcmf_cfg80211_info *cfg)
 {
        struct brcmf_cfg80211_profile *profile = cfg->profile;
+       struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg));
        struct brcmf_bss_info_le *bi;
        struct brcmf_ssid *ssid;
        struct brcmf_tlv *tim;
        ssid = &profile->ssid;
 
        *(__le32 *)cfg->extra_buf = cpu_to_le32(WL_EXTRA_BUF_MAX);
-       err = brcmf_fil_cmd_data_get(cfg_to_ndev(cfg),
-                                    BRCMF_C_GET_BSS_INFO,
+       err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BSS_INFO,
                                     cfg->extra_buf, WL_EXTRA_BUF_MAX);
        if (err) {
                WL_ERR("Could not get bss info %d\n", err);
                * so we speficially query dtim information to dongle.
                */
                u32 var;
-               err = brcmf_fil_iovar_int_get(cfg_to_ndev(cfg),
-                                             "dtim_assoc", &var);
+               err = brcmf_fil_iovar_int_get(ifp, "dtim_assoc", &var);
                if (err) {
                        WL_ERR("wl dtim_assoc failed (%d)\n", err);
                        goto update_bss_info_out;
        results_le->version = 0;
        results_le->count = 0;
 
-       err = brcmf_fil_iovar_data_get(iscan->ndev, "iscanresults",
+       err = brcmf_fil_iovar_data_get(netdev_priv(iscan->ndev), "iscanresults",
                                       iscan->scan_buf,
                                       sizeof(iscan->scan_buf));
        if (err) {
        }
 
        if (!err)
-               brcmf_fil_iovar_data_set(ndev, "pmkid_info", (char *)pmk_list,
-                                        sizeof(*pmk_list));
+               brcmf_fil_iovar_data_set(netdev_priv(ndev), "pmkid_info",
+                                        (char *)pmk_list, sizeof(*pmk_list));
 
        return err;
 }
        int ret;
 
        /* Disable pfn */
-       ret = brcmf_fil_iovar_int_set(ndev, "pfn", 0);
+       ret = brcmf_fil_iovar_int_set(netdev_priv(ndev), "pfn", 0);
        if (ret == 0) {
                /* clear pfn */
-               ret = brcmf_fil_iovar_data_set(ndev, "pfnclear", NULL, 0);
+               ret = brcmf_fil_iovar_data_set(netdev_priv(ndev), "pfnclear",
+                                              NULL, 0);
        }
        if (ret < 0)
                WL_ERR("failed code %d\n", ret);
        /* set up pno scan fr */
        pfn_param.scan_freq = cpu_to_le32(BRCMF_PNO_TIME);
 
-       return brcmf_fil_iovar_data_set(ndev, "pfn_set", &pfn_param,
-                                       sizeof(pfn_param));
+       return brcmf_fil_iovar_data_set(netdev_priv(ndev), "pfn_set",
+                                       &pfn_param, sizeof(pfn_param));
 }
 
 static int
                        pfn.flags = cpu_to_le32(1 << BRCMF_PNO_HIDDEN_BIT);
                        pfn.ssid.SSID_len = cpu_to_le32(ssid_len);
                        memcpy(pfn.ssid.SSID, ssid->ssid, ssid_len);
-                       ret = brcmf_fil_iovar_data_set(ndev, "pfn_add",
-                                                      &pfn, sizeof(pfn));
+                       ret = brcmf_fil_iovar_data_set(netdev_priv(ndev),
+                                                      "pfn_add", &pfn,
+                                                      sizeof(pfn));
                        WL_SCAN(">>> PNO filter %s for ssid (%s)\n",
                                ret == 0 ? "set" : "failed",
                                ssid->ssid);
                }
                /* Enable the PNO */
-               if (brcmf_fil_iovar_int_set(ndev, "pfn", 1) < 0) {
+               if (brcmf_fil_iovar_int_set(netdev_priv(ndev), "pfn", 1) < 0) {
                        WL_ERR("PNO enable failed!! ret=%d\n", ret);
                        return -EINVAL;
                }
                 dcmd->buf, dcmd->len);
 
        if (dcmd->set)
-               ret = brcmf_fil_cmd_data_set(ndev, dcmd->cmd, dcmd->buf,
-                                            dcmd->len);
+               ret = brcmf_fil_cmd_data_set(netdev_priv(ndev), dcmd->cmd,
+                                            dcmd->buf, dcmd->len);
        else
-               ret = brcmf_fil_cmd_data_get(ndev, dcmd->cmd, dcmd->buf,
-                                            dcmd->len);
+               ret = brcmf_fil_cmd_data_get(netdev_priv(ndev), dcmd->cmd,
+                                            dcmd->buf, dcmd->len);
        if (ret == 0) {
                reply = cfg80211_testmode_alloc_reply_skb(wiphy, sizeof(*dcmd));
                nla_put(reply, NL80211_ATTR_TESTDATA, sizeof(*dcmd), dcmd);
 
 static s32 brcmf_configure_opensecurity(struct net_device *ndev, s32 bssidx)
 {
+       struct brcmf_if *ifp = netdev_priv(ndev);
        s32 err;
 
        /* set auth */
-       err = brcmf_fil_bsscfg_int_set(ndev, "auth", 0);
+       err = brcmf_fil_bsscfg_int_set(ifp, "auth", 0);
        if (err < 0) {
                WL_ERR("auth error %d\n", err);
                return err;
        }
        /* set wsec */
-       err = brcmf_fil_bsscfg_int_set(ndev, "wsec", 0);
+       err = brcmf_fil_bsscfg_int_set(ifp, "wsec", 0);
        if (err < 0) {
                WL_ERR("wsec error %d\n", err);
                return err;
        }
        /* set upper-layer auth */
-       err = brcmf_fil_bsscfg_int_set(ndev, "wpa_auth", WPA_AUTH_NONE);
+       err = brcmf_fil_bsscfg_int_set(ifp, "wpa_auth", WPA_AUTH_NONE);
        if (err < 0) {
                WL_ERR("wpa_auth error %d\n", err);
                return err;
 brcmf_configure_wpaie(struct net_device *ndev, struct brcmf_vs_tlv *wpa_ie,
                     bool is_rsn_ie, s32 bssidx)
 {
+       struct brcmf_if *ifp = netdev_priv(ndev);
        u32 auth = 0; /* d11 open authentication */
        u16 count;
        s32 err = 0;
                                wme_bss_disable = 0;
                }
                /* set wme_bss_disable to sync RSN Capabilities */
-               err = brcmf_fil_bsscfg_int_set(ndev, "wme_bss_disable",
+               err = brcmf_fil_bsscfg_int_set(ifp, "wme_bss_disable",
                                               wme_bss_disable);
                if (err < 0) {
                        WL_ERR("wme_bss_disable error %d\n", err);
        wsec = (pval | gval | SES_OW_ENABLED);
 
        /* set auth */
-       err = brcmf_fil_bsscfg_int_set(ndev, "auth", auth);
+       err = brcmf_fil_bsscfg_int_set(ifp, "auth", auth);
        if (err < 0) {
                WL_ERR("auth error %d\n", err);
                goto exit;
        }
        /* set wsec */
-       err = brcmf_fil_bsscfg_int_set(ndev, "wsec", wsec);
+       err = brcmf_fil_bsscfg_int_set(ifp, "wsec", wsec);
        if (err < 0) {
                WL_ERR("wsec error %d\n", err);
                goto exit;
        }
        /* set upper-layer auth */
-       err = brcmf_fil_bsscfg_int_set(ndev, "wpa_auth", wpa_auth);
+       err = brcmf_fil_bsscfg_int_set(ifp, "wpa_auth", wpa_auth);
        if (err < 0) {
                WL_ERR("wpa_auth error %d\n", err);
                goto exit;
                }
        }
        if (total_ie_buf_len) {
-               err  = brcmf_fil_bsscfg_data_set(ndev, "vndr_ie",
+               err  = brcmf_fil_bsscfg_data_set(netdev_priv(ndev), "vndr_ie",
                                                 iovar_ie_buf,
                                                 total_ie_buf_len);
                if (err)
                        struct cfg80211_ap_settings *settings)
 {
        s32 ie_offset;
+       struct brcmf_if *ifp = netdev_priv(ndev);
        struct brcmf_tlv *ssid_ie;
        struct brcmf_ssid_le ssid_le;
        s32 err = -EPERM;
        }
 
        brcmf_set_mpc(ndev, 0);
-       err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_DOWN, 1);
+       err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1);
        if (err < 0) {
                WL_ERR("BRCMF_C_DOWN error %d\n", err);
                goto exit;
        }
-       err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_INFRA, 1);
+       err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_INFRA, 1);
        if (err < 0) {
                WL_ERR("SET INFRA error %d\n", err);
                goto exit;
        }
-       err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_AP, 1);
+       err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_AP, 1);
        if (err < 0) {
                WL_ERR("setting AP mode failed %d\n", err);
                goto exit;
                WL_TRACE("Applied Vndr IEs for Probe Resp\n");
 
        if (settings->beacon_interval) {
-               err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_BCNPRD,
+               err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_BCNPRD,
                                            settings->beacon_interval);
                if (err < 0) {
                        WL_ERR("Beacon Interval Set Error, %d\n", err);
                }
        }
        if (settings->dtim_period) {
-               err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_DTIMPRD,
+               err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_DTIMPRD,
                                            settings->dtim_period);
                if (err < 0) {
                        WL_ERR("DTIM Interval Set Error, %d\n", err);
                        goto exit;
                }
        }
-       err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_UP, 1);
+       err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_UP, 1);
        if (err < 0) {
                WL_ERR("BRCMF_C_UP error (%d)\n", err);
                goto exit;
        /* join parameters starts with ssid */
        memcpy(&join_params.ssid_le, &ssid_le, sizeof(ssid_le));
        /* create softap */
-       err = brcmf_fil_cmd_data_set(ndev, BRCMF_C_SET_SSID, &join_params,
-                                    sizeof(join_params));
+       err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SSID,
+                                    &join_params, sizeof(join_params));
        if (err < 0) {
                WL_ERR("SET SSID error (%d)\n", err);
                goto exit;
                /* Due to most likely deauths outstanding we sleep */
                /* first to make sure they get processed by fw. */
                msleep(400);
-               err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_AP, 0);
+               err = brcmf_fil_cmd_int_set(netdev_priv(ndev),
+                                           BRCMF_C_SET_AP, 0);
                if (err < 0) {
                        WL_ERR("setting AP mode failed %d\n", err);
                        goto exit;
                }
-               err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_UP, 0);
+               err = brcmf_fil_cmd_int_set(netdev_priv(ndev), BRCMF_C_UP, 0);
                if (err < 0) {
                        WL_ERR("BRCMF_C_UP error %d\n", err);
                        goto exit;
 
        memcpy(&scbval.ea, mac, ETH_ALEN);
        scbval.val = cpu_to_le32(WLAN_REASON_DEAUTH_LEAVING);
-       err = brcmf_fil_cmd_data_set(ndev,
+       err = brcmf_fil_cmd_data_set(netdev_priv(ndev),
                                     BRCMF_C_SCB_DEAUTHENTICATE_FOR_REASON,
                                     &scbval, sizeof(scbval));
        if (err)
 
 static s32 brcmf_get_assoc_ies(struct brcmf_cfg80211_info *cfg)
 {
-       struct net_device *ndev = cfg_to_ndev(cfg);
+       struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg));
        struct brcmf_cfg80211_assoc_ielen_le *assoc_info;
        struct brcmf_cfg80211_connect_info *conn_info = cfg_to_conn(cfg);
        u32 req_len;
 
        brcmf_clear_assoc_ies(cfg);
 
-       err = brcmf_fil_iovar_data_get(ndev, "assoc_info", cfg->extra_buf,
-                                      WL_ASSOC_INFO_MAX);
+       err = brcmf_fil_iovar_data_get(ifp, "assoc_info",
+                                      cfg->extra_buf, WL_ASSOC_INFO_MAX);
        if (err) {
                WL_ERR("could not get assoc info (%d)\n", err);
                return err;
        req_len = le32_to_cpu(assoc_info->req_len);
        resp_len = le32_to_cpu(assoc_info->resp_len);
        if (req_len) {
-               err = brcmf_fil_iovar_data_get(ndev, "assoc_req_ies",
+               err = brcmf_fil_iovar_data_get(ifp, "assoc_req_ies",
                                               cfg->extra_buf,
                                               WL_ASSOC_INFO_MAX);
                if (err) {
                conn_info->req_ie = NULL;
        }
        if (resp_len) {
-               err = brcmf_fil_iovar_data_get(ndev, "assoc_resp_ies",
+               err = brcmf_fil_iovar_data_get(ifp, "assoc_resp_ies",
                                               cfg->extra_buf,
                                               WL_ASSOC_INFO_MAX);
                if (err) {
 
        /* data sent to dongle has to be little endian */
        *(__le32 *)buf = cpu_to_le32(WL_BSS_INFO_MAX);
-       err = brcmf_fil_cmd_data_get(ndev, BRCMF_C_GET_BSS_INFO, buf,
-                                    WL_BSS_INFO_MAX);
+       err = brcmf_fil_cmd_data_get(netdev_priv(ndev), BRCMF_C_GET_BSS_INFO,
+                                    buf, WL_BSS_INFO_MAX);
 
        if (err)
                goto done;
                goto scan_done_out;
        }
 
-       err = brcmf_fil_cmd_data_get(ndev, BRCMF_C_GET_CHANNEL,
+       err = brcmf_fil_cmd_data_get(netdev_priv(ndev), BRCMF_C_GET_CHANNEL,
                                     &channel_inform_le,
                                     sizeof(channel_inform_le));
        if (err) {
 
        memset(cfg->scan_results, 0, len);
        bss_list_le->buflen = cpu_to_le32(len);
-       err = brcmf_fil_cmd_data_get(ndev, BRCMF_C_SCAN_RESULTS,
+       err = brcmf_fil_cmd_data_get(netdev_priv(ndev), BRCMF_C_SCAN_RESULTS,
                                     cfg->scan_results, len);
        if (err) {
                WL_ERR("%s Scan_results error (%d)\n", ndev->name, err);
        WL_TRACE("Enter\n");
 
        /* Setup event_msgs */
-       err = brcmf_fil_iovar_data_get(ndev, "event_msgs", eventmask,
-                                      BRCMF_EVENTING_MASK_LEN);
+       err = brcmf_fil_iovar_data_get(netdev_priv(ndev), "event_msgs",
+                                      eventmask, BRCMF_EVENTING_MASK_LEN);
        if (err) {
                WL_ERR("Get event_msgs error (%d)\n", err);
                goto dongle_eventmsg_out;
        setbit(eventmask, BRCMF_E_ESCAN_RESULT);
        setbit(eventmask, BRCMF_E_PFN_NET_FOUND);
 
-       err = brcmf_fil_iovar_data_set(ndev, "event_msgs", eventmask,
-                                      BRCMF_EVENTING_MASK_LEN);
+       err = brcmf_fil_iovar_data_set(netdev_priv(ndev), "event_msgs",
+                                      eventmask, BRCMF_EVENTING_MASK_LEN);
        if (err) {
                WL_ERR("Set event_msgs error (%d)\n", err);
                goto dongle_eventmsg_out;
 static s32
 brcmf_dongle_roam(struct net_device *ndev, u32 roamvar, u32 bcn_timeout)
 {
+       struct brcmf_if *ifp = netdev_priv(ndev);
        s32 err = 0;
        __le32 roamtrigger[2];
        __le32 roam_delta[2];
         * off to report link down
         */
        if (roamvar) {
-               err = brcmf_fil_iovar_int_set(ndev, "bcn_timeout", bcn_timeout);
+               err = brcmf_fil_iovar_int_set(ifp, "bcn_timeout", bcn_timeout);
                if (err) {
                        WL_ERR("bcn_timeout error (%d)\n", err);
                        goto dongle_rom_out;
         * to take care of roaming
         */
        WL_INFO("Internal Roaming = %s\n", roamvar ? "Off" : "On");
-       err = brcmf_fil_iovar_int_set(ndev, "roam_off", roamvar);
+       err = brcmf_fil_iovar_int_set(ifp, "roam_off", roamvar);
        if (err) {
                WL_ERR("roam_off error (%d)\n", err);
                goto dongle_rom_out;
 
        roamtrigger[0] = cpu_to_le32(WL_ROAM_TRIGGER_LEVEL);
        roamtrigger[1] = cpu_to_le32(BRCM_BAND_ALL);
-       err = brcmf_fil_cmd_data_set(ndev, BRCMF_C_SET_ROAM_TRIGGER,
+       err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER,
                                     (void *)roamtrigger, sizeof(roamtrigger));
        if (err) {
                WL_ERR("WLC_SET_ROAM_TRIGGER error (%d)\n", err);
 
        roam_delta[0] = cpu_to_le32(WL_ROAM_DELTA);
        roam_delta[1] = cpu_to_le32(BRCM_BAND_ALL);
-       err = brcmf_fil_cmd_data_set(ndev, BRCMF_C_SET_ROAM_DELTA,
+       err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_DELTA,
                                     (void *)roam_delta, sizeof(roam_delta));
        if (err) {
                WL_ERR("WLC_SET_ROAM_DELTA error (%d)\n", err);
 brcmf_dongle_scantime(struct net_device *ndev, s32 scan_assoc_time,
                      s32 scan_unassoc_time, s32 scan_passive_time)
 {
+       struct brcmf_if *ifp = netdev_priv(ndev);
        s32 err = 0;
 
-       err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_SCAN_CHANNEL_TIME,
+       err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_CHANNEL_TIME,
                                    scan_assoc_time);
        if (err) {
                if (err == -EOPNOTSUPP)
                        WL_ERR("Scan assoc time error (%d)\n", err);
                goto dongle_scantime_out;
        }
-       err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_SCAN_UNASSOC_TIME,
+       err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_UNASSOC_TIME,
                                    scan_unassoc_time);
        if (err) {
                if (err == -EOPNOTSUPP)
                goto dongle_scantime_out;
        }
 
-       err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_SCAN_PASSIVE_TIME,
+       err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_PASSIVE_TIME,
                                    scan_passive_time);
        if (err) {
                if (err == -EOPNOTSUPP)
 
 static s32 wl_update_wiphybands(struct brcmf_cfg80211_info *cfg)
 {
+       struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg));
        struct wiphy *wiphy;
        s32 phy_list;
        s8 phy;
        s32 err = 0;
 
-       err = brcmf_fil_cmd_data_get(cfg_to_ndev(cfg), BRCM_GET_PHYLIST,
+       err = brcmf_fil_cmd_data_get(ifp, BRCM_GET_PHYLIST,
                                     &phy_list, sizeof(phy_list));
        if (err) {
                WL_ERR("error (%d)\n", err);
                goto default_conf_out;
 
        power_mode = cfg->pwr_save ? PM_FAST : PM_OFF;
-       err = brcmf_fil_cmd_int_set(ndev, BRCMF_C_SET_PM, power_mode);
+       err = brcmf_fil_cmd_int_set(netdev_priv(ndev), BRCMF_C_SET_PM,
+                                   power_mode);
        if (err)
                goto default_conf_out;
        WL_INFO("power save set to %s\n",