qcacmn: Add hal_rx_is_unicast API

Implement hal_rx_is_unicase API based
on the chipset as the macro to retrieve
is_unicast bit value is chipset dependent.

Change-Id: I38807f478c295309adf2a07ce9010b1bc04c734e
CRs-Fixed: 2522133
这个提交包含在:
Venkata Sharath Chandra Manchala
2019-09-21 15:53:03 -07:00
提交者 nshrivas
父节点 68d6f0d585
当前提交 5ddc518b2e
修改 9 个文件,包含 151 行新增15 行删除

查看文件

@@ -546,6 +546,29 @@ static uint8_t hal_rx_get_mpdu_sequence_control_valid_9000(uint8_t *buf)
return HAL_RX_MPDU_GET_SEQUENCE_CONTROL_VALID(rx_mpdu_info);
}
/**
* hal_rx_is_unicast_9000: check packet is unicast frame or not.
*
* @ buf: pointer to rx pkt TLV.
*
* Return: true on unicast.
*/
static bool hal_rx_is_unicast_9000(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;
uint32_t grp_id;
uint8_t *rx_mpdu_info = (uint8_t *)&mpdu_start->rx_mpdu_info_details;
grp_id = (_HAL_MS((*_OFFSET_TO_WORD_PTR((rx_mpdu_info),
RX_MPDU_INFO_0_SW_FRAME_GROUP_ID_OFFSET)),
RX_MPDU_INFO_0_SW_FRAME_GROUP_ID_MASK,
RX_MPDU_INFO_0_SW_FRAME_GROUP_ID_LSB));
return (HAL_MPDU_SW_FRAME_GROUP_UNICAST_DATA == grp_id) ? true : false;
}
struct hal_hw_txrx_ops qcn9000_hal_hw_txrx_ops = {
/* init and setup */
@@ -609,6 +632,7 @@ struct hal_hw_txrx_ops qcn9000_hal_hw_txrx_ops = {
hal_rx_mpdu_get_addr3_9000,
hal_rx_mpdu_get_addr4_9000,
hal_rx_get_mpdu_sequence_control_valid_9000,
hal_rx_is_unicast_9000,
};
struct hal_hw_srng_config hw_srng_table_9000[] = {