diff options
author | Ravinder Konka <rkonka@codeaurora.org> | 2016-03-30 15:11:23 +0530 |
---|---|---|
committer | Jeevan Shriram <jshriram@codeaurora.org> | 2016-05-05 15:05:50 -0700 |
commit | cd9a62dfb4f6bdc4730c159b81dfc4374f8d4119 (patch) | |
tree | 09b3b3bae0abf488f55be99ae38b656ec1d45695 /drivers/platform | |
parent | 7a0338964f9138ec76d3fcc6bd9054bb3e83177a (diff) |
msm: ipa: Fix suspend bit clearing on disconnected pipe
When the USB pipe is getting disconnected there is a possibility
that suspend bit will be cleared due to resource manager. Make
a change to not to clean the suspend bit when pipe disconnection
is in progress.
Change-Id: I97ff3d53c12ed163ae5dbec184ed9445c901459e
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Sridhar Ancha <sancha@codeaurora.org>
Diffstat (limited to 'drivers/platform')
-rw-r--r-- | drivers/platform/msm/ipa/ipa_v2/ipa_utils.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/platform/msm/ipa/ipa_v2/ipa_utils.c b/drivers/platform/msm/ipa/ipa_v2/ipa_utils.c index 672568468c47..6fd9b4e61e02 100644 --- a/drivers/platform/msm/ipa/ipa_v2/ipa_utils.c +++ b/drivers/platform/msm/ipa/ipa_v2/ipa_utils.c @@ -662,11 +662,14 @@ int ipa2_resume_resource(enum ipa_rm_resource_name resource) IPADBG("%d will be resumed on connect.\n", client); if (ipa_ctx->ep[ipa_ep_idx].client == client && ipa_should_pipe_be_suspended(client)) { - if (ipa_ctx->ep[ipa_ep_idx].valid) { + spin_lock(&ipa_ctx->disconnect_lock); + if (ipa_ctx->ep[ipa_ep_idx].valid && + !ipa_ctx->ep[ipa_ep_idx].disconnect_in_progress) { memset(&suspend, 0, sizeof(suspend)); suspend.ipa_ep_suspend = false; ipa2_cfg_ep_ctrl(ipa_ep_idx, &suspend); } + spin_unlock(&ipa_ctx->disconnect_lock); } } |