qcacmn: Fix tlv processing for Big endian mode

Fix tlv processing code for monitor mode in Big endian mode.
Changed all the 64bit tlv extraction apis and used 32 bit extraction apis.
This is needed in big endian mode since HW supports word swap option and
TLV has to be intepretted using 32bit extraction APIs.

TLV tag, userid and TLV len falls on the first 32 bit and hence using
both 32bit or 64 bit extraction APIs give same result.

Change-Id: I9b9ff78c79f21888964d405016c58c3b5988b254
CRs-Fixed: 3551002
这个提交包含在:
Nandha Kishore Easwaran
2023-05-18 15:13:16 +05:30
提交者 Rahul Choudhary
父节点 2ec28965cf
当前提交 72a6ff4b6e
修改 5 个文件,包含 26 行新增53 行删除

查看文件

@@ -328,14 +328,14 @@ void hal_rx_proc_phyrx_other_receive_info_tlv_9224(void *rx_tlv_hdr,
void *rx_tlv;
struct hal_rx_ppdu_info *ppdu_info = ppdu_info_hdl;
tlv_len = HAL_RX_GET_USER_TLV64_LEN(rx_tlv_hdr);
tlv_len = HAL_RX_GET_USER_TLV32_LEN(rx_tlv_hdr);
rx_tlv = (uint8_t *)rx_tlv_hdr + HAL_RX_TLV64_HDR_SIZE;
if (!tlv_len)
return;
tlv_tag = HAL_RX_GET_USER_TLV64_TYPE(rx_tlv);
tlv_len = HAL_RX_GET_USER_TLV64_LEN(rx_tlv);
tlv_tag = HAL_RX_GET_USER_TLV32_TYPE(rx_tlv);
tlv_len = HAL_RX_GET_USER_TLV32_LEN(rx_tlv);
if (!tlv_len)
return;