ソースを参照

qcacld-3.0: map uCode 11ax GI values to radiotap header

Currently 11ax sgi values are mapped incorrectly.
uCode has:

enum 0     0_8_us_sgi
enum 1     0_4_us_sgi
enum 2     1_6_us_sgi
enum 3     3_2_us_sgi

Radiotap header expectation:

enum 0     0_8_us_sgi
enum 1     1_6_us_sgi
enum 2     3_2_us_sgi

Hence, This change is to map uCode GI values to radiotap header
as per radtiotap header expectation.

Change-Id: I58d8205e7da3523cf81b420c0aee978a862a772a
CRs-Fixed: 3628151
Balaji Pothunoori 1 年間 前
コミット
c8f46a08fc
1 ファイル変更20 行追加0 行削除
  1. 20 0
      components/pkt_capture/core/src/wlan_pkt_capture_data_txrx.c

+ 20 - 0
components/pkt_capture/core/src/wlan_pkt_capture_data_txrx.c

@@ -730,6 +730,26 @@ static void pkt_capture_rx_get_phy_info(void *context, void *psoc,
 			IEEE80211_RADIOTAP_HE_DATA1_BW_RU_ALLOC_KNOWN;
 		rx_status->he_data2 |= IEEE80211_RADIOTAP_HE_DATA2_GI_KNOWN;
 		rx_status->he_data3 |= mcs << 0x8;
+
+		/* Map uCode SGI values to Radiotap header
+		 * as per Radiotap header expectation.
+		 *
+		 * uCode has:
+		 *	enum 0     0_8_us_sgi
+		 *	enum 1     0_4_us_sgi
+		 *	enum 2     1_6_us_sgi
+		 *	enum 3     3_2_us_sgi
+		 *
+		 * Radiotap header expectation:
+		 *	enum 0     0_8_us_sgi
+		 *	enum 1     1_6_us_sgi
+		 *	enum 2     3_2_us_sgi
+		 */
+		if (sgi == HE_GI_1_6)
+			sgi = HE_GI_RADIOTAP_1_6;
+		else if (sgi == HE_GI_3_2)
+			sgi = HE_GI_RADIOTAP_3_2;
+
 		rx_status->he_data5 |= (bw | (sgi << 0x4));
 		rx_status->he_data6 |= nss;
 	default: