ath10k: reduce transmit msdu count
Reduce the transmit MSDU count for SDIO, to match with the descriptors as used by the firmware. This also acts as a high watermark level for transmit. Too many packets to the firmware results in transmit overflow interrupt. It only affect SDIO chip, it will not cause functionaly changes to other hardware. Tested with QCA6174 SDIO with firmware WLAN.RMH.4.4.1-00005-QCARMSWP-1. Signed-off-by: Alagu Sankar <alagusankar@silex-india.com> Signed-off-by: Wen Gong <wgong@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
0b38b4b445
commit
a73dbce3a6
|
@ -2309,7 +2309,11 @@ static int ath10k_core_init_firmware_features(struct ath10k *ar)
|
|||
ar->max_num_stations = TARGET_TLV_NUM_STATIONS;
|
||||
ar->max_num_vdevs = TARGET_TLV_NUM_VDEVS;
|
||||
ar->max_num_tdls_vdevs = TARGET_TLV_NUM_TDLS_VDEVS;
|
||||
ar->htt.max_num_pending_tx = TARGET_TLV_NUM_MSDU_DESC;
|
||||
if (ar->hif.bus == ATH10K_BUS_SDIO)
|
||||
ar->htt.max_num_pending_tx =
|
||||
TARGET_TLV_NUM_MSDU_DESC_HL;
|
||||
else
|
||||
ar->htt.max_num_pending_tx = TARGET_TLV_NUM_MSDU_DESC;
|
||||
ar->wow.max_num_patterns = TARGET_TLV_NUM_WOW_PATTERNS;
|
||||
ar->fw_stats_req_mask = WMI_STAT_PDEV | WMI_STAT_VDEV |
|
||||
WMI_STAT_PEER;
|
||||
|
|
|
@ -736,6 +736,7 @@ ath10k_rx_desc_msdu_limit_error(struct ath10k_hw_params *hw,
|
|||
#define TARGET_TLV_NUM_TDLS_VDEVS 1
|
||||
#define TARGET_TLV_NUM_TIDS ((TARGET_TLV_NUM_PEERS) * 2)
|
||||
#define TARGET_TLV_NUM_MSDU_DESC (1024 + 32)
|
||||
#define TARGET_TLV_NUM_MSDU_DESC_HL 64
|
||||
#define TARGET_TLV_NUM_WOW_PATTERNS 22
|
||||
#define TARGET_TLV_MGMT_NUM_MSDU_DESC (50)
|
||||
|
||||
|
|
|
@ -1673,7 +1673,7 @@ static struct sk_buff *ath10k_wmi_tlv_op_gen_init(struct ath10k *ar)
|
|||
cfg->rx_skip_defrag_timeout_dup_detection_check = __cpu_to_le32(0);
|
||||
cfg->vow_config = __cpu_to_le32(0);
|
||||
cfg->gtk_offload_max_vdev = __cpu_to_le32(2);
|
||||
cfg->num_msdu_desc = __cpu_to_le32(TARGET_TLV_NUM_MSDU_DESC);
|
||||
cfg->num_msdu_desc = __cpu_to_le32(ar->htt.max_num_pending_tx);
|
||||
cfg->max_frag_entries = __cpu_to_le32(2);
|
||||
cfg->num_tdls_vdevs = __cpu_to_le32(TARGET_TLV_NUM_TDLS_VDEVS);
|
||||
cfg->num_tdls_conn_table_entries = __cpu_to_le32(0x20);
|
||||
|
|
Loading…
Reference in New Issue