Răsfoiți Sursa

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
Ruben Columbus 5 ani în urmă
părinte
comite
06ccc52edd
1 a modificat fișierele cu 11 adăugiri și 2 ștergeri
  1. 11 2
      hal/wifi3.0/hal_generic_api.h

+ 11 - 2
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