qcacld-3.0: enable pktlog support for HL project

qcacld-2.0 to qcacld-3.0 propagation

Currently for SDIO implementation, tx comp indication is
suppressed and tx_desc is freed when htt download is done.
This leads to invalid tx_desc being referenced when pktlog
indication handler wants to collect TX-ed tx_desc information.

Fix consists of two parts:
1. When pktlog is enabled in ini, enable tx comp indication
handler just like PCIe and USB. tx_desc is still valid when
pktlog indication comes.

2. Check vdev pointer embedded in tx_desc structure. vdev
pointer is set when tx_desc is allocated and set to NULL when
tx_desc is freed. This guards against invalid tx_desc_id
from firmware.

Note that performance drops should be expected when
pktlog is enabled on HL platforms.

Change-Id: Iba9b8323b4a6e2ae17e36768bda3511f52236a2c
CRs-Fixed: 2034996
This commit is contained in:
jiad
2017-05-19 10:57:26 +08:00
committed by snandini
szülő dc963f1329
commit b20627788b
2 fájl változott, egészen pontosan 14 új sor hozzáadva és 1 régi sor törölve

Fájl megtekintése

@@ -43,6 +43,7 @@
#include <net/cnss.h>
#endif
#include "i_bmi.h"
#include "cds_api.h"
#ifdef CONFIG_DISABLE_SLEEP_BMI_OPTION
static inline void ol_sdio_disable_sleep(struct ol_context *ol_ctx)
@@ -174,6 +175,10 @@ QDF_STATUS ol_sdio_extra_initialization(struct ol_context *ol_ctx)
param |= SDIO_HI_ACS_FLAGS;
/* enable TX completion to collect tx_desc for pktlog */
if (cds_is_packet_log_enabled())
param &= ~HI_ACS_FLAGS_SDIO_REDUCE_TX_COMPL_SET;
bmi_write_memory(hif_hia_item_address(target_type,
offsetof(struct host_interest_s,
hi_acs_flags)),