* [PATCH v3 1/2] dmaengine: Add support for per xfer specific privatedata
@ 2012-03-12 10:32 Ravi Kumar V
2012-03-12 16:29 ` Vinod Koul
0 siblings, 1 reply; 4+ messages in thread
From: Ravi Kumar V @ 2012-03-12 10:32 UTC (permalink / raw)
To: linux-arm-kernel
Add new argument to DMA SG and Interleave mode for passing
per transfer specific private data, using this it enables the
dma devices which needs to pass the parameters which changes per
each transfer.
Signed-off-by: Ravi Kumar V <kumarrav@codeaurora.org>
---
include/linux/dmaengine.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 679b349..b8f0495 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -570,7 +570,7 @@ struct dma_device {
struct dma_chan *chan,
struct scatterlist *dst_sg, unsigned int dst_nents,
struct scatterlist *src_sg, unsigned int src_nents,
- unsigned long flags);
+ unsigned long flags, void *context);
struct dma_async_tx_descriptor *(*device_prep_slave_sg)(
struct dma_chan *chan, struct scatterlist *sgl,
@@ -581,7 +581,7 @@ struct dma_device {
size_t period_len, enum dma_transfer_direction direction);
struct dma_async_tx_descriptor *(*device_prep_interleaved_dma)(
struct dma_chan *chan, struct dma_interleaved_template *xt,
- unsigned long flags);
+ unsigned long flags, void *context);
int (*device_control)(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
unsigned long arg);
--
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3 1/2] dmaengine: Add support for per xfer specific privatedata
2012-03-12 10:32 [PATCH v3 1/2] dmaengine: Add support for per xfer specific privatedata Ravi Kumar V
@ 2012-03-12 16:29 ` Vinod Koul
2012-03-14 9:18 ` Ravi Kumar V
0 siblings, 1 reply; 4+ messages in thread
From: Vinod Koul @ 2012-03-12 16:29 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, 2012-03-12 at 16:02 +0530, Ravi Kumar V wrote:
> Add new argument to DMA SG and Interleave mode for passing
> per transfer specific private data, using this it enables the
> dma devices which needs to pass the parameters which changes per
> each transfer.
>
> Signed-off-by: Ravi Kumar V <kumarrav@codeaurora.org>
> ---
> include/linux/dmaengine.h | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
> index 679b349..b8f0495 100644
> --- a/include/linux/dmaengine.h
> +++ b/include/linux/dmaengine.h
> @@ -570,7 +570,7 @@ struct dma_device {
> struct dma_chan *chan,
> struct scatterlist *dst_sg, unsigned int dst_nents,
> struct scatterlist *src_sg, unsigned int src_nents,
> - unsigned long flags);
> + unsigned long flags, void *context);
Please follow the related discussion we had. Alexandre had already
posted updated and this needs to follow.
Also this way you break the existing drivers which use this API, not
sure why you posted without fixing them?
> struct dma_async_tx_descriptor *(*device_prep_slave_sg)(
> struct dma_chan *chan, struct scatterlist *sgl,
> @@ -581,7 +581,7 @@ struct dma_device {
> size_t period_len, enum dma_transfer_direction direction);
> struct dma_async_tx_descriptor *(*device_prep_interleaved_dma)(
> struct dma_chan *chan, struct dma_interleaved_template *xt,
> - unsigned long flags);
> + unsigned long flags, void *context);
> int (*device_control)(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
> unsigned long arg);
>
--
~Vinod
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 1/2] dmaengine: Add support for per xfer specific privatedata
2012-03-12 16:29 ` Vinod Koul
@ 2012-03-14 9:18 ` Ravi Kumar V
2012-03-15 18:49 ` Ravi Kumar V
0 siblings, 1 reply; 4+ messages in thread
From: Ravi Kumar V @ 2012-03-14 9:18 UTC (permalink / raw)
To: linux-arm-kernel
On 3/12/2012 9:59 PM, Vinod Koul wrote:
> On Mon, 2012-03-12 at 16:02 +0530, Ravi Kumar V wrote:
>> Add new argument to DMA SG and Interleave mode for passing
>> per transfer specific private data, using this it enables the
>> dma devices which needs to pass the parameters which changes per
>> each transfer.
>>
>> Signed-off-by: Ravi Kumar V<kumarrav@codeaurora.org>
>> ---
>> include/linux/dmaengine.h | 4 ++--
>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
>> index 679b349..b8f0495 100644
>> --- a/include/linux/dmaengine.h
>> +++ b/include/linux/dmaengine.h
>> @@ -570,7 +570,7 @@ struct dma_device {
>> struct dma_chan *chan,
>> struct scatterlist *dst_sg, unsigned int dst_nents,
>> struct scatterlist *src_sg, unsigned int src_nents,
>> - unsigned long flags);
>> + unsigned long flags, void *context);
> Please follow the related discussion we had. Alexandre had already
> posted updated and this needs to follow.
> Also this way you break the existing drivers which use this API, not
> sure why you posted without fixing them?
>
I have gone through the discussion in
https://lkml.org/lkml/2012/2/6/300
As per my understanding
1.we need to add new transaction types DMA_SG_EXT & DMA_INTERLEAVE_EXT.
2.Add context parameter to existing API's.
3.Typecast the context parameter with architecture specific structure
there by restricting client drivers to pass only arch specific parameter.
4.Fix existing code and client drivers for using new API.
My suggestion is instead of adding context parameter in existing API's,
how it would be if we can add a new API for each DMA transaction types
available in dmaengine for passing transaction specific parameter?
so that existing clients and dma drivers will not be disturbed.
>> struct dma_async_tx_descriptor *(*device_prep_slave_sg)(
>> struct dma_chan *chan, struct scatterlist *sgl,
>> @@ -581,7 +581,7 @@ struct dma_device {
>> size_t period_len, enum dma_transfer_direction direction);
>> struct dma_async_tx_descriptor *(*device_prep_interleaved_dma)(
>> struct dma_chan *chan, struct dma_interleaved_template *xt,
>> - unsigned long flags);
>> + unsigned long flags, void *context);
>> int (*device_control)(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
>> unsigned long arg);
>>
>
>
--
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 1/2] dmaengine: Add support for per xfer specific privatedata
2012-03-14 9:18 ` Ravi Kumar V
@ 2012-03-15 18:49 ` Ravi Kumar V
0 siblings, 0 replies; 4+ messages in thread
From: Ravi Kumar V @ 2012-03-15 18:49 UTC (permalink / raw)
To: linux-arm-kernel
On 3/14/2012 2:48 PM, Ravi Kumar V wrote:
> On 3/12/2012 9:59 PM, Vinod Koul wrote:
>> On Mon, 2012-03-12 at 16:02 +0530, Ravi Kumar V wrote:
>>> Add new argument to DMA SG and Interleave mode for passing
>>> per transfer specific private data, using this it enables the
>>> dma devices which needs to pass the parameters which changes per
>>> each transfer.
>>>
>>> Signed-off-by: Ravi Kumar V<kumarrav@codeaurora.org>
>>> ---
>>> include/linux/dmaengine.h | 4 ++--
>>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
>>> index 679b349..b8f0495 100644
>>> --- a/include/linux/dmaengine.h
>>> +++ b/include/linux/dmaengine.h
>>> @@ -570,7 +570,7 @@ struct dma_device {
>>> struct dma_chan *chan,
>>> struct scatterlist *dst_sg, unsigned int dst_nents,
>>> struct scatterlist *src_sg, unsigned int src_nents,
>>> - unsigned long flags);
>>> + unsigned long flags, void *context);
>> Please follow the related discussion we had. Alexandre had already
>> posted updated and this needs to follow.
>> Also this way you break the existing drivers which use this API, not
>> sure why you posted without fixing them?
>>
I have gone through the discussion in
https://lkml.org/lkml/2012/2/6/300
As per my understanding
1.we need to add new transaction types DMA_SG_EXT & DMA_INTERLEAVE_EXT.
2.Add context parameter to existing API's.
3.Typecast the context parameter with architecture specific structure
there by restricting client drivers to pass only arch specific parameter.
4.Add inline functions as suggested by Russell
and then
5.Fix existing code and client drivers for using new API.
Hi Vinod,
I am ready to follow above steps and also suggested by Russell and
submit new patch.
Please can you confirm me so that i will start work.
My suggestion is instead of adding context parameter in existing API's,
how it would be if we can add a new API for each DMA transaction types
available in dmaengine for passing transaction specific parameter?
so that existing clients and dma drivers will not be disturbed.
Thanks
Ravi Kumar
--
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-03-15 18:49 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-12 10:32 [PATCH v3 1/2] dmaengine: Add support for per xfer specific privatedata Ravi Kumar V
2012-03-12 16:29 ` Vinod Koul
2012-03-14 9:18 ` Ravi Kumar V
2012-03-15 18:49 ` Ravi Kumar V
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).