瀏覽代碼

qcacld-3.0: Skip ROC req if TX action frame freq is same as current vdev freq

Currently, in case of Tx action frame driver start the ROC req based on
the offchannel is set. Due to this, if the TX action freq is same as
current vdev freq then also driver started the ROC req on the same
channel.

Fix is, even offchannel is set, but current vdev freq is same as
that of the channel for the tx frame. Driver will skip the ROC.

Change-Id: I7ab2ade0f01ad5035f7b156ded7eb7af7c826b9e
CRs-Fixed: 3366671
Deeksha Gupta 2 年之前
父節點
當前提交
0f667d9495
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      components/p2p/core/src/wlan_p2p_off_chan_tx.c

+ 6 - 1
components/p2p/core/src/wlan_p2p_off_chan_tx.c

@@ -3145,6 +3145,7 @@ QDF_STATUS p2p_process_mgmt_tx(struct tx_action_context *tx_ctx)
 	struct wlan_objmgr_vdev *vdev;
 	QDF_STATUS status;
 	bool is_vdev_connected = false;
+	qdf_freq_t curr_op_freq;
 
 	status = p2p_tx_context_check_valid(tx_ctx);
 	if (status != QDF_STATUS_SUCCESS) {
@@ -3207,9 +3208,13 @@ QDF_STATUS p2p_process_mgmt_tx(struct tx_action_context *tx_ctx)
 	if (mode == QDF_STA_MODE)
 		is_vdev_connected = wlan_cm_is_vdev_connected(vdev);
 
+	curr_op_freq = wlan_get_operation_chan_freq(vdev);
+
 	wlan_objmgr_vdev_release_ref(vdev, WLAN_P2P_ID);
 
-	if (!tx_ctx->off_chan || !tx_ctx->chan_freq) {
+	if (!tx_ctx->off_chan || !tx_ctx->chan_freq ||
+	    (curr_op_freq && curr_op_freq == tx_ctx->chan_freq &&
+	     !tx_ctx->duration)) {
 		if (!tx_ctx->chan_freq)
 			p2p_check_and_update_channel(tx_ctx);
 		if (!tx_ctx->chan_freq && mode == QDF_STA_MODE &&