From 0f889f7e46e6451f82efe66d599fee7cb8acf971 Mon Sep 17 00:00:00 2001 From: Sujeev Dias Date: Mon, 29 Aug 2016 18:56:30 -0700 Subject: [PATCH] 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 --- drivers/platform/msm/mhi/mhi_ring_ops.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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);