From 06ccc52eddc5108b8c8968f1b7fa5845da2115df Mon Sep 17 00:00:00 2001 From: Ruben Columbus Date: Wed, 29 Apr 2020 23:33:13 -0700 Subject: [PATCH] qcacmn: get full mac address for rts case rts full destination address is needed to be able to do check on mac to be able to recreate cts frame correspondingly. Change-Id: I3ec7e765bb4a0645a1495b4ca42d81fd3134cc5d --- hal/wifi3.0/hal_generic_api.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/hal/wifi3.0/hal_generic_api.h b/hal/wifi3.0/hal_generic_api.h index 2d8a0b33c3b1..7e760f39296e 100644 --- a/hal/wifi3.0/hal_generic_api.h +++ b/hal/wifi3.0/hal_generic_api.h @@ -401,8 +401,10 @@ static inline void hal_get_mac_addr1(uint8_t *rx_mpdu_start, struct hal_rx_ppdu_info *ppdu_info) { - if (ppdu_info->sw_frame_group_id - == HAL_MPDU_SW_FRAME_GROUP_MGMT_PROBE_REQ) { + if ((ppdu_info->sw_frame_group_id + == HAL_MPDU_SW_FRAME_GROUP_MGMT_PROBE_REQ) || + (ppdu_info->sw_frame_group_id == + HAL_MPDU_SW_FRAME_GROUP_CTRL_RTS)) { ppdu_info->rx_info.mac_addr1_valid = HAL_RX_GET_MAC_ADDR1_VALID(rx_mpdu_start); @@ -410,6 +412,13 @@ hal_get_mac_addr1(uint8_t *rx_mpdu_start, HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_15, MAC_ADDR_AD1_31_0); + if (ppdu_info->sw_frame_group_id == + HAL_MPDU_SW_FRAME_GROUP_CTRL_RTS) { + *(uint32_t *)&ppdu_info->rx_info.mac_addr1[4] = + HAL_RX_GET(rx_mpdu_start, + RX_MPDU_INFO_16, + MAC_ADDR_AD1_47_32); + } } } #else