summaryrefslogtreecommitdiff
path: root/drivers/platform
diff options
context:
space:
mode:
authorRavinder Konka <rkonka@codeaurora.org>2016-03-30 15:11:23 +0530
committerJeevan Shriram <jshriram@codeaurora.org>2016-05-05 15:05:50 -0700
commitcd9a62dfb4f6bdc4730c159b81dfc4374f8d4119 (patch)
tree09b3b3bae0abf488f55be99ae38b656ec1d45695 /drivers/platform
parent7a0338964f9138ec76d3fcc6bd9054bb3e83177a (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.c5
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);
}
}