summaryrefslogtreecommitdiff
path: root/drivers/platform
diff options
context:
space:
mode:
authorSujeev Dias <sdias@codeaurora.org>2016-08-29 18:56:30 -0700
committerSujeev Dias <sdias@codeaurora.org>2017-02-22 13:12:22 -0800
commit0f889f7e46e6451f82efe66d599fee7cb8acf971 (patch)
treebd7f14f857934f4183f25c8d6cc1a1236dcaf6fa /drivers/platform
parent3d25629c67df204e768d90c047eebc0ae0793239 (diff)
msm: mhi: Check bb ring and transfer ring when checking for space
When checking for available spaces, check available spaces on both bounce buffer ring and transfer ring and return min. Change-Id: I9208b46c32821de3f5d9e3d828087d7bc29b9546 CRs-Fixed: 1055681 Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/msm/mhi/mhi_ring_ops.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/platform/msm/mhi/mhi_ring_ops.c b/drivers/platform/msm/mhi/mhi_ring_ops.c
index 7063053ca841..07d0098a1b61 100644
--- a/drivers/platform/msm/mhi/mhi_ring_ops.c
+++ b/drivers/platform/msm/mhi/mhi_ring_ops.c
@@ -114,6 +114,7 @@ int mhi_get_free_desc(struct mhi_client_handle *client_handle)
{
u32 chan;
struct mhi_device_ctxt *ctxt;
+ int bb_ring, ch_ring;
if (!client_handle || MHI_HANDLE_MAGIC != client_handle->magic ||
!client_handle->mhi_dev_ctxt)
@@ -121,7 +122,10 @@ int mhi_get_free_desc(struct mhi_client_handle *client_handle)
ctxt = client_handle->mhi_dev_ctxt;
chan = client_handle->chan_info.chan_nr;
- return get_nr_avail_ring_elements(&ctxt->mhi_local_chan_ctxt[chan]);
+ bb_ring = get_nr_avail_ring_elements(&ctxt->chan_bb_list[chan]);
+ ch_ring = get_nr_avail_ring_elements(&ctxt->mhi_local_chan_ctxt[chan]);
+
+ return min(bb_ring, ch_ring);
}
EXPORT_SYMBOL(mhi_get_free_desc);