OSDN Git Service

ath10k: use hw_params.num_peers for num_tids in TLV init
authorErik Stromdahl <erik.stromdahl@gmail.com>
Tue, 4 Sep 2018 12:04:26 +0000 (15:04 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 6 Sep 2018 16:14:17 +0000 (19:14 +0300)
As TARGET_TLV_NUM_TIDS is calculated like this:

#define TARGET_TLV_NUM_TIDS ((TARGET_TLV_NUM_PEERS) * 2)

... it is better to use the per device hw_params.num_peers value in
the TLV init message (if set), rather than using a hard coded value.

This makes the value used in the TLV init message match the hw_param
value.

Signed-off-by: Erik Stromdahl <erik.stromdahl@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath10k/wmi-tlv.c

index cdc1e64..98eaf49 100644 (file)
@@ -1582,7 +1582,10 @@ static struct sk_buff *ath10k_wmi_tlv_op_gen_init(struct ath10k *ar)
        }
 
        cfg->num_peer_keys = __cpu_to_le32(2);
-       cfg->num_tids = __cpu_to_le32(TARGET_TLV_NUM_TIDS);
+       if (ar->hw_params.num_peers)
+               cfg->num_tids = __cpu_to_le32(ar->hw_params.num_peers * 2);
+       else
+               cfg->num_tids = __cpu_to_le32(TARGET_TLV_NUM_TIDS);
        cfg->tx_chain_mask = __cpu_to_le32(0x7);
        cfg->rx_chain_mask = __cpu_to_le32(0x7);
        cfg->rx_timeout_pri[0] = __cpu_to_le32(0x64);