Re: [ath9k-devel] [PATCH] [RFC] ath9k: Fix reporting of RX STBC streamsto userspace

From: Felix Fietkau
Date: Tue Jan 11 2011 - 20:31:12 EST


On 2011-01-11 9:59 AM, Bernhard Walle wrote:
While the driver reports

ath: TX streams 2, RX streams: 2

in the kernel log (with ATH_DBG_CONFIG set in the debug module
parameter), "iw list" only reported

[...]
Capabilities: 0x12ce
HT20/HT40
SM Power Save disabled
RX HT40 SGI
TX STBC
RX STBC 1-streams
[...]

The driver seems to set the value as flag while the iw tool interprets
it as number. This patch fixes that.

Signed-off-by: Bernhard Walle<walle@xxxxxxxxxxxxx>
---
drivers/net/wireless/ath/ath9k/init.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index 639dc93..935b6c3 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -215,17 +215,17 @@ static void setup_ht_cap(struct ath_softc *sc,
else
max_streams = 2;

- if (AR_SREV_9280_20_OR_LATER(ah)) {
- if (max_streams>= 2)
- ht_info->cap |= IEEE80211_HT_CAP_TX_STBC;
- ht_info->cap |= (1<< IEEE80211_HT_CAP_RX_STBC_SHIFT);
- }
-
/* set up supported mcs set */
memset(&ht_info->mcs, 0, sizeof(ht_info->mcs));
tx_streams = ath9k_cmn_count_streams(common->tx_chainmask, max_streams);
rx_streams = ath9k_cmn_count_streams(common->rx_chainmask, max_streams);

+ if (AR_SREV_9280_20_OR_LATER(ah)) {
+ if (max_streams>= 2)
+ ht_info->cap |= IEEE80211_HT_CAP_TX_STBC;
+ ht_info->cap |= (rx_streams<< IEEE80211_HT_CAP_RX_STBC_SHIFT);
+ }
+
Are you sure the card can actually receive multiple streams via STBC? As far as I know, only one stream can be received properly via STBC, more streams have to be sent without it.

- Felix
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/