msm: mhi_dev: Fix trigger callback sequence
MHI device receives an interrupt once a start command is
to be processed and holds a lock. Since this lock is already
held remove holding the lock in the trigger callback as this
can lead to a deadlock.
Change-Id: Ib02273c1844a453498331be5c6021d1e912ee5da
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
diff --git a/drivers/platform/msm/mhi_dev/mhi.c b/drivers/platform/msm/mhi_dev/mhi.c
index c0c5357..64abf7e 100644
--- a/drivers/platform/msm/mhi_dev/mhi.c
+++ b/drivers/platform/msm/mhi_dev/mhi.c
@@ -825,16 +825,14 @@
static void mhi_dev_trigger_cb(void)
{
struct mhi_dev_ready_cb_info *info;
- uint32_t state_data;
+ enum mhi_ctrl_info state_data;
- mutex_lock(&mhi_ctx->mhi_lock);
list_for_each_entry(info, &mhi_ctx->client_cb_list, list)
if (info->cb) {
mhi_ctrl_state_info(&state_data);
info->cb_data.ctrl_info = state_data;
info->cb(&info->cb_data);
}
- mutex_unlock(&mhi_ctx->mhi_lock);
}
int mhi_dev_trigger_hw_acc_wakeup(struct mhi_dev *mhi)