From 9d56022bb622889e298ac3a0272bfa3b3010f7d5 Mon Sep 17 00:00:00 2001 From: Amir Levy Date: Sun, 25 Jun 2017 10:06:14 +0300 Subject: [PATCH] msm: ipa3: remove delay from AP if QMI fails In case of failure to send QMI message to modem remove the delay from AP since modem is probably down (SSR\reboot). Change-Id: Iae4d5162d39cd05f5c50d75087ec90dfe04a6c43 Signed-off-by: Amir Levy --- drivers/platform/msm/ipa/ipa_v3/ipa_client.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_client.c b/drivers/platform/msm/ipa/ipa_v3/ipa_client.c index e349ade46075..bc6622d4725b 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa_client.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa_client.c @@ -1668,8 +1668,21 @@ static int ipa3_stop_ul_chan_with_data_drain(u32 qmi_req_id, if (should_force_clear) { result = ipa3_enable_force_clear(qmi_req_id, false, source_pipe_bitmask); - if (result) - goto exit; + if (result) { + struct ipahal_ep_cfg_ctrl_scnd ep_ctrl_scnd = { 0 }; + + /* + * assuming here modem SSR\shutdown, AP can remove + * the delay in this case + */ + IPAERR( + "failed to force clear %d, remove delay from SCND reg\n" + , result); + ep_ctrl_scnd.endp_delay = false; + ipahal_write_reg_n_fields( + IPA_ENDP_INIT_CTRL_SCND_n, clnt_hdl, + &ep_ctrl_scnd); + } } /* with force clear, wait for emptiness */ for (i = 0; i < IPA_POLL_FOR_EMPTINESS_NUM; i++) {