summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>2011-11-18 10:05:28 +0530
committerKalle Valo <kvalo@qca.qualcomm.com>2011-11-21 19:47:08 +0200
commitb64de35654cea2f5301d08f9195836f7ea8118c0 (patch)
treecc7f694d4c1d5ebc1da4801f60d2cb4ace08d64e /drivers/net
parentf143379dbf5e0709d6d39b50995ff6d697564834 (diff)
ath6kl: Enable multiple vif support
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>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ath/ath6kl/core.h2
-rw-r--r--drivers/net/wireless/ath/ath6kl/init.c18
2 files changed, 4 insertions, 16 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/core.h b/drivers/net/wireless/ath/ath6kl/core.h
index b1855641f827..75b9d0eea17c 100644
--- a/drivers/net/wireless/ath/ath6kl/core.h
+++ b/drivers/net/wireless/ath/ath6kl/core.h
@@ -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 {
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
index 075f16a80f05..c97f83ca0ff2 100644
--- a/drivers/net/wireless/ath/ath6kl/init.c
+++ b/drivers/net/wireless/ath/ath6kl/init.c
@@ -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;