[PATCH 3.16 078/294] iwlwifi: mvm: set the RTS_MIMO_PROT bit in flag mask when sending sta to fw

From: Ben Hutchings
Date: Mon Nov 06 2017 - 19:45:34 EST


3.16.50-rc1 review patch. If anyone has any objections, please let me know.

------------------

From: Naftali Goldstein <naftali.goldstein@xxxxxxxxx>

commit 8addabf8e6e299f790038fdc92ddceaaf76adab8 upstream.

Set the STA_FLG_RTS_MIMO_PROT bit in station_flags_msk of the add sta
command, so that when smps mode changes, the FW will know about it.

In particular, in AP mode, clients are added upon receival of an auth
request, at which point there's no knowledge of the client's smps mode.
When the assoc request arrives, the add_sta command is resent to modify
the station parameters. At this point the driver knows the smps mode,
but since the corresponding bit in the mask is not set, the fw doesn't
update this field so there's no rts protection for mimo.

Fixes: 5bc5aaad407c ("iwlwifi: mvm: set up initial SMPS/NSS station info")
Signed-off-by: Naftali Goldstein <naftali.goldstein@xxxxxxxxx>
Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx>
[bwh: Backported to 3.16: adjust filename, context, indentation]
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
---
drivers/net/wireless/iwlwifi/mvm/sta.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/net/wireless/iwlwifi/mvm/sta.c
+++ b/drivers/net/wireless/iwlwifi/mvm/sta.c
@@ -114,7 +114,8 @@ int iwl_mvm_sta_send_to_fw(struct iwl_mv
add_sta_cmd.add_modify = update ? 1 : 0;

add_sta_cmd.station_flags_msk |= cpu_to_le32(STA_FLG_FAT_EN_MSK |
- STA_FLG_MIMO_EN_MSK);
+ STA_FLG_MIMO_EN_MSK |
+ STA_FLG_RTS_MIMO_PROT);

switch (sta->bandwidth) {
case IEEE80211_STA_RX_BW_160: