summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSravan Kumar Kairam <sgoud@codeaurora.org>2017-03-17 20:00:43 +0530
committerSandeep Puligilla <spuligil@codeaurora.org>2017-03-20 12:38:53 -0700
commitfb9f6f6a62de99decbb69f60c651d6531ffeaab8 (patch)
tree1154fd90388cff69d50d9db8f89e9bb90c7e3287
parentae5f83d23a153f43ac1ca2bbdd2f33ebf742a535 (diff)
qcacld-3.0: Improve IPA module logs to debug stability issues
In IPA crash issues from crash dump when connection handle and pipe handles are zero current logging does not help to identify the reason. In this change improve the IPA module logging to root cause the crash issues related to syspipe connection and pipe handle. Change-Id: Idf23e525094ca97e8353a76c6777ec3d139e877e CRs-Fixed: 2018518
-rw-r--r--core/hdd/src/wlan_hdd_ipa.c31
1 files changed, 19 insertions, 12 deletions
diff --git a/core/hdd/src/wlan_hdd_ipa.c b/core/hdd/src/wlan_hdd_ipa.c
index 03624e17f22c..e1eeb473ee5a 100644
--- a/core/hdd/src/wlan_hdd_ipa.c
+++ b/core/hdd/src/wlan_hdd_ipa.c
@@ -2730,16 +2730,17 @@ QDF_STATUS hdd_ipa_uc_ol_init(hdd_context_t *hdd_ctx)
stat = QDF_STATUS_E_FAILURE;
goto fail_return;
}
- /* Micro Controller Doorbell register */
- HDD_IPA_LOG(QDF_TRACE_LEVEL_DEBUG,
- "CONS DB pipe out 0x%x TX PIPE Handle 0x%x",
- (unsigned int)pipe_out.uc_door_bell_pa,
- ipa_ctxt->tx_pipe_handle);
+ /* Micro Controller Doorbell register */
ipa_ctxt->tx_comp_doorbell_paddr = pipe_out.uc_door_bell_pa;
/* WLAN TX PIPE Handle */
ipa_ctxt->tx_pipe_handle = pipe_out.clnt_hdl;
+
+ HDD_IPA_LOG(QDF_TRACE_LEVEL_INFO,
+ "CONS DB pipe out 0x%x TX PIPE Handle 0x%x",
+ (unsigned int)pipe_out.uc_door_bell_pa,
+ ipa_ctxt->tx_pipe_handle);
HDD_IPA_LOG(QDF_TRACE_LEVEL_DEBUG,
"TX : CRBPA 0x%x, CRS %d, CERBPA 0x%x, CEDPA 0x%x,"
" CERZ %d, NB %d, CDBPAD 0x%x",
@@ -2795,10 +2796,10 @@ QDF_STATUS hdd_ipa_uc_ol_init(hdd_context_t *hdd_ctx)
}
ipa_ctxt->rx_ready_doorbell_paddr = pipe_out.uc_door_bell_pa;
ipa_ctxt->rx_pipe_handle = pipe_out.clnt_hdl;
- HDD_IPA_LOG(QDF_TRACE_LEVEL_DEBUG,
- "PROD DB pipe out 0x%x TX PIPE Handle 0x%x",
+ HDD_IPA_LOG(QDF_TRACE_LEVEL_INFO,
+ "PROD DB pipe out 0x%x RX PIPE Handle 0x%x",
(unsigned int)pipe_out.uc_door_bell_pa,
- ipa_ctxt->tx_pipe_handle);
+ ipa_ctxt->rx_pipe_handle);
HDD_IPA_LOG(QDF_TRACE_LEVEL_DEBUG,
"RX : RRBPA 0x%x, RRS %d, PDIPA 0x%x, RDY_DB_PAD 0x%x",
(unsigned int)pipe_in.u.ul.rdy_ring_base_pa,
@@ -3099,12 +3100,12 @@ static int __hdd_ipa_uc_ssr_deinit(void)
}
qdf_mutex_release(&hdd_ipa->ipa_lock);
- HDD_IPA_LOG(QDF_TRACE_LEVEL_DEBUG,
+ HDD_IPA_LOG(QDF_TRACE_LEVEL_INFO,
"%s: Disconnect TX PIPE tx_pipe_handle=0x%x",
__func__, hdd_ipa->tx_pipe_handle);
ipa_disconnect_wdi_pipe(hdd_ipa->tx_pipe_handle);
- HDD_IPA_LOG(QDF_TRACE_LEVEL_DEBUG,
+ HDD_IPA_LOG(QDF_TRACE_LEVEL_INFO,
"%s: Disconnect RX PIPE rx_pipe_handle=0x%x",
__func__, hdd_ipa->rx_pipe_handle);
ipa_disconnect_wdi_pipe(hdd_ipa->rx_pipe_handle);
@@ -4554,6 +4555,9 @@ static int hdd_ipa_setup_sys_pipe(struct hdd_ipa_priv *hdd_ipa)
" ret: %d", i, ret);
goto setup_sys_pipe_fail;
}
+ if (!hdd_ipa->sys_pipe[i].conn_hdl)
+ HDD_IPA_LOG(QDF_TRACE_LEVEL_ERROR, "Invalid conn handle sys_pipe: %d"
+ "conn handle: %d", i, hdd_ipa->sys_pipe[i].conn_hdl);
hdd_ipa->sys_pipe[i].conn_hdl_valid = 1;
}
@@ -4587,6 +4591,9 @@ static int hdd_ipa_setup_sys_pipe(struct hdd_ipa_priv *hdd_ipa)
"Failed for RX pipe: %d", ret);
goto setup_sys_pipe_fail;
}
+ if (!hdd_ipa->sys_pipe[i].conn_hdl)
+ HDD_IPA_LOG(QDF_TRACE_LEVEL_ERROR, "Invalid conn handle sys_pipe: %d"
+ "conn handle: %d", i, hdd_ipa->sys_pipe[i].conn_hdl);
hdd_ipa->sys_pipe[HDD_IPA_RX_PIPE].conn_hdl_valid = 1;
}
@@ -5959,11 +5966,11 @@ static QDF_STATUS __hdd_ipa_cleanup(hdd_context_t *hdd_ctx)
"UC Ready CB deregister fail");
hdd_ipa_uc_rt_debug_deinit(hdd_ctx);
if (true == hdd_ipa->uc_loaded) {
- HDD_IPA_LOG(QDF_TRACE_LEVEL_DEBUG,
+ HDD_IPA_LOG(QDF_TRACE_LEVEL_INFO,
"%s: Disconnect TX PIPE tx_pipe_handle=0x%x",
__func__, hdd_ipa->tx_pipe_handle);
ipa_disconnect_wdi_pipe(hdd_ipa->tx_pipe_handle);
- HDD_IPA_LOG(QDF_TRACE_LEVEL_DEBUG,
+ HDD_IPA_LOG(QDF_TRACE_LEVEL_INFO,
"%s: Disconnect RX PIPE rx_pipe_handle=0x%x",
__func__, hdd_ipa->rx_pipe_handle);
ipa_disconnect_wdi_pipe(hdd_ipa->rx_pipe_handle);