ath6kl: Enable multiple vif support
authorVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Fri, 18 Nov 2011 04:35:28 +0000 (10:05 +0530)
committerKalle Valo <kvalo@qca.qualcomm.com>
Mon, 21 Nov 2011 17:47:08 +0000 (19:47 +0200)
The maximum number of supported virtual interfaces are 3.

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

index b1855641f82747190d7a61dc256637b0aa7f9427..75b9d0eea17c8bff5fc902caac8203d975d3b830 100644 (file)
@@ -404,7 +404,7 @@ enum ath6kl_hif_type {
  * Driver's maximum limit, note that some firmwares support only one vif
  * and the runtime (current) limit must be checked from ar->vif_max.
  */
-#define ATH6KL_VIF_MAX 1
+#define ATH6KL_VIF_MAX 3
 
 /* vif flags info */
 enum ath6kl_vif_state {
index 075f16a80f05bf8bbc2de7fa6844e9c0a5c01ce8..c97f83ca0ff271870852747cce36170fd4ccaff3 100644 (file)
@@ -414,11 +414,7 @@ static int ath6kl_target_config_wlan_params(struct ath6kl *ar, int idx)
                        status = -EIO;
                }
 
-       /*
-        * FIXME: Make sure p2p configurations are not applied to
-        * non-p2p capable interfaces when multivif support is enabled.
-        */
-       if (ar->p2p) {
+       if (ar->p2p && (ar->vif_max == 1 || idx)) {
                ret = ath6kl_wmi_info_req_cmd(ar->wmi, idx,
                                              P2P_FLAG_CAPABILITIES_REQ |
                                              P2P_FLAG_MACADDR_REQ |
@@ -431,11 +427,7 @@ static int ath6kl_target_config_wlan_params(struct ath6kl *ar, int idx)
                }
        }
 
-       /*
-        * FIXME: Make sure p2p configurations are not applied to
-        * non-p2p capable interfaces when multivif support is enabled.
-        */
-       if (ar->p2p) {
+       if (ar->p2p && (ar->vif_max == 1 || idx)) {
                /* Enable Probe Request reporting for P2P */
                ret = ath6kl_wmi_probe_report_req_cmd(ar->wmi, idx, true);
                if (ret) {
@@ -481,11 +473,7 @@ int ath6kl_configure_target(struct ath6kl *ar)
                fw_submode |= HI_OPTION_FW_SUBMODE_P2PDEV <<
                              (i * HI_OPTION_FW_SUBMODE_BITS);
 
-       /*
-        * FIXME: This needs to be removed once the multivif
-        * support is enabled.
-        */
-       if (ar->p2p)
+       if (ar->p2p && ar->vif_max == 1)
                fw_submode = HI_OPTION_FW_SUBMODE_P2PDEV;
 
        param = HTC_PROTOCOL_VERSION;