diff options
author | Tony Truong <truong@codeaurora.org> | 2015-11-10 17:28:42 -0800 |
---|---|---|
committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 21:24:46 -0700 |
commit | dd91a9a03a6e592ccaa774f90a43d93a84cce0ad (patch) | |
tree | 44db7bcc357fc9dbe2dc5f1bd03f158b78c7ffac /drivers | |
parent | d3d1144ee507880a2325f13615dc32a2f599a202 (diff) |
mhi: core: Reorder channel initialization sequence
Enable the local bounce buffer list before the device
channel initialization sequence.
Change-Id: Ia87698dc83807727f6897356bf9b23f123c53851
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
Signed-off-by: Tony Truong <truong@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/platform/msm/mhi/mhi_main.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/platform/msm/mhi/mhi_main.c b/drivers/platform/msm/mhi/mhi_main.c index 4ea80fcf4d0e..099b7b19c3af 100644 --- a/drivers/platform/msm/mhi/mhi_main.c +++ b/drivers/platform/msm/mhi/mhi_main.c @@ -293,6 +293,13 @@ enum MHI_STATUS mhi_open_channel(struct mhi_client_handle *client_handle) chan, mhi_dev_ctxt->dev_exec_env); return MHI_STATUS_DEVICE_NOT_READY; } + r = populate_tre_ring(client_handle); + if (r) { + mhi_log(MHI_MSG_ERROR, + "Failed to initialize tre ring chan %d ret %d\n", + chan, r); + return r; + } client_handle->event_ring_index = mhi_dev_ctxt->dev_space.ring_ctxt. cc_list[chan].mhi_event_ring_index; @@ -302,14 +309,7 @@ enum MHI_STATUS mhi_open_channel(struct mhi_client_handle *client_handle) mhi_log(MHI_MSG_ERROR, "Failed to initialize bb ctxt chan %d ret %d\n", chan, r); - return r; - } - r = populate_tre_ring(client_handle); - if (r) { - mhi_log(MHI_MSG_ERROR, - "Failed to initialize tre ring chan %d ret %d\n", - chan, r); - return r; + return MHI_STATUS_ERROR; } client_handle->msi_vec = @@ -423,6 +423,7 @@ void mhi_close_channel(struct mhi_client_handle *client_handle) } mhi_log(MHI_MSG_INFO, "Freeing ring for chan 0x%x\n", chan); + free_tre_ring(client_handle); mhi_log(MHI_MSG_INFO, "Chan 0x%x confirmed closed.\n", chan); client_handle->chan_status = 0; } |