From e5f9bb8d59223923dfa5133ef2b3943767ceb558 Mon Sep 17 00:00:00 2001 From: Michael Adisumarta Date: Mon, 4 Nov 2019 12:49:25 -0800 Subject: [PATCH] msm:ipa: stop UL IPA TX channel at the end of the probe Stop UL MHIP IPA TX channel at end of the probe if there is no active tethering. This will make sure no Uplink data is sent when Device side is not prepared to take data. Change-Id: Id37c0c7eb8270bdf4806265c75780951ae7394c3 Signed-off-by: Michael Adisumarta --- drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c b/drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c index 3a97943ebc84..3036dfad610f 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c @@ -2309,16 +2309,24 @@ static int ipa_mpm_mhi_probe_cb(struct mhi_device *mhi_dev, } if (ul_prod != IPA_CLIENT_MAX) { /* No teth started yet, disable UL channel */ + ipa_ep_idx = ipa3_get_ep_mapping(ul_prod); + if (ipa_ep_idx == IPA_EP_NOT_ALLOCATED) { + IPA_MPM_ERR("fail to alloc EP.\n"); + goto fail_stop_channel; + } ret = ipa3_stop_gsi_channel(ipa_ep_idx); if (ret) { IPA_MPM_ERR("MHIP Stop channel err = %d\n", ret); goto fail_stop_channel; } + ipa_mpm_change_gsi_state(probe_id, + IPA_MPM_MHIP_CHAN_UL, + GSI_STOPPED); } if (is_acted) - ipa_mpm_vote_unvote_pcie_clk(CLK_OFF, probe_id, true, - &is_acted); + ipa_mpm_vote_unvote_pcie_clk(CLK_OFF, probe_id, + true, &is_acted); break; case IPA_MPM_TETH_INPROGRESS: case IPA_MPM_TETH_CONNECTED: