qcacmn: Handle the HTT message for SAWF peer AST update

When a new MSDUQ is instantiated for a peer, additional
dynamic AST indices are allocated.The new AST indices
should be used in subsequent MSDUs.

Handle the HTT message to update the dynamically allocated
AST indices.

Change-Id: Iea24e1f3523006f40c781abdc3c176ba25ecd5a5
CRs-Fixed: 3449259
Этот коммит содержится в:
Vivek
2023-03-29 20:10:30 +05:30
коммит произвёл Madan Koyyalamudi
родитель 53800babd2
Коммит 7c844f2d3f
2 изменённых файлов: 31 добавлений и 5 удалений

Просмотреть файл

@@ -409,7 +409,7 @@ static int dp_htt_h2t_add_tcl_metadata_ver_v2(struct htt_soc *soc,
HTT_OPTION_TLV_TAG_SET(*msg_word, HTT_OPTION_TLV_TAG_TCL_METADATA_VER);
HTT_OPTION_TLV_LENGTH_SET(*msg_word, HTT_TCL_METADATA_VER_SZ);
HTT_OPTION_TLV_TCL_METADATA_VER_SET(*msg_word,
HTT_OPTION_TLV_TCL_METADATA_V2);
HTT_OPTION_TLV_TCL_METADATA_V21);
return QDF_STATUS_SUCCESS;
}
@@ -2720,6 +2720,21 @@ static void dp_sawf_msduq_map(struct htt_soc *soc, uint32_t *msg_word,
dp_htt_sawf_msduq_map(soc, msg_word, htt_t2h_msg);
}
/**
* dp_sawf_dynamic_ast_update() - Dynamic AST index update for SAWF peer
* from target
* @soc: soc handle.
* @msg_word: Pointer to htt msg word.
* @htt_t2h_msg: HTT message nbuf
*
* Return: void
*/
static void dp_sawf_dynamic_ast_update(struct htt_soc *soc, uint32_t *msg_word,
qdf_nbuf_t htt_t2h_msg)
{
dp_htt_sawf_dynamic_ast_update(soc, msg_word, htt_t2h_msg);
}
/**
* dp_sawf_mpdu_stats_handler() - HTT message handler for MPDU stats
* @soc: soc handle.
@@ -2740,6 +2755,9 @@ static void dp_sawf_msduq_map(struct htt_soc *soc, uint32_t *msg_word,
static void dp_sawf_mpdu_stats_handler(struct htt_soc *soc,
qdf_nbuf_t htt_t2h_msg)
{}
static void dp_sawf_dynamic_ast_update(struct htt_soc *soc, uint32_t *msg_word,
qdf_nbuf_t htt_t2h_msg)
{}
#endif
/**
@@ -4076,6 +4094,11 @@ void dp_htt_t2h_msg_handler(void *context, HTC_PACKET *pkt)
dp_sawf_msduq_map(soc, msg_word, htt_t2h_msg);
break;
}
case HTT_T2H_MSG_TYPE_PEER_AST_OVERRIDE_INDEX_IND:
{
dp_sawf_dynamic_ast_update(soc, msg_word, htt_t2h_msg);
break;
}
case HTT_T2H_MSG_TYPE_STREAMING_STATS_IND:
{
dp_sawf_mpdu_stats_handler(soc, htt_t2h_msg);

Просмотреть файл

@@ -387,7 +387,7 @@ void dp_sawf_config_li(struct dp_soc *soc, uint32_t *hal_tx_desc_cached,
qdf_nbuf_t nbuf, struct dp_tx_msdu_info_s *msdu_info)
{
uint8_t q_id = 0;
uint32_t search_index;
uint32_t flow_idx = 0;
if (!wlan_cfg_get_sawf_config(soc->wlan_cfg_ctx))
return;
@@ -406,12 +406,15 @@ void dp_sawf_config_li(struct dp_soc *soc, uint32_t *hal_tx_desc_cached,
dp_sawf_tcl_cmd(fw_metadata, nbuf);
search_index = dp_sawf_get_search_index(soc, nbuf, vdev_id,
q_id);
/* For SAWF, q_id starts from DP_SAWF_Q_MAX */
if (!dp_sawf_get_search_index(soc, nbuf, vdev_id,
q_id, &flow_idx))
hal_tx_desc_set_to_fw(hal_tx_desc_cached, true);
hal_tx_desc_set_search_type_li(soc->hal_soc, hal_tx_desc_cached,
HAL_TX_ADDR_INDEX_SEARCH);
hal_tx_desc_set_search_index_li(soc->hal_soc, hal_tx_desc_cached,
search_index);
flow_idx);
}
#else
static inline