From af64522cc3d10bac8623bc748cb40a743cb39d2a Mon Sep 17 00:00:00 2001 From: Debashis Dutt Date: Fri, 20 Jan 2017 19:29:25 -0800 Subject: [PATCH] qcacmn: Add debug logging To Tx/Rx path Add Tx completion status value to the logging of Tx completions. In addition dump Rx meta-data and first few bytes of Rx packet only on NAPIER EMULATION platform. This is only to facilitate faster debug from the logs, and will be disabled, once we have more stability. Change-Id: I69d9e2fd6ad32efe01b8e56f355db5ed6d4d2e70 CRs-Fixed: 1116939 --- dp/wifi3.0/dp_rx.c | 10 ++++++++++ dp/wifi3.0/dp_tx.c | 19 ++++++++++++++++++- hal/wifi3.0/hal_tx.h | 3 +++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index e94a34ff61..1047d23bdb 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -374,6 +374,16 @@ done: qdf_nbuf_pull_head(nbuf, RX_PKT_TLVS_LEN + l2_hdr_offset); +#ifdef QCA_WIFI_NAPIER_EMULATION /* Debug code, remove later */ + QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR, + "p_id %d msdu_len %d hdr_off %d", + peer_id, msdu_len, l2_hdr_offset); + + print_hex_dump(KERN_ERR, + "\t Pkt Data:", DUMP_PREFIX_NONE, 32, 4, + qdf_nbuf_data(nbuf), 128, false); +#endif /* NAPIER_EMULATION */ + /* TODO */ /* WDS Source Port Learning */ diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index 2641ffe131..b462b9ed67 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -109,6 +109,7 @@ dp_tx_desc_release(struct dp_vdev *vdev, struct dp_tx_desc_s *tx_desc, { struct dp_pdev *pdev = vdev->pdev; struct dp_soc *soc = pdev->soc; + uint8_t comp_status = 0; if (tx_desc->flags & DP_TX_DESC_FLAG_FRAG) dp_tx_ext_desc_free(soc, tx_desc->msdu_ext_desc, desc_pool_id); @@ -119,8 +120,15 @@ dp_tx_desc_release(struct dp_vdev *vdev, struct dp_tx_desc_s *tx_desc, if (tx_desc->flags & DP_TX_DESC_FLAG_TO_FW) pdev->num_tx_exception--; + if (HAL_TX_COMP_RELEASE_SOURCE_TQM == + hal_tx_comp_get_buffer_source(&tx_desc->comp)) + comp_status = hal_tx_comp_get_release_reason(&tx_desc->comp); + else + comp_status = HAL_TX_COMP_RELEASE_REASON_FW; + QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO, - "Tx Completion Release desc %d\n", tx_desc->id); + "Tx Completion Release desc %d status %d\n", + tx_desc->id, comp_status); dp_tx_desc_free(soc, tx_desc, desc_pool_id); return; @@ -1547,7 +1555,16 @@ QDF_STATUS dp_tx_soc_attach(struct dp_soc *soc) * Keep the processing of completion stats disabled by default. * todo - Add a runtime config option to enable this. */ + /* + * Due to multiple issues on NPR EMU, enable it selectively + * only for NPR EMU, should be removed, once NPR platforms + * are stable. + */ +#ifdef QCA_WIFI_NAPIER_EMULATION + soc->process_tx_status = 1; +#else soc->process_tx_status = 0; +#endif /* Initialize Default DSCP-TID mapping table in TCL */ hal_tx_set_dscp_tid_map(soc->hal_soc, default_dscp_tid_map, diff --git a/hal/wifi3.0/hal_tx.h b/hal/wifi3.0/hal_tx.h index dbabb9bd9d..6b64e9e902 100644 --- a/hal/wifi3.0/hal_tx.h +++ b/hal/wifi3.0/hal_tx.h @@ -76,6 +76,9 @@ do { \ #define HAL_TX_COMP_RELEASE_SOURCE_TQM 0 #define HAL_TX_COMP_RELEASE_SOURCE_FW 3 +/* Define a place-holder release reason for FW */ +#define HAL_TX_COMP_RELEASE_REASON_FW 99 + /* * Offset of HTT Tx Descriptor in WBM Completion * HTT Tx Desc structure is passed from firmware to host overlayed