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:

cometido por
snandini

ascendente
392562febc
cometimento
2996517bbc
@@ -1806,7 +1806,6 @@ bool cds_is_packet_log_enabled(void)
|
||||
"%s: Hdd Context is Null", __func__);
|
||||
return false;
|
||||
}
|
||||
|
||||
return hdd_ctx->config->enablePacketLog;
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
}
|
||||
|
||||
|
@@ -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 */
|
||||
|
@@ -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
|
||||
|
@@ -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,
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador