Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e01cf82 authored by Vulupala Shashank Reddy's avatar Vulupala Shashank Reddy Committed by nshrivas
Browse files

qcacld-3.0: offload tx packets freq update for virtual mon

Freq information not received from FW for offloaded tx frames.
Now FW will send freq information of offload tx frames using
existing htt interface reserved field. Update freq of offload
tx packets, received in reserved field.

Change-Id: I816844b2ea242fb813d6ab2ddb54aa3acab118d9
CRs-Fixed: 2557379
parent 2e163778
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@
#include <ol_txrx.h>
#include <pktlog_ac_fmt.h>
#include <utils_api.h>
#include "cds_utils.h"

#ifdef TX_CREDIT_RECLAIM_SUPPORT

@@ -949,6 +950,7 @@ ol_tx_offload_deliver_indication_handler(ol_txrx_pdev_handle pdev, void *msg)
	struct htt_tx_offload_deliver_ind_hdr_t *offload_deliver_msg;
	bool is_pkt_during_roam = false;
	uint8_t vdev_id;
	uint32_t freq = 0;

	offload_deliver_msg = (struct htt_tx_offload_deliver_ind_hdr_t *)msg;

@@ -984,8 +986,12 @@ ol_tx_offload_deliver_indication_handler(ol_txrx_pdev_handle pdev, void *msg)
	tid = offload_deliver_msg->tid_num;
	/* Is FW sends offload data during roaming */
	is_pkt_during_roam = (offload_deliver_msg->reserved_2 ? true : false);
	if (is_pkt_during_roam)
	if (is_pkt_during_roam) {
		vdev_id = HTT_INVALID_VDEV;
		freq = (uint32_t)offload_deliver_msg->reserved_3;

		ol_htt_mon_note_chan(pdev, cds_freq_to_chan(freq));
	}

	ol_txrx_mon_data_process(
			vdev_id,
+8 −4
Original line number Diff line number Diff line
@@ -6043,8 +6043,10 @@ ol_txrx_mon_tx_data_cb(void *ppdev, void *nbuf_list, uint8_t vdev_id,
		/*
		 * Get the channel info and update the rx status
		 */
		if (vdev_id != HTT_INVALID_VDEV) {
			cds_get_chan_by_session_id(vdev_id, &chan);
			ol_htt_mon_note_chan(pdev, chan);
		}

		ol_txrx_update_tx_status(pdev, &tx_status, &mon_hdr);

@@ -6170,8 +6172,10 @@ ol_txrx_mon_rx_data_cb(void *ppdev, void *nbuf_list, uint8_t vdev_id,
		/*
		 * Get the channel info and update the rx status
		 */
		if (vdev_id != HTT_INVALID_VDEV) {
			cds_get_chan_by_session_id(vdev_id, &chan);
			ol_htt_mon_note_chan(pdev, chan);
		}
		htt_rx_mon_get_rx_status(pdev->htt_pdev, rx_desc, &rx_status);

		rx_status.tx_status = pkt_tx_status.status;