Bläddra i källkod

Merge "qca-wifi: N -1 probe response retry count fix"

Linux Build Service Account 5 år sedan
förälder
incheckning
e0a5418db2
1 ändrade filer med 42 tillägg och 0 borttagningar
  1. 42 0
      dp/wifi3.0/dp_tx_capture.c

+ 42 - 0
dp/wifi3.0/dp_tx_capture.c

@@ -2198,6 +2198,16 @@ dp_check_mgmt_ctrl_ppdu(struct dp_pdev *pdev,
 		subtype = 0;
 	}
 
+	switch (ppdu_desc->htt_frame_type) {
+	case HTT_STATS_FTYPE_TIDQ_DATA_SU:
+	case HTT_STATS_FTYPE_TIDQ_DATA_MU:
+		is_sgen_pkt = false;
+	break;
+	default:
+		is_sgen_pkt = true;
+	break;
+	}
+
 	retries_q = &pdev->tx_capture.retries_ctl_mgmt_q[type][subtype];
 get_mgmt_pkt_from_queue:
 	qdf_spin_lock_bh(
@@ -2256,6 +2266,11 @@ get_mgmt_pkt_from_queue:
 				}
 			}
 
+			/*
+			 * only for the packets send over the air are handled
+			 * packets drop by firmware is not handled in this
+			 * feature
+			 */
 			if (ppdu_desc->user[0].completion_status ==
 			    HTT_PPDU_STATS_USER_STATUS_FILTERED) {
 				qdf_nbuf_free(nbuf_ppdu_desc);
@@ -2286,6 +2301,11 @@ get_mgmt_pkt_from_queue:
 			uint16_t frame_ctrl_le;
 			struct ieee80211_frame *wh;
 
+			/*
+			 * only for the packets send over the air are handled
+			 * packets drop by firmware is not handled in this
+			 * feature
+			 */
 			if (ppdu_desc->user[0].completion_status ==
 			    HTT_PPDU_STATS_USER_STATUS_FILTERED) {
 				qdf_nbuf_free(nbuf_ppdu_desc);
@@ -2372,10 +2392,32 @@ get_mgmt_pkt_from_queue:
 						   &tx_capture_info,
 						   mgmt_ctl_nbuf, true);
 		}
+	} else if (!is_sgen_pkt) {
+		/*
+		 * only for the packets send over the air are handled
+		 * packets drop by firmware is not handled in this
+		 * feature
+		 */
+		if (ppdu_desc->user[0].completion_status ==
+		    HTT_PPDU_STATS_USER_STATUS_FILTERED) {
+			qdf_nbuf_free(nbuf_ppdu_desc);
+			status = 0;
+			goto free_ppdu_desc;
+		}
+		/*
+		 * add the ppdu_desc into retry queue
+		 */
+		qdf_nbuf_queue_add(retries_q, nbuf_ppdu_desc);
+		status = 0;
 	} else if ((ppdu_desc->frame_ctrl &
 		   IEEE80211_FC0_TYPE_MASK) ==
 		   IEEE80211_FC0_TYPE_CTL) {
 
+		/*
+		 * only for the packets send over the air are handled
+		 * packets drop by firmware is not handled in this
+		 * feature
+		 */
 		if (ppdu_desc->user[0].completion_status ==
 		    HTT_PPDU_STATS_USER_STATUS_FILTERED) {
 			qdf_nbuf_free(nbuf_ppdu_desc);