Hi Loic,

On 10/16/20 2:20 AM, Loic Poulain wrote:
This function can be used by client driver to determine whether it's
possible to queue new elements in a channel ring.

Signed-off-by: Loic Poulain <loic.poul...@linaro.org>
[..]
+static inline bool mhi_is_ring_full(struct mhi_controller *mhi_cntrl,
+                                   struct mhi_ring *ring)
  {
        void *tmp = ring->wp + ring->el_size;
@@ -1173,6 +1173,17 @@ int mhi_queue_buf(struct mhi_device *mhi_dev, enum dma_data_direction dir,
  }
  EXPORT_SYMBOL_GPL(mhi_queue_buf);
+bool mhi_queue_is_full(struct mhi_device *mhi_dev, enum dma_data_direction dir)
+{
+       struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl;
+       struct mhi_chan *mhi_chan = (dir == DMA_TO_DEVICE) ?
+                                       mhi_dev->ul_chan : mhi_dev->dl_chan;
+       struct mhi_ring *tre_ring = &mhi_chan->tre_ring;
+
+       return mhi_is_ring_full(mhi_cntrl, tre_ring);
+}
+EXPORT_SYMBOL_GPL(mhi_queue_is_full);

i was wondering if you can make use of mhi_get_free_desc() API (pushed as part of MHI UCI - User Control Interface driver) here?

Thanks,
Hemant
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

Reply via email to