소스 검색

qcacmn: Add sig info parameters to cfr info

Add sig info parameters like dcm, stbc, coding etc
to cfr_info

CRs-Fixed: 2966868

Change-Id: If0c36f58d93c631c75ecfbe47fa1f8cafa84dfaf
Shwetha G K 4 년 전
부모
커밋
224f008ca3
2개의 변경된 파일70개의 추가작업 그리고 1개의 파일을 삭제
  1. 41 1
      dp/inc/cdp_txrx_stats_struct.h
  2. 29 0
      dp/wifi3.0/dp_rx_mon_status.c

+ 41 - 1
dp/inc/cdp_txrx_stats_struct.h

@@ -465,8 +465,46 @@ struct cdp_tidq_stats {
  * @rtt_che_buffer_pointer_low32 : The low 32 bits of the 40 bits pointer to
  * @rtt_che_buffer_pointer_low32 : The low 32 bits of the 40 bits pointer to
  * external RTT channel information buffer
  * external RTT channel information buffer
  *
  *
+ * @rtt_cfo_measurement : raw cfo data extracted from hardware, which is 14 bit
+ * signed number. The first bit used for sign representation and 13 bits for
+ * fractional part.
+ *
+ * @agc_gain_info0: Chain 0 & chain 1 agc gain information reported by PHY
+ *
+ * @agc_gain_info1: Chain 2 & chain 3 agc gain information reported by PHY
+ *
+ * @agc_gain_info2: Chain 4 & chain 5 agc gain information reported by PHY
+ *
+ * @agc_gain_info3: Chain 6 & chain 7 agc gain information reported by PHY
+ *
+ * @rx_start_ts: Rx packet timestamp, the time the first L-STF ADC sample
+ * arrived at Rx antenna.
+ *
+ * @mcs_rate: Indicates the mcs/rate in which packet is received.
+ * If HT,
+ *    0-7: MCS0-MCS7
+ * If VHT,
+ *    0-9: MCS0 to MCS9
+ * If HE,
+ *    0-11: MCS0 to MCS11,
+ *    12-13: 4096QAM,
+ *    14-15: reserved
+ * If Legacy,
+ *    0: 48 Mbps
+ *    1: 24 Mbps
+ *    2: 12 Mbps
+ *    3: 6 Mbps
+ *    4: 54 Mbps
+ *    5: 36 Mbps
+ *    6: 18 Mbps
+ *    7: 9 Mbps
+ *
+ * @gi_type: Indicates the gaurd interval.
+ *    0: 0.8 us
+ *    1: 0.4 us
+ *    2: 1.6 us
+ *    3: 3.2 us
  */
  */
-
 struct cdp_rx_ppdu_cfr_info {
 struct cdp_rx_ppdu_cfr_info {
 	bool bb_captured_channel;
 	bool bb_captured_channel;
 	bool bb_captured_timeout;
 	bool bb_captured_timeout;
@@ -481,6 +519,8 @@ struct cdp_rx_ppdu_cfr_info {
 	uint32_t agc_gain_info2;
 	uint32_t agc_gain_info2;
 	uint32_t agc_gain_info3;
 	uint32_t agc_gain_info3;
 	uint32_t rx_start_ts;
 	uint32_t rx_start_ts;
+	uint32_t mcs_rate;
+	uint32_t gi_type;
 };
 };
 #endif
 #endif
 /*
 /*

+ 29 - 0
dp/wifi3.0/dp_rx_mon_status.c

@@ -497,6 +497,16 @@ dp_rx_populate_cdp_indication_ppdu(struct dp_pdev *pdev,
 	cdp_rx_ppdu->lsig_a = ppdu_info->rx_status.rate;
 	cdp_rx_ppdu->lsig_a = ppdu_info->rx_status.rate;
 	cdp_rx_ppdu->u.ltf_size = ppdu_info->rx_status.ltf_size;
 	cdp_rx_ppdu->u.ltf_size = ppdu_info->rx_status.ltf_size;
 
 
+	if (ppdu_info->rx_status.preamble_type == HAL_RX_PKT_TYPE_11AC) {
+		cdp_rx_ppdu->u.stbc = ppdu_info->rx_status.is_stbc;
+	} else if (ppdu_info->rx_status.preamble_type ==
+			HAL_RX_PKT_TYPE_11AX) {
+		cdp_rx_ppdu->u.stbc = (ppdu_info->rx_status.he_data3 >>
+				       QDF_MON_STATUS_STBC_SHIFT) & 0x1;
+		cdp_rx_ppdu->u.dcm = (ppdu_info->rx_status.he_data3 >>
+				      QDF_MON_STATUS_DCM_SHIFT) & 0x1;
+	}
+
 	dp_rx_populate_rx_rssi_chain(ppdu_info, cdp_rx_ppdu);
 	dp_rx_populate_rx_rssi_chain(ppdu_info, cdp_rx_ppdu);
 	dp_rx_populate_su_evm_details(ppdu_info, cdp_rx_ppdu);
 	dp_rx_populate_su_evm_details(ppdu_info, cdp_rx_ppdu);
 	cdp_rx_ppdu->rx_antenna = ppdu_info->rx_status.rx_antenna;
 	cdp_rx_ppdu->rx_antenna = ppdu_info->rx_status.rx_antenna;
@@ -1209,6 +1219,21 @@ dp_rx_mon_populate_cfr_ppdu_info(struct dp_pdev *pdev,
 	for (chain = 0; chain < MAX_CHAIN; chain++)
 	for (chain = 0; chain < MAX_CHAIN; chain++)
 		cdp_rx_ppdu->per_chain_rssi[chain] =
 		cdp_rx_ppdu->per_chain_rssi[chain] =
 			ppdu_info->rx_status.rssi[chain];
 			ppdu_info->rx_status.rssi[chain];
+
+	cdp_rx_ppdu->u.ltf_size = ppdu_info->rx_status.ltf_size;
+	cdp_rx_ppdu->beamformed = ppdu_info->rx_status.beamformed;
+	cdp_rx_ppdu->u.ldpc = ppdu_info->rx_status.ldpc;
+
+	if (ppdu_info->rx_status.preamble_type == HAL_RX_PKT_TYPE_11AC) {
+		cdp_rx_ppdu->u.stbc = ppdu_info->rx_status.is_stbc;
+	} else if (ppdu_info->rx_status.preamble_type ==
+			HAL_RX_PKT_TYPE_11AX) {
+		cdp_rx_ppdu->u.stbc = (ppdu_info->rx_status.he_data3 >>
+				       QDF_MON_STATUS_STBC_SHIFT) & 0x1;
+		cdp_rx_ppdu->u.dcm = (ppdu_info->rx_status.he_data3 >>
+				      QDF_MON_STATUS_DCM_SHIFT) & 0x1;
+	}
+
 	dp_rx_mon_handle_cfr_mu_info(pdev, ppdu_info, cdp_rx_ppdu);
 	dp_rx_mon_handle_cfr_mu_info(pdev, ppdu_info, cdp_rx_ppdu);
 }
 }
 
 
@@ -1271,6 +1296,10 @@ dp_rx_mon_populate_cfr_info(struct dp_pdev *pdev,
 		= ppdu_info->cfr_info.agc_gain_info3;
 		= ppdu_info->cfr_info.agc_gain_info3;
 	cfr_info->rx_start_ts
 	cfr_info->rx_start_ts
 		= ppdu_info->cfr_info.rx_start_ts;
 		= ppdu_info->cfr_info.rx_start_ts;
+	cfr_info->mcs_rate
+		= ppdu_info->cfr_info.mcs_rate;
+	cfr_info->gi_type
+		= ppdu_info->cfr_info.gi_type;
 }
 }
 
 
 /**
 /**