Thread (10 messages) 10 messages, 2 authors, 2014-11-26

Re: [PATCH 3/3] ath10k: fix station count enforcement

From: Michal Kazior <hidden>
Date: 2014-11-25 08:38:42

On 25 November 2014 at 09:01, Kalle Valo [off-list ref] wrote:
Michal Kazior [off-list ref] writes:
quoted
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
+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.
Hmm.. It makes sense but now that I think about it the max number of
peers should actually depend on WMI_SERVICE_IRAM_TIDS which is known
after booting firmware. However since only 10.x was released with the
service enabled we used fw_features. So.. yeah. I can move the
function call if you want though.


Michał
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help