memset(ifmgd->tx_tspec, 0, sizeof(ifmgd->tx_tspec));
        wiphy_delayed_work_cancel(local->hw.wiphy, &ifmgd->tx_tspec_wk);
 
+       sdata->vif.bss_conf.power_type = IEEE80211_REG_UNSET_AP;
        sdata->vif.bss_conf.pwr_reduction = 0;
        sdata->vif.bss_conf.tx_pwr_env_num = 0;
        memset(sdata->vif.bss_conf.tx_pwr_env, 0,
 
        if (elems->he_operation && !(link->u.mgd.conn_flags & IEEE80211_CONN_DISABLE_HE) &&
            elems->he_cap) {
+               const struct ieee80211_he_6ghz_oper *he_6ghz_oper;
+
                ieee80211_he_cap_ie_to_sta_he_cap(sdata, sband,
                                                  elems->he_cap,
                                                  elems->he_cap_len,
                                                  elems->he_6ghz_capa,
                                                  link_sta);
 
+               he_6ghz_oper = ieee80211_he_6ghz_oper(elems->he_operation);
+
+               if (is_6ghz && he_6ghz_oper) {
+                       switch (u8_get_bits(he_6ghz_oper->control,
+                                           IEEE80211_HE_6GHZ_OPER_CTRL_REG_INFO)) {
+                       case IEEE80211_6GHZ_CTRL_REG_LPI_AP:
+                               bss_conf->power_type = IEEE80211_REG_LPI_AP;
+                               break;
+                       case IEEE80211_6GHZ_CTRL_REG_SP_AP:
+                               bss_conf->power_type = IEEE80211_REG_SP_AP;
+                               break;
+                       case IEEE80211_6GHZ_CTRL_REG_VLP_AP:
+                               bss_conf->power_type = IEEE80211_REG_VLP_AP;
+                               break;
+                       default:
+                               bss_conf->power_type = IEEE80211_REG_UNSET_AP;
+                               break;
+                       }
+               } else if (is_6ghz) {
+                       link_info(link,
+                                 "HE 6 GHz operation missing (on %d MHz), expect issues\n",
+                                 bss_conf->chandef.chan->center_freq);
+               }
+
                bss_conf->he_support = link_sta->pub->he_cap.has_he;
                if (elems->rsnx && elems->rsnx_len &&
                    (elems->rsnx[0] & WLAN_RSNX_CAPA_PROTECTED_TWT) &&
 
        const struct ieee80211_sta_eht_cap *eht_cap;
        struct cfg80211_chan_def he_chandef = *chandef;
        const struct ieee80211_he_6ghz_oper *he_6ghz_oper;
-       struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf;
        bool support_80_80, support_160, support_320;
        u8 he_phy_cap, eht_phy_cap;
        u32 freq;
                eht_oper = NULL;
 
        he_6ghz_oper = ieee80211_he_6ghz_oper(he_oper);
-
-       if (!he_6ghz_oper) {
-               sdata_info(sdata,
-                          "HE 6GHz operation missing (on %d MHz), expect issues\n",
-                          chandef->chan->center_freq);
+       if (!he_6ghz_oper)
                return false;
-       }
 
        /*
         * The EHT operation IE does not contain the primary channel so the
                                              NL80211_BAND_6GHZ);
        he_chandef.chan = ieee80211_get_channel(sdata->local->hw.wiphy, freq);
 
-       switch (u8_get_bits(he_6ghz_oper->control,
-                           IEEE80211_HE_6GHZ_OPER_CTRL_REG_INFO)) {
-       case IEEE80211_6GHZ_CTRL_REG_LPI_AP:
-               bss_conf->power_type = IEEE80211_REG_LPI_AP;
-               break;
-       case IEEE80211_6GHZ_CTRL_REG_SP_AP:
-               bss_conf->power_type = IEEE80211_REG_SP_AP;
-               break;
-       default:
-               bss_conf->power_type = IEEE80211_REG_UNSET_AP;
-               break;
-       }
-
        if (!eht_oper ||
            !(eht_oper->params & IEEE80211_EHT_OPER_INFO_PRESENT)) {
                switch (u8_get_bits(he_6ghz_oper->control,