diff mbox

[1/2] ath10k: split the if_limits and if_comb

Message ID 1386688840-12181-1-git-send-email-bartosz.markowski@tieto.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Bartosz Markowski Dec. 10, 2013, 3:20 p.m. UTC
Split the interface limits and inteface combination,
to reflect the 10.X capabilites (no P2P, no STA and 8 VAP).

Signed-off-by: Bartosz Markowski <bartosz.markowski@tieto.com>
---
 drivers/net/wireless/ath/ath10k/mac.c |   26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

Comments

Ben Greear Dec. 10, 2013, 3:35 p.m. UTC | #1
On 12/10/2013 07:20 AM, Bartosz Markowski wrote:
> Split the interface limits and inteface combination,
> to reflect the 10.X capabilites (no P2P, no STA and 8 VAP).

My 10.X firmware works just fine with stations..I just tested up
to 32 of them.

Maybe add firmware IEs to explicitly advertise how many it can
support instead of setting one flag and making assumptions?

Thanks,
Ben
Kalle Valo Dec. 16, 2013, 1:55 p.m. UTC | #2
Ben Greear <greearb@candelatech.com> writes:

> On 12/10/2013 07:20 AM, Bartosz Markowski wrote:
>> Split the interface limits and inteface combination,
>> to reflect the 10.X capabilites (no P2P, no STA and 8 VAP).
>
> My 10.X firmware works just fine with stations..I just tested up
> to 32 of them.
>
> Maybe add firmware IEs to explicitly advertise how many it can
> support instead of setting one flag and making assumptions?

That can be done in a separate patch.
Kalle Valo Dec. 16, 2013, 2:13 p.m. UTC | #3
Bartosz Markowski <bartosz.markowski@tieto.com> writes:

> Split the interface limits and inteface combination,
> to reflect the 10.X capabilites (no P2P, no STA and 8 VAP).
>
> Signed-off-by: Bartosz Markowski <bartosz.markowski@tieto.com>

Both patches applied. I did minor changes in patch 1, please double
check:

> @@ -3717,8 +3718,15 @@ int ath10k_mac_register(struct ath10k *ar)
>  	 */
>  	ar->hw->queues = 4;
>  
> -	ar->hw->wiphy->iface_combinations = ath10k_if_comb;
> -	ar->hw->wiphy->n_iface_combinations = ARRAY_SIZE(ath10k_if_comb);
> +	if (!test_bit(ATH10K_FW_FEATURE_WMI_10X, ar->fw_features)) {
> +
> +		ar->hw->wiphy->iface_combinations = ath10k_if_comb;
> +		ar->hw->wiphy->n_iface_combinations = ARRAY_SIZE(ath10k_if_comb);
> +
> +	} else {
> +		ar->hw->wiphy->iface_combinations = ath10k_10x_if_comb;
> +		ar->hw->wiphy->n_iface_combinations = ARRAY_SIZE(ath10k_10x_if_comb);
> +	}

I fixed checkpatch warnings here and reversed the test to get rid
unnecessary negation operator.
diff mbox

Patch

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index ce9ef349..35952a4 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -3464,14 +3464,12 @@  static const struct ieee80211_iface_limit ath10k_if_limits[] = {
 	},
 };
 
-#ifdef CONFIG_ATH10K_DFS_CERTIFIED
-static const struct ieee80211_iface_limit ath10k_if_dfs_limits[] = {
+static const struct ieee80211_iface_limit ath10k_10x_if_limits[] = {
 	{
 	.max	= 8,
 	.types	= BIT(NL80211_IFTYPE_AP)
 	},
 };
-#endif
 
 static const struct ieee80211_iface_combination ath10k_if_comb[] = {
 	{
@@ -3481,19 +3479,22 @@  static const struct ieee80211_iface_combination ath10k_if_comb[] = {
 		.num_different_channels = 1,
 		.beacon_int_infra_match = true,
 	},
-#ifdef CONFIG_ATH10K_DFS_CERTIFIED
+};
+
+static const struct ieee80211_iface_combination ath10k_10x_if_comb[] = {
 	{
-		.limits = ath10k_if_dfs_limits,
-		.n_limits = ARRAY_SIZE(ath10k_if_dfs_limits),
+		.limits = ath10k_10x_if_limits,
+		.n_limits = ARRAY_SIZE(ath10k_10x_if_limits),
 		.max_interfaces = 8,
 		.num_different_channels = 1,
 		.beacon_int_infra_match = true,
+#ifdef CONFIG_ATH10K_DFS_CERTIFIED
 		.radar_detect_widths =	BIT(NL80211_CHAN_WIDTH_20_NOHT) |
 					BIT(NL80211_CHAN_WIDTH_20) |
 					BIT(NL80211_CHAN_WIDTH_40) |
 					BIT(NL80211_CHAN_WIDTH_80),
-	}
 #endif
+	},
 };
 
 static struct ieee80211_sta_vht_cap ath10k_create_vht_cap(struct ath10k *ar)
@@ -3717,8 +3718,15 @@  int ath10k_mac_register(struct ath10k *ar)
 	 */
 	ar->hw->queues = 4;
 
-	ar->hw->wiphy->iface_combinations = ath10k_if_comb;
-	ar->hw->wiphy->n_iface_combinations = ARRAY_SIZE(ath10k_if_comb);
+	if (!test_bit(ATH10K_FW_FEATURE_WMI_10X, ar->fw_features)) {
+
+		ar->hw->wiphy->iface_combinations = ath10k_if_comb;
+		ar->hw->wiphy->n_iface_combinations = ARRAY_SIZE(ath10k_if_comb);
+
+	} else {
+		ar->hw->wiphy->iface_combinations = ath10k_10x_if_comb;
+		ar->hw->wiphy->n_iface_combinations = ARRAY_SIZE(ath10k_10x_if_comb);
+	}
 
 	ar->hw->netdev_features = NETIF_F_HW_CSUM;