if (vif->iftype == WILC_AP_MODE || vif->iftype == WILC_GO_MODE)
                        wilc_wfi_deinit_mon_interface(wl, true);
                vif->iftype = WILC_STATION_MODE;
-               wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
-                                       WILC_STATION_MODE, vif->idx);
+
+               if (wl->initialized)
+                       wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
+                                               WILC_STATION_MODE, vif->idx);
 
                memset(priv->assoc_stainfo.sta_associated_bss, 0,
                       WILC_MAX_NUM_STA * ETH_ALEN);
                priv->wdev.iftype = type;
                vif->monitor_flag = 0;
                vif->iftype = WILC_CLIENT_MODE;
-               wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
-                                       WILC_STATION_MODE, vif->idx);
+
+               if (wl->initialized)
+                       wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
+                                               WILC_STATION_MODE, vif->idx);
                break;
 
        case NL80211_IFTYPE_AP:
                dev->ieee80211_ptr->iftype = type;
                priv->wdev.iftype = type;
                vif->iftype = WILC_GO_MODE;
-               wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
-                                       WILC_AP_MODE, vif->idx);
+
+               if (wl->initialized)
+                       wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
+                                               WILC_AP_MODE, vif->idx);
                break;
 
        default: