static const struct ieee80211_iface_limit if_limits[] = {
        {
+               .max = 1,
+               .types = BIT(NL80211_IFTYPE_ADHOC)
+       }, {
                .max = MT7615_MAX_INTERFACES,
                .types = BIT(NL80211_IFTYPE_AP) |
 #ifdef CONFIG_MAC80211_MESH
        wiphy->reg_notifier = mt7615_regd_notifier;
        wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH;
 
+       wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_VHT_IBSS);
+
        ieee80211_hw_set(hw, TX_STATUS_NO_AMPDU_LEN);
 
        dev->mt76.sband_2g.sband.ht_cap.cap |= IEEE80211_HT_CAP_LDPC_CODING;
        dev->dfs_state = -1;
 
        wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
+                                BIT(NL80211_IFTYPE_ADHOC) |
 #ifdef CONFIG_MAC80211_MESH
                                 BIT(NL80211_IFTYPE_MESH_POINT) |
 #endif
 
                conn_type = CONNECTION_INFRA_STA;
                break;
        }
+       case NL80211_IFTYPE_ADHOC:
+               conn_type = CONNECTION_IBSS_ADHOC;
+               tx_wlan_idx = mvif->sta.wcid.idx;
+               net_type = NETWORK_IBSS;
+               break;
        default:
                WARN_ON(1);
                break;
        case NL80211_IFTYPE_STATION:
                req.basic.conn_type = cpu_to_le32(CONNECTION_INFRA_AP);
                break;
+       case NL80211_IFTYPE_ADHOC:
+               req.basic.conn_type = cpu_to_le32(CONNECTION_IBSS_ADHOC);
+               break;
        default:
                WARN_ON(1);
                break;