qcacmn: Add support for tx monitor full buffer and minor fix

Add support and handle tx monitor full buffer payload and
other minior fix include change of name for uniformity.

Change-Id: If401ecd5e1c6263584fa7013df672459c883ca8b
CRs-Fixed: 3215244
This commit is contained in:
nobelj
2022-06-07 12:50:30 -07:00
committed by Madan Koyyalamudi
parent af37507eba
commit 09bc440ca9
10 changed files with 631 additions and 514 deletions

View File

@@ -866,6 +866,7 @@ struct hal_tx_status_info {
* @cur_usr_idx: Current user index of the PPDU
* @reserved: for furture purpose
* @prot_tlv_status: protection tlv status
* @packet_info: packet information
* @rx_status: monitor mode rx status information
* @rx_user_status: monitor mode rx user status information
*/
@@ -879,6 +880,8 @@ struct hal_tx_ppdu_info {
uint32_t prot_tlv_status;
/* placeholder to hold packet buffer info */
struct hal_mon_packet_info packet_info;
struct mon_rx_status rx_status;
struct mon_rx_user_status rx_user_status[];
};
@@ -950,25 +953,6 @@ hal_txmon_status_get_num_users(hal_soc_handle_t hal_soc_hdl,
num_users);
}
/**
* hal_txmon_status_free_buffer() - api to free status buffer
* @hal_soc: HAL soc handle
* @status_frag: qdf_frag_t buffer
* @end_offset: end offset within buffer that has valid data
*
* Return status
*/
static inline QDF_STATUS
hal_txmon_status_free_buffer(hal_soc_handle_t hal_soc_hdl,
qdf_frag_t status_frag,
uint32_t end_offset)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
return hal_soc->ops->hal_txmon_status_free_buffer(status_frag,
end_offset);
}
/**
* hal_tx_status_get_tlv_tag() - api to get tlv tag
* @tx_tlv_hdr: pointer to TLV header
@@ -986,6 +970,45 @@ hal_tx_status_get_tlv_tag(void *tx_tlv_hdr)
}
#endif
/**
* hal_txmon_is_mon_buf_addr_tlv() - api to find packet buffer addr tlv
* @hal_soc: HAL soc handle
* @tx_tlv_hdr: pointer to TLV header
*
* Return: bool
*/
static inline bool
hal_txmon_is_mon_buf_addr_tlv(hal_soc_handle_t hal_soc_hdl, void *tx_tlv_hdr)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (qdf_unlikely(!hal_soc->ops->hal_txmon_is_mon_buf_addr_tlv))
return false;
return hal_soc->ops->hal_txmon_is_mon_buf_addr_tlv(tx_tlv_hdr);
}
/**
* hal_txmon_populate_packet_info() - api to populate packet info
* @hal_soc: HAL soc handle
* @tx_tlv_hdr: pointer to TLV header
* @packet_info: pointer to placeholder for packet info
*
* Return void
*/
static inline void
hal_txmon_populate_packet_info(hal_soc_handle_t hal_soc_hdl,
void *tx_tlv_hdr,
void *packet_info)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (qdf_unlikely(!hal_soc->ops->hal_txmon_populate_packet_info))
return;
hal_soc->ops->hal_txmon_populate_packet_info(tx_tlv_hdr, packet_info);
}
static inline uint32_t
hal_rx_parse_u_sig_cmn(struct hal_soc *hal_soc, void *rx_tlv,
struct hal_rx_ppdu_info *ppdu_info)