|
@@ -5617,6 +5617,18 @@ fail:
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
|
+static const struct ieee80211_iface_limit ap_if_limits[] = {
|
|
|
+ { .max = 8, .types = BIT(NL80211_IFTYPE_AP) },
|
|
|
+};
|
|
|
+
|
|
|
+static const struct ieee80211_iface_combination ap_if_comb = {
|
|
|
+ .limits = ap_if_limits,
|
|
|
+ .n_limits = ARRAY_SIZE(ap_if_limits),
|
|
|
+ .max_interfaces = 8,
|
|
|
+ .num_different_channels = 1,
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
static int mwl8k_firmware_load_success(struct mwl8k_priv *priv)
|
|
|
{
|
|
|
struct ieee80211_hw *hw = priv->hw;
|
|
@@ -5696,8 +5708,13 @@ static int mwl8k_firmware_load_success(struct mwl8k_priv *priv)
|
|
|
goto err_free_cookie;
|
|
|
|
|
|
hw->wiphy->interface_modes = 0;
|
|
|
- if (priv->ap_macids_supported || priv->device_info->fw_image_ap)
|
|
|
+
|
|
|
+ if (priv->ap_macids_supported || priv->device_info->fw_image_ap) {
|
|
|
hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_AP);
|
|
|
+ hw->wiphy->iface_combinations = &ap_if_comb;
|
|
|
+ hw->wiphy->n_iface_combinations = 1;
|
|
|
+ }
|
|
|
+
|
|
|
if (priv->sta_macids_supported || priv->device_info->fw_image_sta)
|
|
|
hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_STATION);
|
|
|
|