Re: [PATCH 09/11] bus: mhi: host: Get total descriptor count

Manivannan Sadhasivam <[email protected]>
Newsgroups dev.linux.lists.mhi,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel
Message-ID <xggno3wbicx3kxxqyjnpqyfiesrit4osvud7bdlpd6wcnbdxtk@fbijrfhiitve>
On Thu, Dec 11, 2025 at 01:37:41PM +0530, Sivareddy Surasani wrote:
> From: Vivek Pernamitta <[email protected]>
> 
> Introduce a new API to retrieve the length of a transfer ring.
> This API allows clients to query the ring length.
> 

What about mhi_get_free_desc_count()?

- Mani

> Signed-off-by: Vivek Pernamitta <[email protected]>
> Signed-off-by: Sivareddy Surasani <[email protected]>
> ---
>  drivers/bus/mhi/host/main.c | 11 +++++++++++
>  include/linux/mhi.h         |  9 +++++++++
>  2 files changed, 20 insertions(+)
> 
> diff --git a/drivers/bus/mhi/host/main.c b/drivers/bus/mhi/host/main.c
> index 9772fb13400c..6be15297829d 100644
> --- a/drivers/bus/mhi/host/main.c
> +++ b/drivers/bus/mhi/host/main.c
> @@ -345,6 +345,17 @@ int mhi_get_free_desc_count(struct mhi_device *mhi_dev,
>  }
>  EXPORT_SYMBOL_GPL(mhi_get_free_desc_count);
>  
> +int mhi_get_total_descriptors(struct mhi_device *mhi_dev,
> +			      enum dma_data_direction dir)
> +{
> +	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 tre_ring->elements;
> +}
> +EXPORT_SYMBOL(mhi_get_total_descriptors);
> +
>  void mhi_notify(struct mhi_device *mhi_dev, enum mhi_callback cb_reason)
>  {
>  	struct mhi_driver *mhi_drv;
> diff --git a/include/linux/mhi.h b/include/linux/mhi.h
> index 66fd83bed306..013bc2d82196 100644
> --- a/include/linux/mhi.h
> +++ b/include/linux/mhi.h
> @@ -620,6 +620,15 @@ void mhi_notify(struct mhi_device *mhi_dev, enum mhi_callback cb_reason);
>  int mhi_get_free_desc_count(struct mhi_device *mhi_dev,
>  				enum dma_data_direction dir);
>  
> +/**
> + * mhi_get_total_descriptors - Get total transfer ring length
> + * Get # of TD available to queue buffers
> + * @mhi_dev: Device associated with the channels
> + * @dir: Direction of the channel
> + */
> +int mhi_get_total_descriptors(struct mhi_device *mhi_dev,
> +			      enum dma_data_direction dir);
> +
>  /**
>   * mhi_prepare_for_power_up - Do pre-initialization before power up.
>   *                            This is optional, call this before power up if
> 
> -- 
> 2.34.1
> 

-- 
மணிவண்ணன் சதாசிவம்
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.