1
0

qcacld-3.0: Enable pktlog for Helium

Add Support to enable pktlog through INI
for helium based devices.

Change-Id: I0acfcf1db8c007c5e2ce81fcb1775fd1b7a50570
CRs-Fixed: 2185210
Este cometimento está contido em:
Venkata Sharath Chandra Manchala
2018-01-18 14:17:29 -08:00
cometido por snandini
ascendente 392562febc
cometimento 2996517bbc
8 ficheiros modificados com 61 adições e 35 eliminações

Ver ficheiro

@@ -1806,7 +1806,6 @@ bool cds_is_packet_log_enabled(void)
"%s: Hdd Context is Null", __func__);
return false;
}
return hdd_ctx->config->enablePacketLog;
}

Ver ficheiro

@@ -158,7 +158,8 @@ void ol_rx_send_pktlog_event(struct ol_txrx_pdev_t *pdev,
else
data.mac_id = 0;
wdi_event_handler(WDI_EVENT_RX_DESC_REMOTE, pdev, &data);
wdi_event_handler(WDI_EVENT_RX_DESC_REMOTE, (struct cdp_pdev *)pdev,
&data);
}
#else
void ol_rx_send_pktlog_event(struct ol_txrx_pdev_t *pdev,
@@ -180,7 +181,8 @@ void ol_rx_send_pktlog_event(struct ol_txrx_pdev_t *pdev,
else
data.mac_id = 0;
wdi_event_handler(WDI_EVENT_RX_DESC_REMOTE, pdev, &data);
wdi_event_handler(WDI_EVENT_RX_DESC_REMOTE, (struct cdp_pdev *)pdev,
&data);
}
#endif
@@ -301,7 +303,8 @@ static void ol_rx_process_inv_peer(ol_txrx_pdev_handle pdev,
msg.msdu = msdu;
msg.vdev_id = vdev->vdev_id;
#ifdef WDI_EVENT_ENABLE
wdi_event_handler(WDI_EVENT_RX_PEER_INVALID, pdev, &msg);
wdi_event_handler(WDI_EVENT_RX_PEER_INVALID, (struct cdp_pdev *)pdev,
&msg);
#endif
}

Ver ficheiro

@@ -1375,6 +1375,7 @@ void htt_pkt_log_init(struct cdp_pdev *ppdev, void *scn)
if (cds_get_conparam() != QDF_GLOBAL_FTM_MODE &&
!QDF_IS_EPPING_ENABLED(cds_get_conparam())) {
pktlog_sethandle(&handle->pl_dev, scn);
pktlog_set_callback_regtype(PKTLOG_DEFAULT_CALLBACK_REGISTRATION);
if (pktlogmod_init(scn))
qdf_print("%s: pktlogmod_init failed", __func__);
else
@@ -5785,6 +5786,18 @@ ol_txrx_wrapper_set_flow_control_parameters(struct cdp_cfg *cfg_pdev,
(struct txrx_pdev_cfg_param_t *)cfg_param);
}
#ifdef WDI_EVENT_ENABLE
void *ol_get_pldev(struct cdp_pdev *txrx_pdev)
{
struct ol_txrx_pdev_t *pdev =
(struct ol_txrx_pdev_t *)txrx_pdev;
if (pdev != NULL)
return pdev->pl_dev;
return NULL;
}
#endif
static struct cdp_cmn_ops ol_ops_cmn = {
.txrx_soc_attach_target = ol_txrx_soc_attach_target,
.txrx_vdev_attach = ol_txrx_vdev_attach,
@@ -5911,16 +5924,6 @@ static struct cdp_mob_stats_ops ol_ops_mob_stats = {
.stats = ol_txrx_stats
};
static void *ol_get_pldev(struct cdp_pdev *txrx_pdev)
{
struct ol_txrx_pdev_t *handle = (struct ol_txrx_pdev_t *)txrx_pdev;
if (handle != NULL)
return handle->pl_dev;
return NULL;
}
static struct cdp_cfg_ops ol_ops_cfg = {
.set_cfg_rx_fwd_disabled = ol_set_cfg_rx_fwd_disabled,
.set_cfg_packet_log_enabled = ol_set_cfg_packet_log_enabled,
@@ -5982,6 +5985,8 @@ static struct cdp_pmf_ops ol_ops_pmf = {
static struct cdp_ctrl_ops ol_ops_ctrl = {
.txrx_get_pldev = ol_get_pldev,
.txrx_wdi_event_sub = wdi_event_sub,
.txrx_wdi_event_unsub = wdi_event_unsub,
};
/* WINplatform specific structures */

Ver ficheiro

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -92,6 +92,14 @@ ol_txrx_hl_tdls_flag_reset(struct cdp_vdev *vdev, bool flag)
}
#endif
#ifdef WDI_EVENT_ENABLE
void *ol_get_pldev(struct cdp_pdev *txrx_pdev);
#else
void *ol_get_pldev(struct cdp_pdev *txrx_pdev)
{
return NULL;
}
#endif
/*
* @nbuf: buffer which contains data to be displayed
* @nbuf_paddr: physical address of the buffer

Ver ficheiro

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -77,10 +77,13 @@ wdi_event_iter_sub(struct ol_txrx_pdev_t *pdev,
void
wdi_event_handler(enum WDI_EVENT event,
struct ol_txrx_pdev_t *txrx_pdev, void *data)
struct cdp_pdev *ppdev, void *data)
{
uint32_t event_index;
wdi_event_subscribe *wdi_sub;
struct ol_txrx_pdev_t *txrx_pdev =
(struct ol_txrx_pdev_t *)ppdev;
/*
* Input validation
*/
@@ -107,11 +110,16 @@ wdi_event_handler(enum WDI_EVENT event,
}
A_STATUS
wdi_event_sub(struct ol_txrx_pdev_t *txrx_pdev,
wdi_event_subscribe *event_cb_sub, enum WDI_EVENT event)
wdi_event_sub(struct cdp_pdev *ppdev,
void *pevent_cb_sub, uint32_t event)
{
uint32_t event_index;
wdi_event_subscribe *wdi_sub;
struct ol_txrx_pdev_t *txrx_pdev =
(struct ol_txrx_pdev_t *)ppdev;
wdi_event_subscribe *event_cb_sub =
(wdi_event_subscribe *)pevent_cb_sub;
/* Input validation */
if (!txrx_pdev || !txrx_pdev->wdi_event_list) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
@@ -152,11 +160,17 @@ wdi_event_sub(struct ol_txrx_pdev_t *txrx_pdev,
}
A_STATUS
wdi_event_unsub(struct ol_txrx_pdev_t *txrx_pdev,
wdi_event_subscribe *event_cb_sub, enum WDI_EVENT event)
wdi_event_unsub(struct cdp_pdev *ppdev,
void *pevent_cb_sub, uint32_t event)
{
uint32_t event_index = event - WDI_EVENT_BASE;
struct ol_txrx_pdev_t *txrx_pdev =
(struct ol_txrx_pdev_t *)ppdev;
wdi_event_subscribe *event_cb_sub =
(wdi_event_subscribe *)pevent_cb_sub;
/* Input validation */
if (!event_cb_sub) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,

Ver ficheiro

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012-2014, 2017 The Linux Foundation. All rights reserved.
* Copyright (c) 2012-2014, 2017-2018 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -29,7 +29,7 @@
#define _WDI_EVENT_API_H_
#include "wdi_event.h"
#include <cdp_txrx_handle.h>
struct ol_txrx_pdev_t;
/**
@@ -47,9 +47,9 @@ struct ol_txrx_pdev_t;
* @param event - which event's notifications are being subscribed to
* @return error code, or A_OK for success
*/
A_STATUS wdi_event_sub(struct ol_txrx_pdev_t *txrx_pdev,
wdi_event_subscribe *event_cb_sub,
enum WDI_EVENT event);
A_STATUS wdi_event_sub(struct cdp_pdev *ppdev,
void *event_cb_sub,
uint32_t event);
/**
* @brief Unsubscribe from a specified WDI event.
@@ -64,21 +64,21 @@ A_STATUS wdi_event_sub(struct ol_txrx_pdev_t *txrx_pdev,
* @param event - which event is being unsubscribed
* @return error code, or A_OK for success
*/
A_STATUS wdi_event_unsub(struct ol_txrx_pdev_t *txrx_pdev,
wdi_event_subscribe *event_cb_sub,
enum WDI_EVENT event);
A_STATUS wdi_event_unsub(struct cdp_pdev *ppdev,
void *event_cb_sub,
uint32_t event);
#ifdef WDI_EVENT_ENABLE
void wdi_event_handler(enum WDI_EVENT event,
struct ol_txrx_pdev_t *txrx_pdev, void *data);
struct cdp_pdev *txrx_pdev, void *data);
A_STATUS wdi_event_attach(struct ol_txrx_pdev_t *txrx_pdev);
A_STATUS wdi_event_detach(struct ol_txrx_pdev_t *txrx_pdev);
#else
static inline void wdi_event_handler(enum WDI_EVENT event,
struct ol_txrx_pdev_t *txrx_pdev, void *data)
struct cdp_pdev *txrx_pdev, void *data)
{
}
static inline A_STATUS wdi_event_attach(struct ol_txrx_pdev_t *txrx_pdev)

Ver ficheiro

@@ -7467,7 +7467,6 @@ static int __wlan_hdd_cfg80211_wifi_logger_start(struct wiphy *wiphy,
}
start_log.is_iwpriv_command = nla_get_u32(
tb[QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_FLAGS]);
hdd_debug("is_iwpriv_command =%d", start_log.is_iwpriv_command);
/* size is buff size which can be set using iwpriv command*/
start_log.size = 0;

Ver ficheiro

@@ -6649,12 +6649,10 @@ static void wma_set_wifi_start_packet_stats(void *wma_handle,
#ifdef HELIUMPLUS
log_state = ATH_PKTLOG_ANI | ATH_PKTLOG_RCUPDATE | ATH_PKTLOG_RCFIND |
ATH_PKTLOG_RX | ATH_PKTLOG_TX |
ATH_PKTLOG_TEXT | ATH_PKTLOG_SW_EVENT |
ATH_PKTLOG_LITE_T2H | ATH_PKTLOG_LITE_RX;
ATH_PKTLOG_TEXT | ATH_PKTLOG_SW_EVENT;
#else
log_state = ATH_PKTLOG_LITE_T2H | ATH_PKTLOG_LITE_RX;
#endif
if (start_log->size != 0) {
pktlog_setsize(scn, start_log->size * MEGABYTE);
return;