Commit 523aafd0 authored by Kalle Valo's avatar Kalle Valo

ath11k: add ab to TARGET_NUM_VDEVS & co

The next patch changes TARGET_NUM_VDEVS to be dynamic and need access to ab.
Add ab separately to keep the next patch simple.

Compile tested only.
Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20211209104351.9811-2-kvalo@kernel.org
parent eccd2513
...@@ -1067,7 +1067,7 @@ static int ath11k_core_reconfigure_on_crash(struct ath11k_base *ab) ...@@ -1067,7 +1067,7 @@ static int ath11k_core_reconfigure_on_crash(struct ath11k_base *ab)
ath11k_dp_free(ab); ath11k_dp_free(ab);
ath11k_hal_srng_deinit(ab); ath11k_hal_srng_deinit(ab);
ab->free_vdev_map = (1LL << (ab->num_radios * TARGET_NUM_VDEVS)) - 1; ab->free_vdev_map = (1LL << (ab->num_radios * TARGET_NUM_VDEVS(ab))) - 1;
ret = ath11k_hal_srng_init(ab); ret = ath11k_hal_srng_init(ab);
if (ret) if (ret)
......
...@@ -150,18 +150,18 @@ static void ath11k_hw_ipq8074_reo_setup(struct ath11k_base *ab) ...@@ -150,18 +150,18 @@ static void ath11k_hw_ipq8074_reo_setup(struct ath11k_base *ab)
static void ath11k_init_wmi_config_ipq8074(struct ath11k_base *ab, static void ath11k_init_wmi_config_ipq8074(struct ath11k_base *ab,
struct target_resource_config *config) struct target_resource_config *config)
{ {
config->num_vdevs = ab->num_radios * TARGET_NUM_VDEVS; config->num_vdevs = ab->num_radios * TARGET_NUM_VDEVS(ab);
if (ab->num_radios == 2) { if (ab->num_radios == 2) {
config->num_peers = TARGET_NUM_PEERS(DBS); config->num_peers = TARGET_NUM_PEERS(ab, DBS);
config->num_tids = TARGET_NUM_TIDS(DBS); config->num_tids = TARGET_NUM_TIDS(ab, DBS);
} else if (ab->num_radios == 3) { } else if (ab->num_radios == 3) {
config->num_peers = TARGET_NUM_PEERS(DBS_SBS); config->num_peers = TARGET_NUM_PEERS(ab, DBS_SBS);
config->num_tids = TARGET_NUM_TIDS(DBS_SBS); config->num_tids = TARGET_NUM_TIDS(ab, DBS_SBS);
} else { } else {
/* Control should not reach here */ /* Control should not reach here */
config->num_peers = TARGET_NUM_PEERS(SINGLE); config->num_peers = TARGET_NUM_PEERS(ab, SINGLE);
config->num_tids = TARGET_NUM_TIDS(SINGLE); config->num_tids = TARGET_NUM_TIDS(ab, SINGLE);
} }
config->num_offload_peers = TARGET_NUM_OFFLD_PEERS; config->num_offload_peers = TARGET_NUM_OFFLD_PEERS;
config->num_offload_reorder_buffs = TARGET_NUM_OFFLD_REORDER_BUFFS; config->num_offload_reorder_buffs = TARGET_NUM_OFFLD_REORDER_BUFFS;
......
...@@ -12,26 +12,26 @@ ...@@ -12,26 +12,26 @@
/* Target configuration defines */ /* Target configuration defines */
/* Num VDEVS per radio */ /* Num VDEVS per radio */
#define TARGET_NUM_VDEVS (16 + 1) #define TARGET_NUM_VDEVS(ab) (16 + 1)
#define TARGET_NUM_PEERS_PDEV (512 + TARGET_NUM_VDEVS) #define TARGET_NUM_PEERS_PDEV(ab) (512 + TARGET_NUM_VDEVS(ab))
/* Num of peers for Single Radio mode */ /* Num of peers for Single Radio mode */
#define TARGET_NUM_PEERS_SINGLE (TARGET_NUM_PEERS_PDEV) #define TARGET_NUM_PEERS_SINGLE(ab) (TARGET_NUM_PEERS_PDEV(ab))
/* Num of peers for DBS */ /* Num of peers for DBS */
#define TARGET_NUM_PEERS_DBS (2 * TARGET_NUM_PEERS_PDEV) #define TARGET_NUM_PEERS_DBS(ab) (2 * TARGET_NUM_PEERS_PDEV(ab))
/* Num of peers for DBS_SBS */ /* Num of peers for DBS_SBS */
#define TARGET_NUM_PEERS_DBS_SBS (3 * TARGET_NUM_PEERS_PDEV) #define TARGET_NUM_PEERS_DBS_SBS(ab) (3 * TARGET_NUM_PEERS_PDEV(ab))
/* Max num of stations (per radio) */ /* Max num of stations (per radio) */
#define TARGET_NUM_STATIONS 512 #define TARGET_NUM_STATIONS(ab) 512
#define TARGET_NUM_PEERS(x) TARGET_NUM_PEERS_##x #define TARGET_NUM_PEERS(ab, x) TARGET_NUM_PEERS_##x(ab)
#define TARGET_NUM_PEER_KEYS 2 #define TARGET_NUM_PEER_KEYS 2
#define TARGET_NUM_TIDS(x) (2 * TARGET_NUM_PEERS(x) + \ #define TARGET_NUM_TIDS(ab, x) (2 * TARGET_NUM_PEERS(ab, x) + \
4 * TARGET_NUM_VDEVS + 8) 4 * TARGET_NUM_VDEVS(ab) + 8)
#define TARGET_AST_SKID_LIMIT 16 #define TARGET_AST_SKID_LIMIT 16
#define TARGET_NUM_OFFLD_PEERS 4 #define TARGET_NUM_OFFLD_PEERS 4
......
...@@ -6004,9 +6004,9 @@ static int ath11k_mac_op_add_interface(struct ieee80211_hw *hw, ...@@ -6004,9 +6004,9 @@ static int ath11k_mac_op_add_interface(struct ieee80211_hw *hw,
goto err; goto err;
} }
if (ar->num_created_vdevs > (TARGET_NUM_VDEVS - 1)) { if (ar->num_created_vdevs > (TARGET_NUM_VDEVS(ab) - 1)) {
ath11k_warn(ab, "failed to create vdev %u, reached max vdev limit %d\n", ath11k_warn(ab, "failed to create vdev %u, reached max vdev limit %d\n",
ar->num_created_vdevs, TARGET_NUM_VDEVS); ar->num_created_vdevs, TARGET_NUM_VDEVS(ab));
ret = -EBUSY; ret = -EBUSY;
goto err; goto err;
} }
...@@ -8202,8 +8202,8 @@ static int __ath11k_mac_register(struct ath11k *ar) ...@@ -8202,8 +8202,8 @@ static int __ath11k_mac_register(struct ath11k *ar)
ar->hw->wiphy->features |= NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE | ar->hw->wiphy->features |= NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE |
NL80211_FEATURE_AP_SCAN; NL80211_FEATURE_AP_SCAN;
ar->max_num_stations = TARGET_NUM_STATIONS; ar->max_num_stations = TARGET_NUM_STATIONS(ab);
ar->max_num_peers = TARGET_NUM_PEERS_PDEV; ar->max_num_peers = TARGET_NUM_PEERS_PDEV(ab);
ar->hw->wiphy->max_ap_assoc_sta = ar->max_num_stations; ar->hw->wiphy->max_ap_assoc_sta = ar->max_num_stations;
...@@ -8306,7 +8306,7 @@ int ath11k_mac_register(struct ath11k_base *ab) ...@@ -8306,7 +8306,7 @@ int ath11k_mac_register(struct ath11k_base *ab)
/* Initialize channel counters frequency value in hertz */ /* Initialize channel counters frequency value in hertz */
ab->cc_freq_hz = IPQ8074_CC_FREQ_HERTZ; ab->cc_freq_hz = IPQ8074_CC_FREQ_HERTZ;
ab->free_vdev_map = (1LL << (ab->num_radios * TARGET_NUM_VDEVS)) - 1; ab->free_vdev_map = (1LL << (ab->num_radios * TARGET_NUM_VDEVS(ab))) - 1;
for (i = 0; i < ab->num_radios; i++) { for (i = 0; i < ab->num_radios; i++) {
pdev = &ab->pdevs[i]; pdev = &ab->pdevs[i];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment