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

Felix Fietkau
2011-01-12T01:31:04Z

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@corscience.de>
> ---
> 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