Hi all, Is STBC not supported on any chipsets other than AR_SREV_9280_10_OR_LATER(ah)? /Björn On Sun, Apr 18, 2010 at 4:56 PM, Felix Fietkau <nbd@xxxxxxxxxxx> wrote: > Supported only for single stream rates by the hardware > > Signed-off-by: Felix Fietkau <nbd@xxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath9k/init.c | 6 ++++++ > drivers/net/wireless/ath/ath9k/mac.h | 8 +++++++- > drivers/net/wireless/ath/ath9k/xmit.c | 2 ++ > 3 files changed, 15 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c > index 2c0630e..8c79548 100644 > --- a/drivers/net/wireless/ath/ath9k/init.c > +++ b/drivers/net/wireless/ath/ath9k/init.c > @@ -216,6 +216,12 @@ static void setup_ht_cap(struct ath_softc *sc, > else > max_streams = 2; > > + if (AR_SREV_9280_10_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 = count_streams(common->tx_chainmask, max_streams); > diff --git a/drivers/net/wireless/ath/ath9k/mac.h b/drivers/net/wireless/ath/ath9k/mac.h > index 66d0d5e..00f3e0c 100644 > --- a/drivers/net/wireless/ath/ath9k/mac.h > +++ b/drivers/net/wireless/ath/ath9k/mac.h > @@ -37,6 +37,8 @@ > AR_2040_##_index : 0) \ > |((_series)[_index].RateFlags & ATH9K_RATESERIES_HALFGI ? \ > AR_GI##_index : 0) \ > + |((_series)[_index].RateFlags & ATH9K_RATESERIES_STBC ? \ > + AR_STBC##_index : 0) \ > |SM((_series)[_index].ChSel, AR_ChainSel##_index)) > > #define CCK_SIFS_TIME 10 > @@ -434,7 +436,10 @@ struct ar5416_desc { > #define AR_ChainSel3_S 17 > #define AR_RTSCTSRate 0x0ff00000 > #define AR_RTSCTSRate_S 20 > -#define AR_TxCtlRsvd70 0xf0000000 > +#define AR_STBC0 0x10000000 > +#define AR_STBC1 0x20000000 > +#define AR_STBC2 0x40000000 > +#define AR_STBC3 0x80000000 > > #define AR_TxRSSIAnt00 0x000000ff > #define AR_TxRSSIAnt00_S 0 > @@ -647,6 +652,7 @@ enum ath9k_rx_filter { > #define ATH9K_RATESERIES_RTS_CTS 0x0001 > #define ATH9K_RATESERIES_2040 0x0002 > #define ATH9K_RATESERIES_HALFGI 0x0004 > +#define ATH9K_RATESERIES_STBC 0x0008 > > struct ath9k_11n_rate_series { > u32 Tries; > diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c > index 2237658..b0d345a 100644 > --- a/drivers/net/wireless/ath/ath9k/xmit.c > +++ b/drivers/net/wireless/ath/ath9k/xmit.c > @@ -1607,6 +1607,8 @@ static void ath_buf_set_rate(struct ath_softc *sc, struct ath_buf *bf) > series[i].Rate = rix | 0x80; > series[i].PktDuration = ath_pkt_duration(sc, rix, bf, > is_40, is_sgi, is_sp); > + if (rix < 8 && (tx_info->flags & IEEE80211_TX_CTL_STBC)) > + series[i].RateFlags |= ATH9K_RATESERIES_STBC; > continue; > } > > -- > 1.6.4.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Venatech AB Ideon Innovation Ole Römers väg 12 SE-22370 LUND Sweden +46 (0) 46 286 86 20 info@xxxxxxxxxxx http://www.venatech.se -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html