From: Peter Ujfalusi <peter.ujfalusi@ti.com> To: <vkoul@kernel.org>, <robh+dt@kernel.org>, <nm@ti.com>, <ssantosh@kernel.org> Cc: <dan.j.williams@intel.com>, <dmaengine@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <grygorii.strashko@ti.com>, <lokeshvutla@ti.com>, <t-kristo@ti.com>, <tony@atomide.com>, <j-keerthy@ti.com>, <vigneshr@ti.com> Subject: [PATCH v7 05/12] dmaengine: Add support for reporting DMA cached data amount Date: Mon, 9 Dec 2019 11:43:25 +0200 [thread overview] Message-ID: <20191209094332.4047-6-peter.ujfalusi@ti.com> (raw) In-Reply-To: <20191209094332.4047-1-peter.ujfalusi@ti.com> A DMA hardware can have big cache or FIFO and the amount of data sitting in the DMA fabric can be an interest for the clients. For example in audio we want to know the delay in the data flow and in case the DMA have significantly large FIFO/cache, it can affect the latenc/delay Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: Tero Kristo <t-kristo@ti.com> --- drivers/dma/dmaengine.h | 8 ++++++++ include/linux/dmaengine.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/drivers/dma/dmaengine.h b/drivers/dma/dmaengine.h index 501c0b063f85..b0b97475707a 100644 --- a/drivers/dma/dmaengine.h +++ b/drivers/dma/dmaengine.h @@ -77,6 +77,7 @@ static inline enum dma_status dma_cookie_status(struct dma_chan *chan, state->last = complete; state->used = used; state->residue = 0; + state->in_flight_bytes = 0; } return dma_async_is_complete(cookie, complete, used); } @@ -87,6 +88,13 @@ static inline void dma_set_residue(struct dma_tx_state *state, u32 residue) state->residue = residue; } +static inline void dma_set_in_flight_bytes(struct dma_tx_state *state, + u32 in_flight_bytes) +{ + if (state) + state->in_flight_bytes = in_flight_bytes; +} + struct dmaengine_desc_callback { dma_async_tx_callback callback; dma_async_tx_callback_result callback_result; diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 0e8b426bbde9..c4c5219030a6 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -682,11 +682,13 @@ static inline struct dma_async_tx_descriptor *txd_next(struct dma_async_tx_descr * @residue: the remaining number of bytes left to transmit * on the selected transfer for states DMA_IN_PROGRESS and * DMA_PAUSED if this is implemented in the driver, else 0 + * @in_flight_bytes: amount of data in bytes cached by the DMA. */ struct dma_tx_state { dma_cookie_t last; dma_cookie_t used; u32 residue; + u32 in_flight_bytes; }; /** -- Peter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
WARNING: multiple messages have this Message-ID (diff)
From: Peter Ujfalusi <peter.ujfalusi@ti.com> To: <vkoul@kernel.org>, <robh+dt@kernel.org>, <nm@ti.com>, <ssantosh@kernel.org> Cc: devicetree@vger.kernel.org, grygorii.strashko@ti.com, vigneshr@ti.com, lokeshvutla@ti.com, j-keerthy@ti.com, linux-kernel@vger.kernel.org, t-kristo@ti.com, tony@atomide.com, dmaengine@vger.kernel.org, dan.j.williams@intel.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH v7 05/12] dmaengine: Add support for reporting DMA cached data amount Date: Mon, 9 Dec 2019 11:43:25 +0200 [thread overview] Message-ID: <20191209094332.4047-6-peter.ujfalusi@ti.com> (raw) In-Reply-To: <20191209094332.4047-1-peter.ujfalusi@ti.com> A DMA hardware can have big cache or FIFO and the amount of data sitting in the DMA fabric can be an interest for the clients. For example in audio we want to know the delay in the data flow and in case the DMA have significantly large FIFO/cache, it can affect the latenc/delay Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: Tero Kristo <t-kristo@ti.com> --- drivers/dma/dmaengine.h | 8 ++++++++ include/linux/dmaengine.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/drivers/dma/dmaengine.h b/drivers/dma/dmaengine.h index 501c0b063f85..b0b97475707a 100644 --- a/drivers/dma/dmaengine.h +++ b/drivers/dma/dmaengine.h @@ -77,6 +77,7 @@ static inline enum dma_status dma_cookie_status(struct dma_chan *chan, state->last = complete; state->used = used; state->residue = 0; + state->in_flight_bytes = 0; } return dma_async_is_complete(cookie, complete, used); } @@ -87,6 +88,13 @@ static inline void dma_set_residue(struct dma_tx_state *state, u32 residue) state->residue = residue; } +static inline void dma_set_in_flight_bytes(struct dma_tx_state *state, + u32 in_flight_bytes) +{ + if (state) + state->in_flight_bytes = in_flight_bytes; +} + struct dmaengine_desc_callback { dma_async_tx_callback callback; dma_async_tx_callback_result callback_result; diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 0e8b426bbde9..c4c5219030a6 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -682,11 +682,13 @@ static inline struct dma_async_tx_descriptor *txd_next(struct dma_async_tx_descr * @residue: the remaining number of bytes left to transmit * on the selected transfer for states DMA_IN_PROGRESS and * DMA_PAUSED if this is implemented in the driver, else 0 + * @in_flight_bytes: amount of data in bytes cached by the DMA. */ struct dma_tx_state { dma_cookie_t last; dma_cookie_t used; u32 residue; + u32 in_flight_bytes; }; /** -- Peter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-12-09 9:44 UTC|newest] Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-09 9:43 [PATCH v7 00/12] dmaengine/soc: Add Texas Instruments UDMA support Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-09 9:43 ` [PATCH v7 01/12] bindings: soc: ti: add documentation for k3 ringacc Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-09 9:43 ` [PATCH v7 02/12] soc: ti: k3: add navss ringacc driver Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-09 9:43 ` [PATCH v7 03/12] dmaengine: doc: Add sections for per descriptor metadata support Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-20 8:28 ` Vinod Koul 2019-12-20 8:28 ` Vinod Koul 2019-12-20 9:52 ` Peter Ujfalusi 2019-12-20 9:52 ` Peter Ujfalusi 2019-12-20 10:14 ` Vinod Koul 2019-12-20 10:14 ` Vinod Koul 2019-12-09 9:43 ` [PATCH v7 04/12] dmaengine: Add metadata_ops for dma_async_tx_descriptor Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-20 8:32 ` Vinod Koul 2019-12-20 8:32 ` Vinod Koul 2019-12-20 8:48 ` Peter Ujfalusi 2019-12-20 8:48 ` Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi [this message] 2019-12-09 9:43 ` [PATCH v7 05/12] dmaengine: Add support for reporting DMA cached data amount Peter Ujfalusi 2019-12-20 8:37 ` Vinod Koul 2019-12-20 8:37 ` Vinod Koul 2019-12-20 8:49 ` Peter Ujfalusi 2019-12-20 8:49 ` Peter Ujfalusi 2019-12-20 9:57 ` Vinod Koul 2019-12-20 9:57 ` Vinod Koul 2019-12-20 10:13 ` Peter Ujfalusi 2019-12-20 10:13 ` Peter Ujfalusi 2019-12-09 9:43 ` [PATCH v7 06/12] dmaengine: ti: Add cppi5 header for K3 NAVSS/UDMA Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-20 9:54 ` Vinod Koul 2019-12-20 9:54 ` Vinod Koul 2019-12-20 10:42 ` Peter Ujfalusi 2019-12-20 10:42 ` Peter Ujfalusi 2019-12-23 7:11 ` Peter Ujfalusi 2019-12-23 7:11 ` Peter Ujfalusi 2019-12-09 9:43 ` [PATCH v7 07/12] dmaengine: ti: k3 PSI-L remote endpoint configuration Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-09 9:43 ` [PATCH v7 08/12] dt-bindings: dma: ti: Add document for K3 UDMA Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-23 6:53 ` Vinod Koul 2019-12-23 6:53 ` Vinod Koul 2019-12-09 9:43 ` [PATCH v7 09/12] dmaengine: ti: New driver " Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-23 7:34 ` Vinod Koul 2019-12-23 7:34 ` Vinod Koul 2019-12-23 8:59 ` Peter Ujfalusi 2019-12-23 8:59 ` Peter Ujfalusi 2019-12-23 11:26 ` Vinod Koul 2019-12-23 11:26 ` Vinod Koul 2019-12-09 9:43 ` [PATCH v7 10/12] dmaengine: ti: k3-udma: Add glue layer for non DMAengine users Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-09 9:43 ` [PATCH v7 11/12] firmware: ti_sci: rm: Add support for tx_tdtype parameter for tx channel Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-11 10:24 ` Tero Kristo 2019-12-11 10:24 ` Tero Kristo 2019-12-09 9:43 ` [PATCH v7 12/12] dmaengine: ti: k3-udma: Wait for peer teardown completion if supported Peter Ujfalusi 2019-12-09 9:43 ` Peter Ujfalusi 2019-12-11 10:43 ` [PATCH v7 00/12] dmaengine/soc: Add Texas Instruments UDMA support Keerthy 2019-12-11 10:43 ` Keerthy 2019-12-12 8:46 ` Peter Ujfalusi 2019-12-12 8:46 ` Peter Ujfalusi 2019-12-12 10:55 ` Tero Kristo 2019-12-12 10:55 ` Tero Kristo 2019-12-12 10:57 ` Tero Kristo 2019-12-12 10:57 ` Tero Kristo 2019-12-16 10:05 ` Peter Ujfalusi 2019-12-16 10:05 ` Peter Ujfalusi 2019-12-12 18:01 ` Grygorii Strashko 2019-12-12 18:01 ` Grygorii Strashko
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=20191209094332.4047-6-peter.ujfalusi@ti.com \ --to=peter.ujfalusi@ti.com \ --cc=dan.j.williams@intel.com \ --cc=devicetree@vger.kernel.org \ --cc=dmaengine@vger.kernel.org \ --cc=grygorii.strashko@ti.com \ --cc=j-keerthy@ti.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lokeshvutla@ti.com \ --cc=nm@ti.com \ --cc=robh+dt@kernel.org \ --cc=ssantosh@kernel.org \ --cc=t-kristo@ti.com \ --cc=tony@atomide.com \ --cc=vigneshr@ti.com \ --cc=vkoul@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: linkBe 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.