From a1667e6019499aeccb7f8dbe87192bbcb5ef1ce8 Mon Sep 17 00:00:00 2001 From: Michael Adisumarta Date: Fri, 13 Dec 2019 12:30:21 -0800 Subject: [PATCH] msm: ipa: vote for device side through mhi for tethering use cases Specify MHI_VOTE_DEVICE flag when calling mhi-driver API: mhi_device_get_sync to make sure device side PCIE won't get to power collapse. Change-Id: Ia254d3bdbc191f80af05224df4b272921aba2d10 Signed-off-by: Michael Adisumarta --- drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c | 6 ++++-- 1 file changed, 4 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..207ab8e06e11 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c @@ -1425,7 +1425,8 @@ static int ipa_mpm_vote_unvote_pcie_clk(enum ipa_mpm_clk_vote_type vote, if (vote == CLK_ON) { result = mhi_device_get_sync( - ipa_mpm_ctx->md[probe_id].mhi_dev, MHI_VOTE_BUS); + ipa_mpm_ctx->md[probe_id].mhi_dev, + MHI_VOTE_BUS | MHI_VOTE_DEVICE); if (result) { IPA_MPM_ERR("mhi_sync_get failed for probe_id %d\n", result, probe_id); @@ -1446,7 +1447,8 @@ static int ipa_mpm_vote_unvote_pcie_clk(enum ipa_mpm_clk_vote_type vote, *is_acted = true; return 0; } - mhi_device_put(ipa_mpm_ctx->md[probe_id].mhi_dev, MHI_VOTE_BUS); + mhi_device_put(ipa_mpm_ctx->md[probe_id].mhi_dev, + MHI_VOTE_BUS | MHI_VOTE_DEVICE); IPA_MPM_DBG("probe_id %d PCIE clock off\n", probe_id); atomic_dec(&ipa_mpm_ctx->md[probe_id].clk_cnt.pcie_clk_cnt); atomic_dec(&ipa_mpm_ctx->pcie_clk_total_cnt);