ath6kl: Find ar->max_norm_iface in firmware IE parsing
authorVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Fri, 18 Nov 2011 04:35:27 +0000 (10:05 +0530)
committerKalle Valo <kvalo@qca.qualcomm.com>
Mon, 21 Nov 2011 17:47:08 +0000 (19:47 +0200)
Currently the max number of vifs which can be used for non-p2p
mode is determined in ath6kl_core_alloc(). But the maximum
supported vifs are parsed from firmware IE in ath6kl_fetch_fw_api2()
which would happen after ath6kl_core_alloc().

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/cfg80211.c
drivers/net/wireless/ath/ath6kl/init.c

index e37d78bd26f183a7c12978afc936caa846560724..3795686f6e2a2e57c86870f3fcea351585195296 100644 (file)
@@ -2456,12 +2456,6 @@ struct ath6kl *ath6kl_core_alloc(struct device *dev)
 
        ar->vif_max = 1;
 
-       if (!ar->p2p)
-               ar->max_norm_iface = 2;
-       else
-               ar->max_norm_iface = 1;
-
-       /* FIXME: Remove this once the multivif support is enabled */
        ar->max_norm_iface = 1;
 
        spin_lock_init(&ar->lock);
index 78f9349bd3e3799c1626c6e4f0de3f53e9dbafc6..075f16a80f05bf8bbc2de7fa6844e9c0a5c01ce8 100644 (file)
@@ -971,6 +971,9 @@ static int ath6kl_fetch_fw_api2(struct ath6kl *ar)
                        ar->vif_max = min_t(unsigned int, le32_to_cpup(val),
                                            ATH6KL_VIF_MAX);
 
+                       if (ar->vif_max > 1 && !ar->p2p)
+                               ar->max_norm_iface = 2;
+
                        ath6kl_dbg(ATH6KL_DBG_BOOT,
                                   "found vif max ie %d\n", ar->vif_max);
                        break;