diff options
Diffstat (limited to 'drivers/net/wireless/ath/carl9170/fw.c')
| -rw-r--r-- | drivers/net/wireless/ath/carl9170/fw.c | 19 | 
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/carl9170/fw.c b/drivers/net/wireless/ath/carl9170/fw.c index 9517ede9e2d..221957c5d37 100644 --- a/drivers/net/wireless/ath/carl9170/fw.c +++ b/drivers/net/wireless/ath/carl9170/fw.c @@ -151,6 +151,7 @@ static int carl9170_fw(struct ar9170 *ar, const __u8 *data, size_t len)  	const struct carl9170fw_chk_desc *chk_desc;  	const struct carl9170fw_last_desc *last_desc;  	const struct carl9170fw_txsq_desc *txsq_desc; +	u16 if_comb_types;  	last_desc = carl9170_fw_find_desc(ar, LAST_MAGIC,  		sizeof(*last_desc), CARL9170FW_LAST_DESC_CUR_VER); @@ -268,6 +269,9 @@ static int carl9170_fw(struct ar9170 *ar, const __u8 *data, size_t len)  	if (SUPP(CARL9170FW_WOL))  		device_set_wakeup_enable(&ar->udev->dev, true); +	if_comb_types = BIT(NL80211_IFTYPE_STATION) | +			BIT(NL80211_IFTYPE_P2P_CLIENT); +  	ar->fw.vif_num = otus_desc->vif_num;  	ar->fw.cmd_bufs = otus_desc->cmd_bufs;  	ar->fw.address = le32_to_cpu(otus_desc->fw_address); @@ -294,12 +298,25 @@ static int carl9170_fw(struct ar9170 *ar, const __u8 *data, size_t len)  		ar->hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC);  		if (SUPP(CARL9170FW_WLANTX_CAB)) { -			ar->hw->wiphy->interface_modes |= +			if_comb_types |=  				BIT(NL80211_IFTYPE_AP) |  				BIT(NL80211_IFTYPE_P2P_GO);  		}  	} +	ar->if_comb_limits[0].max = ar->fw.vif_num; +	ar->if_comb_limits[0].types = if_comb_types; + +	ar->if_combs[0].num_different_channels = 1; +	ar->if_combs[0].max_interfaces = ar->fw.vif_num; +	ar->if_combs[0].limits = ar->if_comb_limits; +	ar->if_combs[0].n_limits = ARRAY_SIZE(ar->if_comb_limits); + +	ar->hw->wiphy->iface_combinations = ar->if_combs; +	ar->hw->wiphy->n_iface_combinations = ARRAY_SIZE(ar->if_combs); + +	ar->hw->wiphy->interface_modes |= if_comb_types; +  	txsq_desc = carl9170_fw_find_desc(ar, TXSQ_MAGIC,  		sizeof(*txsq_desc), CARL9170FW_TXSQ_DESC_CUR_VER);  |