qcacmn: Change monitor ring reap sequence for qcn9000

For qcn9000 in case of monitor mode, reap monitor destination
ring first and status ring later to avoid backpressure
on monitor destination ring

Change-Id: I4e1931afe0453221f1326ca7bdb7f0273cc7363d
CRs-Fixed: 2670656
此提交包含在:
Amir
2020-04-25 12:55:19 +05:30
提交者 nshrivas
父節點 60d18029b6
當前提交 76ab3fc618
共有 2 個檔案被更改,包括 18 行新增4 行删除

查看文件

@@ -19,6 +19,19 @@
#ifndef _DP_RX_MON_H_
#define _DP_RX_MON_H_
/*
* dp_rx_mon_status_process() - Process monitor status ring and
*>.....TLV in status ring.
*
* @soc: core txrx main context
* @mac_id: mac_id which is one of 3 mac_ids
* @quota: No. of ring entry that can be serviced in one shot.
* Return: uint32_t: No. of ring entry that is processed.
*/
uint32_t
dp_rx_mon_status_process(struct dp_soc *soc, uint32_t mac_id, uint32_t quota);
/**
* dp_rx_mon_dest_process() - Brain of the Rx processing functionality
* Called from the bottom half (tasklet/NET_RX_SOFTIRQ)

查看文件

@@ -1618,9 +1618,7 @@ dp_rx_mon_status_process_tlv(struct dp_soc *soc, uint32_t mac_id,
pdev->mon_chan_freq;
}
if (qdf_unlikely(soc->full_mon_mode))
dp_rx_mon_process(soc, mac_id, quota);
else
if (!soc->full_mon_mode)
dp_rx_mon_dest_process(soc, mac_id, quota);
pdev->mon_ppdu_status = DP_PPDU_STATUS_START;
@@ -1831,7 +1829,7 @@ done:
* Return: uint32_t: No. of ring entry that is processed.
*/
static inline uint32_t
uint32_t
dp_rx_mon_status_process(struct dp_soc *soc, uint32_t mac_id, uint32_t quota) {
uint32_t work_done;
@@ -1854,6 +1852,9 @@ dp_rx_mon_status_process(struct dp_soc *soc, uint32_t mac_id, uint32_t quota) {
*/
uint32_t
dp_mon_process(struct dp_soc *soc, uint32_t mac_id, uint32_t quota) {
if (qdf_unlikely(soc->full_mon_mode))
return dp_rx_mon_process(soc, mac_id, quota);
return dp_rx_mon_status_process(soc, mac_id, quota);
}