Re: [PATCH 3/3] ath10k: fix station count enforcement
From: Kalle Valo <hidden>
Date: 2014-11-25 08:02:07
Michal Kazior [off-list ref] writes:
The number of peers isn't directly translatable to the number of stations because ath10k needs to reserve a few extra peers for special cases like multi-vif concurrency. The previous limit was 126 and 15 stations in AP mode for 10.x and main firmware branches respectively. The limit is now 128 and 16 which was the original intention. Signed-off-by: Michal Kazior <redacted>
[...]
quoted hunk ↗ jump to hunk
+static void ath10k_core_init_max_sta_count(struct ath10k *ar) +{ + if (test_bit(ATH10K_FW_FEATURE_WMI_10X, ar->fw_features)) { + ar->max_num_peers = TARGET_10X_NUM_PEERS; + ar->max_num_stations = TARGET_10X_NUM_STATIONS; + } else { + ar->max_num_peers = TARGET_NUM_PEERS; + ar->max_num_stations = TARGET_NUM_STATIONS; + } +} + int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode) { int status;@@ -939,6 +950,8 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode) else ar->free_vdev_map = (1LL << TARGET_NUM_VDEVS) - 1; + ath10k_core_init_max_sta_count(ar);
I don't see the need to call this during every firmware start as these are not changed afterwards. I think it would be better to call this once just after ath10k_core_fetch_firmware_files() is called. -- Kalle Valo