All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hemant Kumar <hemantk@codeaurora.org>
To: manivannan.sadhasivam@linaro.org, gregkh@linuxfoundation.org
Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
	jhugo@codeaurora.org, bbhatt@codeaurora.org,
	loic.poulain@linaro.org, netdev@vger.kernel.org,
	Hemant Kumar <hemantk@codeaurora.org>
Subject: [PATCH v13 1/4] bus: mhi: core: Add helper API to return number of free TREs
Date: Fri, 27 Nov 2020 19:26:03 -0800	[thread overview]
Message-ID: <1606533966-22821-2-git-send-email-hemantk@codeaurora.org> (raw)
In-Reply-To: <1606533966-22821-1-git-send-email-hemantk@codeaurora.org>

Introduce mhi_get_free_desc_count() API to return number
of TREs available to queue buffer. MHI clients can use this
API to know before hand if ring is full without calling queue
API.

Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Reviewed-by: Jeffrey Hugo <jhugo@codeaurora.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
---
 drivers/bus/mhi/core/main.c | 12 ++++++++++++
 include/linux/mhi.h         |  9 +++++++++
 2 files changed, 21 insertions(+)

diff --git a/drivers/bus/mhi/core/main.c b/drivers/bus/mhi/core/main.c
index 4eb93d8..defd579a 100644
--- a/drivers/bus/mhi/core/main.c
+++ b/drivers/bus/mhi/core/main.c
@@ -260,6 +260,18 @@ int mhi_destroy_device(struct device *dev, void *data)
 	return 0;
 }
 
+int mhi_get_free_desc_count(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 get_nr_avail_ring_elements(mhi_cntrl, tre_ring);
+}
+EXPORT_SYMBOL_GPL(mhi_get_free_desc_count);
+
 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 d31efcf..b3bc966 100644
--- a/include/linux/mhi.h
+++ b/include/linux/mhi.h
@@ -597,6 +597,15 @@ void mhi_set_mhi_state(struct mhi_controller *mhi_cntrl,
 void mhi_notify(struct mhi_device *mhi_dev, enum mhi_callback cb_reason);
 
 /**
+ * mhi_get_free_desc_count - Get 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_free_desc_count(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
  *                            the controller does not want bus framework to
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


  reply	other threads:[~2020-11-28  3:40 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-28  3:26 [PATCH v13 0/4] userspace MHI client interface driver Hemant Kumar
2020-11-28  3:26 ` Hemant Kumar [this message]
2020-11-28  3:26 ` [PATCH v13 2/4] bus: mhi: core: Move MHI_MAX_MTU to external header file Hemant Kumar
2020-11-28  3:26 ` [PATCH v13 3/4] docs: Add documentation for userspace client interface Hemant Kumar
2020-11-28  3:26 ` [PATCH v13 4/4] bus: mhi: Add userspace client interface driver Hemant Kumar
2020-11-28  6:11   ` Manivannan Sadhasivam
2020-12-01  1:08     ` Hemant Kumar
2020-11-30 18:22   ` Loic Poulain
2020-12-01  1:16     ` Hemant Kumar
2020-12-01 17:36       ` Loic Poulain
2020-12-01 17:37         ` Jeffrey Hugo
2020-12-01 17:52           ` Loic Poulain
2020-12-01 17:51             ` Jeffrey Hugo
2020-12-01 18:05               ` Loic Poulain
2020-12-01 18:04                 ` Jeffrey Hugo
2020-12-01 21:59                   ` Hemant Kumar
2020-12-01 19:29 ` [PATCH v13 0/4] userspace MHI " Jakub Kicinski
2020-12-01 19:40   ` Jeffrey Hugo
2020-12-01 20:03     ` Jakub Kicinski
2020-12-01 20:48       ` Jeffrey Hugo
2020-12-02  2:55         ` Jakub Kicinski
2020-12-02  4:59           ` Jeffrey Hugo
2020-12-06  8:33             ` Leon Romanovsky
2020-12-08 16:59               ` Manivannan Sadhasivam
2020-12-08 19:16                 ` Leon Romanovsky
2020-12-02  4:15       ` Manivannan Sadhasivam
2020-12-02  4:38   ` Bjorn Andersson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1606533966-22821-2-git-send-email-hemantk@codeaurora.org \
    --to=hemantk@codeaurora.org \
    --cc=bbhatt@codeaurora.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jhugo@codeaurora.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=loic.poulain@linaro.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.