struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
        int ret;
        struct peer_create_params param;
+       struct cur_regulatory_info *reg_info;
+       enum ieee80211_ap_reg_power power_type;
 
        mutex_lock(&ar->conf_mutex);
 
                   "chanctx assign ptr %p vdev_id %i\n",
                   ctx, arvif->vdev_id);
 
+       if (ath11k_wmi_supports_6ghz_cc_ext(ar) &&
+           ctx->def.chan->band == NL80211_BAND_6GHZ &&
+           arvif->vdev_type == WMI_VDEV_TYPE_STA) {
+               reg_info = &ab->reg_info_store[ar->pdev_idx];
+               power_type = vif->bss_conf.power_type;
+
+               ath11k_dbg(ab, ATH11K_DBG_MAC, "chanctx power type %d\n", power_type);
+
+               if (power_type == IEEE80211_REG_UNSET_AP) {
+                       ret = -EINVAL;
+                       goto out;
+               }
+
+               ath11k_reg_handle_chan_list(ab, reg_info, power_type);
+       }
+
        /* for QCA6390 bss peer must be created before vdev_start */
        if (ab->hw_params.vdev_start_delay &&
            arvif->vdev_type != WMI_VDEV_TYPE_AP &&