diff options
| author | Sravan Kumar Kairam <sgoud@codeaurora.org> | 2017-03-17 20:00:43 +0530 |
|---|---|---|
| committer | Sandeep Puligilla <spuligil@codeaurora.org> | 2017-03-20 12:38:53 -0700 |
| commit | fb9f6f6a62de99decbb69f60c651d6531ffeaab8 (patch) | |
| tree | 1154fd90388cff69d50d9db8f89e9bb90c7e3287 | |
| parent | ae5f83d23a153f43ac1ca2bbdd2f33ebf742a535 (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.c | 31 |
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); |
