qcacmn: Add hal_rx_tid_get API

Implement hal_rx_tid_get API based on
the chipset as the macro to retrieve
tid value is chipset dependent.

Change-Id: I37eab3f3c1c2bbba6094b9ddb24d72712b819f73
CRs-Fixed: 2522133
Šī revīzija ir iekļauta:
Venkata Sharath Chandra Manchala
2019-09-21 16:17:01 -07:00
revīziju iesūtīja nshrivas
vecāks 5ddc518b2e
revīzija 8513048ac9
8 mainīti faili ar 162 papildinājumiem un 15 dzēšanām

Parādīt failu

@@ -471,6 +471,31 @@ static bool hal_rx_is_unicast_6490(uint8_t *buf)
return (HAL_MPDU_SW_FRAME_GROUP_UNICAST_DATA == grp_id) ? true : false;
}
/**
* hal_rx_tid_get_6490: get tid based on qos control valid.
* @hal_soc_hdl: hal_soc handle
* @ buf: pointer to rx pkt TLV.
*
* Return: tid
*/
static uint32_t hal_rx_tid_get_6490(hal_soc_handle_t hal_soc_hdl, uint8_t *buf)
{
struct rx_pkt_tlvs *pkt_tlvs = (struct rx_pkt_tlvs *)buf;
struct rx_mpdu_start *mpdu_start =
&pkt_tlvs->mpdu_start_tlv.rx_mpdu_start;
uint8_t *rx_mpdu_info = (uint8_t *)&mpdu_start->rx_mpdu_info_details;
uint8_t qos_control_valid =
(_HAL_MS((*_OFFSET_TO_WORD_PTR((rx_mpdu_info),
RX_MPDU_INFO_11_MPDU_QOS_CONTROL_VALID_OFFSET)),
RX_MPDU_INFO_11_MPDU_QOS_CONTROL_VALID_MASK,
RX_MPDU_INFO_11_MPDU_QOS_CONTROL_VALID_LSB));
if (qos_control_valid)
return hal_rx_mpdu_start_tid_get_6490(buf);
return HAL_RX_NON_QOS_TID;
}
struct hal_hw_txrx_ops qca6490_hal_hw_txrx_ops = {
/* rx */
hal_rx_get_rx_fragment_number_6490,
@@ -494,4 +519,5 @@ struct hal_hw_txrx_ops qca6490_hal_hw_txrx_ops = {
hal_rx_mpdu_get_addr4_6490,
hal_rx_get_mpdu_sequence_control_valid_6490,
hal_rx_is_unicast_6490,
hal_rx_tid_get_6490,
};