qcacmn: Extract msdu end TLV information at once during Rx fast path
Rather than extracting msdu end pkt tlv information per field basis during fast data path, extract msdu end pkt tlv information at once and store in local structure. Change-Id: I0877ba4f824d480cc0851c72090f010852d0d203
This commit is contained in:

committed by
nshrivas

parent
fc4ac73e9b
commit
6997a37a1e
@@ -1343,6 +1343,30 @@ static inline void hal_write_window_register(struct hal_soc *hal_soc)
|
||||
WINDOW_CONFIGURATION_VALUE_9000);
|
||||
}
|
||||
|
||||
/**
|
||||
* hal_rx_msdu_packet_metadata_get_9000(): API to get the
|
||||
* msdu information from rx_msdu_end TLV
|
||||
*
|
||||
* @ buf: pointer to the start of RX PKT TLV headers
|
||||
* @ hal_rx_msdu_metadata: pointer to the msdu info structure
|
||||
*/
|
||||
static void
|
||||
hal_rx_msdu_packet_metadata_get_9000(uint8_t *buf,
|
||||
void *msdu_pkt_metadata)
|
||||
{
|
||||
struct rx_pkt_tlvs *pkt_tlvs = (struct rx_pkt_tlvs *)buf;
|
||||
struct rx_msdu_end *msdu_end = &pkt_tlvs->msdu_end_tlv.rx_msdu_end;
|
||||
struct hal_rx_msdu_metadata *msdu_metadata =
|
||||
(struct hal_rx_msdu_metadata *)msdu_pkt_metadata;
|
||||
|
||||
msdu_metadata->l3_hdr_pad =
|
||||
HAL_RX_MSDU_END_L3_HEADER_PADDING_GET(msdu_end);
|
||||
msdu_metadata->sa_idx = HAL_RX_MSDU_END_SA_IDX_GET(msdu_end);
|
||||
msdu_metadata->da_idx = HAL_RX_MSDU_END_DA_IDX_GET(msdu_end);
|
||||
msdu_metadata->sa_sw_peer_id =
|
||||
HAL_RX_MSDU_END_SA_SW_PEER_ID_GET(msdu_end);
|
||||
}
|
||||
|
||||
struct hal_hw_txrx_ops qcn9000_hal_hw_txrx_ops = {
|
||||
|
||||
/* init and setup */
|
||||
@@ -1434,6 +1458,8 @@ struct hal_hw_txrx_ops qcn9000_hal_hw_txrx_ops = {
|
||||
hal_rx_get_rx_sequence_9000,
|
||||
NULL,
|
||||
NULL,
|
||||
/* rx - msdu fast path info fields */
|
||||
hal_rx_msdu_packet_metadata_get_9000,
|
||||
};
|
||||
|
||||
struct hal_hw_srng_config hw_srng_table_9000[] = {
|
||||
|
Reference in New Issue
Block a user