[PATCH 18/21] ath10k: Note limitation on beaconing vdevs.
greearb at candelatech.com
greearb at candelatech.com
Mon May 9 16:11:12 PDT 2016
From: Ben Greear <greearb at candelatech.com>
This only pertains to CT firmware, as standard firmware
can't do anywhere near this many vdevs anyway.
Signed-off-by: Ben Greear <greearb at candelatech.com>
---
drivers/net/wireless/ath/ath10k/mac.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 373f2ee..f1bfb3a 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -1343,6 +1343,22 @@ static int ath10k_vdev_start_restart(struct ath10k_vif *arvif,
arg.channel.max_reg_power = chandef->chan->max_reg_power * 2;
arg.channel.max_antenna_gain = chandef->chan->max_antenna_gain * 2;
+ /* CT Firmware can support 32+ VDEVS, but can only support
+ * beacon-ing devs with dev ids 0 - 31 due to firmware limitations.
+ * Create VAPs first and all should be well...likely most people
+ * won't ever hit this anyway, but some day the vdev ID allocation
+ * could be made smarter to make it more likely to work no matter the
+ * order the vdevs are created. --Ben
+ */
+ if ((arvif->vdev_type == WMI_VDEV_TYPE_AP) ||
+ (arvif->vdev_type == WMI_VDEV_TYPE_IBSS)) {
+ if (arg.vdev_id > 31) {
+ ath10k_warn(ar, "failed to start vdev %i Beaconing VIFS must have IDs <= 31 to work-around firmware limitations.\n",
+ arg.vdev_id);
+ return -EINVAL;
+ }
+ }
+
if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
arg.ssid = arvif->u.ap.ssid;
arg.ssid_len = arvif->u.ap.ssid_len;
--
2.4.3
More information about the ath10k
mailing list