aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
index 474df2ce6e3b..00bd1e16c3ce 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
@@ -5306,6 +5306,8 @@ static s32 brcmf_update_wiphybands(struct brcmf_cfg80211_info *cfg)
5306 u32 band_list[3]; 5306 u32 band_list[3];
5307 u32 nmode; 5307 u32 nmode;
5308 u32 bw_cap[2] = { 0, 0 }; 5308 u32 bw_cap[2] = { 0, 0 };
5309 u32 rxchain;
5310 u32 nchain;
5309 s8 phy; 5311 s8 phy;
5310 s32 err; 5312 s32 err;
5311 u32 nband; 5313 u32 nband;
@@ -5342,6 +5344,16 @@ static s32 brcmf_update_wiphybands(struct brcmf_cfg80211_info *cfg)
5342 brcmf_dbg(INFO, "nmode=%d, bw_cap=(%d, %d)\n", nmode, 5344 brcmf_dbg(INFO, "nmode=%d, bw_cap=(%d, %d)\n", nmode,
5343 bw_cap[IEEE80211_BAND_2GHZ], bw_cap[IEEE80211_BAND_5GHZ]); 5345 bw_cap[IEEE80211_BAND_2GHZ], bw_cap[IEEE80211_BAND_5GHZ]);
5344 5346
5347 err = brcmf_fil_iovar_int_get(ifp, "rxchain", &rxchain);
5348 if (err) {
5349 brcmf_err("rxchain error (%d)\n", err);
5350 nchain = 1;
5351 } else {
5352 for (nchain = 0; rxchain; nchain++)
5353 rxchain = rxchain & (rxchain - 1);
5354 }
5355 brcmf_dbg(INFO, "nchain=%d\n", nchain);
5356
5345 err = brcmf_construct_reginfo(cfg, bw_cap); 5357 err = brcmf_construct_reginfo(cfg, bw_cap);
5346 if (err) { 5358 if (err) {
5347 brcmf_err("brcmf_construct_reginfo failed (%d)\n", err); 5359 brcmf_err("brcmf_construct_reginfo failed (%d)\n", err);
@@ -5370,10 +5382,7 @@ static s32 brcmf_update_wiphybands(struct brcmf_cfg80211_info *cfg)
5370 band->ht_cap.ht_supported = true; 5382 band->ht_cap.ht_supported = true;
5371 band->ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K; 5383 band->ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K;
5372 band->ht_cap.ampdu_density = IEEE80211_HT_MPDU_DENSITY_16; 5384 band->ht_cap.ampdu_density = IEEE80211_HT_MPDU_DENSITY_16;
5373 /* An HT shall support all EQM rates for one spatial 5385 memset(band->ht_cap.mcs.rx_mask, 0xff, nchain);
5374 * stream
5375 */
5376 band->ht_cap.mcs.rx_mask[0] = 0xff;
5377 band->ht_cap.mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED; 5386 band->ht_cap.mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED;
5378 bands[band->band] = band; 5387 bands[band->band] = band;
5379 } 5388 }