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
Этот коммит содержится в:

коммит произвёл
Madan Koyyalamudi

родитель
53800babd2
Коммит
7c844f2d3f
@@ -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
|
||||
|
Ссылка в новой задаче
Block a user