| From f680f70adbeab28b35f849016b964dd645db6237 Mon Sep 17 00:00:00 2001 |
| From: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> |
| Date: Tue, 3 Nov 2015 11:51:33 +0530 |
| Subject: ath10k: fix invalid NSS for 4x4 devices |
| |
| From: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> |
| |
| commit f680f70adbeab28b35f849016b964dd645db6237 upstream. |
| |
| The number of spatial streams that are derived from chain mask |
| for 4x4 devices is using wrong bitmask and conditional check. |
| This is affecting downlink throughput for QCA99x0 devices. Earlier |
| cfg_tx_chainmask is not filled by default until user configured it |
| and so get_nss_from_chainmask never be called. This issue is exposed |
| by recent commit 166de3f1895d ("ath10k: remove supported chain mask"). |
| By default maximum supported chain mask is filled in cfg_tx_chainmask. |
| |
| Fixes: 5572a95b4b ("ath10k: apply chainmask settings to vdev on creation") |
| Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> |
| Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/ath/ath10k/mac.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/net/wireless/ath/ath10k/mac.c |
| +++ b/drivers/net/wireless/ath/ath10k/mac.c |
| @@ -3183,7 +3183,7 @@ static int ath10k_config(struct ieee8021 |
| |
| static u32 get_nss_from_chainmask(u16 chain_mask) |
| { |
| - if ((chain_mask & 0x15) == 0x15) |
| + if ((chain_mask & 0xf) == 0xf) |
| return 4; |
| else if ((chain_mask & 0x7) == 0x7) |
| return 3; |