summaryrefslogtreecommitdiff
path: root/drivers/platform/msm/ipa
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-06-27 04:28:15 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-06-27 04:28:14 -0700
commit2b18fcd3c756fbc8f6ca36353cff259197a3b5f4 (patch)
tree91fd72ccff89cd1d71afe8bda124df6c23650918 /drivers/platform/msm/ipa
parent29a036e74e70a5054ff2077d3f5d1b95377b5c70 (diff)
parent7d7714eae2d106d27de361a1fe2030d6d975031d (diff)
Merge "msm: ipa3: Ring IPA MHI event ring doorbell on channel start"
Diffstat (limited to 'drivers/platform/msm/ipa')
-rw-r--r--drivers/platform/msm/ipa/ipa_v3/ipa_mhi.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_mhi.c b/drivers/platform/msm/ipa/ipa_v3/ipa_mhi.c
index 9e2ffe70170c..cd027c28e597 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_mhi.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_mhi.c
@@ -255,6 +255,24 @@ static int ipa_mhi_start_gsi_channel(enum ipa_client_type client,
ep->gsi_evt_ring_hdl = *params->cached_gsi_evt_ring_hdl;
}
+ if (params->ev_ctx_host->wp == params->ev_ctx_host->rbase) {
+ IPA_MHI_ERR("event ring wp is not updated. base=wp=0x%llx\n",
+ params->ev_ctx_host->wp);
+ goto fail_alloc_ch;
+ return res;
+ }
+
+ IPA_MHI_DBG("Ring event db: evt_ring_hdl=%lu host_wp=0x%llx\n",
+ ep->gsi_evt_ring_hdl, params->ev_ctx_host->wp);
+ res = gsi_ring_evt_ring_db(ep->gsi_evt_ring_hdl,
+ params->ev_ctx_host->wp);
+ if (res) {
+ IPA_MHI_ERR("fail to ring evt ring db %d. hdl=%lu wp=0x%llx\n",
+ res, ep->gsi_evt_ring_hdl, params->ev_ctx_host->wp);
+ goto fail_alloc_ch;
+ return res;
+ }
+
memset(&ch_props, 0, sizeof(ch_props));
ch_props.prot = GSI_CHAN_PROT_MHI;
ch_props.dir = IPA_CLIENT_IS_PROD(client) ?