Current STBC handler was waiting for peer caps to make decision.
Better way will be to make right decision on the host
and tell firmware what it can use.
This patch changes behaviour of firmware. Up now
host should send ATH_RC_TX_STBC_FLAG to enable STBC.
Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
((capflag & ATH_RC_DS_FLAG) ? WLAN_RC_DS_FLAG : 0) |
((capflag & ATH_RC_HT40_SGI_FLAG) ? WLAN_RC_HT40_SGI_FLAG : 0) |
((capflag & ATH_RC_HT_FLAG) ? WLAN_RC_HT_FLAG : 0) |
((capflag & ATH_RC_DS_FLAG) ? WLAN_RC_DS_FLAG : 0) |
((capflag & ATH_RC_HT40_SGI_FLAG) ? WLAN_RC_HT40_SGI_FLAG : 0) |
((capflag & ATH_RC_HT_FLAG) ? WLAN_RC_HT_FLAG : 0) |
- ((capflag & ATH_RC_CW40_FLAG) ? WLAN_RC_40_FLAG : 0) |
- ((capflag & ATH_RC_TX_STBC_FLAG) ? WLAN_RC_STBC_FLAG : 0),
+ ((capflag & ATH_RC_CW40_FLAG) ? WLAN_RC_40_FLAG : 0),
((capflag & ATH_RC_WEP_TKIP_FLAG) ? WLAN_RC_WEP_TKIP_FLAG : 0);
#ifdef MAGPIE_MERLIN
((capflag & ATH_RC_WEP_TKIP_FLAG) ? WLAN_RC_WEP_TKIP_FLAG : 0);
#ifdef MAGPIE_MERLIN
- /* Rx STBC is a 2-bit mask. Needs to convert from ath definition to wlan definition. */
-
- oan->htcap |= (((capflag & ATH_RC_RX_STBC_FLAG) >> ATH_RC_RX_STBC_FLAG_S)
- << WLAN_RC_STBC_FLAG_S);
-
- /* If only one chain is enabled, do not do stbc. */
- if (sc->sc_txstbcsupport) {
- oan->stbc = (capflag & ATH_RC_RX_STBC_FLAG) >> ATH_RC_RX_STBC_FLAG_S;
- } else {
- oan->stbc = 0;
- }
-
+ /* Only MERLIN can send STBC */
+ oan->stbc = (capflag & ATH_RC_TX_STBC_FLAG) ? 1 : 0;
#endif
rcSibUpdate_11n(sc, an, oan->htcap, 0, rs);
}
#endif
rcSibUpdate_11n(sc, an, oan->htcap, 0, rs);
}