提交 f259509b 编写于 作者: B Bartosz Markowski 提交者: Kalle Valo

ath10k: split the if_limits and if_comb

Split the interface limits and inteface combination,
to reflect the 10.X capabilites (no P2P, no STA and 8 VAP).

kvalo: reverse order of ATH10K_FW_FEATURE_WMI_10X test, fix
checkpath warnings
Signed-off-by: NBartosz Markowski <bartosz.markowski@tieto.com>
Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
上级 453cdb61
...@@ -3464,14 +3464,12 @@ static const struct ieee80211_iface_limit ath10k_if_limits[] = { ...@@ -3464,14 +3464,12 @@ static const struct ieee80211_iface_limit ath10k_if_limits[] = {
}, },
}; };
#ifdef CONFIG_ATH10K_DFS_CERTIFIED static const struct ieee80211_iface_limit ath10k_10x_if_limits[] = {
static const struct ieee80211_iface_limit ath10k_if_dfs_limits[] = {
{ {
.max = 8, .max = 8,
.types = BIT(NL80211_IFTYPE_AP) .types = BIT(NL80211_IFTYPE_AP)
}, },
}; };
#endif
static const struct ieee80211_iface_combination ath10k_if_comb[] = { static const struct ieee80211_iface_combination ath10k_if_comb[] = {
{ {
...@@ -3481,19 +3479,22 @@ static const struct ieee80211_iface_combination ath10k_if_comb[] = { ...@@ -3481,19 +3479,22 @@ static const struct ieee80211_iface_combination ath10k_if_comb[] = {
.num_different_channels = 1, .num_different_channels = 1,
.beacon_int_infra_match = true, .beacon_int_infra_match = true,
}, },
#ifdef CONFIG_ATH10K_DFS_CERTIFIED };
static const struct ieee80211_iface_combination ath10k_10x_if_comb[] = {
{ {
.limits = ath10k_if_dfs_limits, .limits = ath10k_10x_if_limits,
.n_limits = ARRAY_SIZE(ath10k_if_dfs_limits), .n_limits = ARRAY_SIZE(ath10k_10x_if_limits),
.max_interfaces = 8, .max_interfaces = 8,
.num_different_channels = 1, .num_different_channels = 1,
.beacon_int_infra_match = true, .beacon_int_infra_match = true,
#ifdef CONFIG_ATH10K_DFS_CERTIFIED
.radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) | .radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) |
BIT(NL80211_CHAN_WIDTH_20) | BIT(NL80211_CHAN_WIDTH_20) |
BIT(NL80211_CHAN_WIDTH_40) | BIT(NL80211_CHAN_WIDTH_40) |
BIT(NL80211_CHAN_WIDTH_80), BIT(NL80211_CHAN_WIDTH_80),
}
#endif #endif
},
}; };
static struct ieee80211_sta_vht_cap ath10k_create_vht_cap(struct ath10k *ar) static struct ieee80211_sta_vht_cap ath10k_create_vht_cap(struct ath10k *ar)
...@@ -3717,8 +3718,15 @@ int ath10k_mac_register(struct ath10k *ar) ...@@ -3717,8 +3718,15 @@ int ath10k_mac_register(struct ath10k *ar)
*/ */
ar->hw->queues = 4; ar->hw->queues = 4;
ar->hw->wiphy->iface_combinations = ath10k_if_comb; if (test_bit(ATH10K_FW_FEATURE_WMI_10X, ar->fw_features)) {
ar->hw->wiphy->n_iface_combinations = ARRAY_SIZE(ath10k_if_comb); ar->hw->wiphy->iface_combinations = ath10k_10x_if_comb;
ar->hw->wiphy->n_iface_combinations =
ARRAY_SIZE(ath10k_10x_if_comb);
} else {
ar->hw->wiphy->iface_combinations = ath10k_if_comb;
ar->hw->wiphy->n_iface_combinations =
ARRAY_SIZE(ath10k_if_comb);
}
ar->hw->netdev_features = NETIF_F_HW_CSUM; ar->hw->netdev_features = NETIF_F_HW_CSUM;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册