diff mbox

[2/2] dmaengine: add TODO items for future work on dma drivers

Message ID 1306323570-11133-3-git-send-email-vinod.koul@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Vinod Koul May 25, 2011, 11:39 a.m. UTC
From: Vinod Koul <vinod.koul@intel.com>

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
---
 drivers/dma/TODO |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
 create mode 100644 drivers/dma/TODO

Comments

Vinod Koul May 25, 2011, 12:15 p.m. UTC | #1
On Wed, 2011-05-25 at 14:39 +0200, Per Forlin wrote:
> On 25 May 2011 13:39, Koul, Vinod <vinod.koul@intel.com> wrote:
> > From: Vinod Koul <vinod.koul@intel.com>
> >
> > Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> > ---
> >  drivers/dma/TODO |   12 ++++++++++++
> >  1 files changed, 12 insertions(+), 0 deletions(-)
> >  create mode 100644 drivers/dma/TODO
> >
> > diff --git a/drivers/dma/TODO b/drivers/dma/TODO
> > new file mode 100644
> > index 0000000..b67d184
> > --- /dev/null
> > +++ b/drivers/dma/TODO
> > @@ -0,0 +1,12 @@
> > +TODO for slave dma
> > +
> > +1. Move remaining drivers to use new slave interface
> > +2. Remove old slave pointer machansim
> > +3. Make issue_pending to start the transaction in below drivers
> > +       - mpc512x_dma
> > +       - imx-dma
> > +       - imx-sdma
> > +       - mxs-dma.c
> > +       - dw_dmac
> > +       - intel_mid_dma
> > +       - ste_dma40
> ste_dma40 already does this. At least is does so in 2.6.39. I may not
> be up to date of what is merged for 2.6.40.
Yes, I was supposed to drop this, but forgot before sending.
I will update this before I apply if no other updates are required
Vinod Koul May 25, 2011, 12:23 p.m. UTC | #2
On Wed, 2011-05-25 at 14:47 +0200, Linus Walleij wrote:
> 2011/5/25 Koul, Vinod <vinod.koul@intel.com>:
> 
> > From: Vinod Koul <vinod.koul@intel.com>
> >
> > Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> > ---
> >  drivers/dma/TODO |   12 ++++++++++++
> >  1 files changed, 12 insertions(+), 0 deletions(-)
> >  create mode 100644 drivers/dma/TODO
> >
> > diff --git a/drivers/dma/TODO b/drivers/dma/TODO
> > new file mode 100644
> > index 0000000..b67d184
> > --- /dev/null
> > +++ b/drivers/dma/TODO
> > @@ -0,0 +1,12 @@
> > +TODO for slave dma
> > +
> > +1. Move remaining drivers to use new slave interface
> 
> Here is the hitlist:
> - find arch/arm/ |grep -e "dma.c$"
> - arch/arm/mach-s3c64xx/dma.c need to be merged into
>   drivers/dma/amba-pl08x.c - make adjustments for local
>   deviations
> 
> Or were you mainly talking about the drivers already in
> drivers/dma?
I was talking about current drivers still using old pointer mechanism
for passing slave info.

And yes this should be in list too, and this is where I may need your
help :) I will try to compile the list for drivers which should be moved
Per Forlin May 25, 2011, 12:39 p.m. UTC | #3
On 25 May 2011 13:39, Koul, Vinod <vinod.koul@intel.com> wrote:
> From: Vinod Koul <vinod.koul@intel.com>
>
> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> ---
>  drivers/dma/TODO |   12 ++++++++++++
>  1 files changed, 12 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/dma/TODO
>
> diff --git a/drivers/dma/TODO b/drivers/dma/TODO
> new file mode 100644
> index 0000000..b67d184
> --- /dev/null
> +++ b/drivers/dma/TODO
> @@ -0,0 +1,12 @@
> +TODO for slave dma
> +
> +1. Move remaining drivers to use new slave interface
> +2. Remove old slave pointer machansim
> +3. Make issue_pending to start the transaction in below drivers
> +       - mpc512x_dma
> +       - imx-dma
> +       - imx-sdma
> +       - mxs-dma.c
> +       - dw_dmac
> +       - intel_mid_dma
> +       - ste_dma40
ste_dma40 already does this. At least is does so in 2.6.39. I may not
be up to date of what is merged for 2.6.40.

/Per
Linus Walleij May 25, 2011, 12:47 p.m. UTC | #4
2011/5/25 Koul, Vinod <vinod.koul@intel.com>:

> From: Vinod Koul <vinod.koul@intel.com>
>
> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> ---
>  drivers/dma/TODO |   12 ++++++++++++
>  1 files changed, 12 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/dma/TODO
>
> diff --git a/drivers/dma/TODO b/drivers/dma/TODO
> new file mode 100644
> index 0000000..b67d184
> --- /dev/null
> +++ b/drivers/dma/TODO
> @@ -0,0 +1,12 @@
> +TODO for slave dma
> +
> +1. Move remaining drivers to use new slave interface

Here is the hitlist:
- find arch/arm/ |grep -e "dma.c$"
- arch/arm/mach-s3c64xx/dma.c need to be merged into
  drivers/dma/amba-pl08x.c - make adjustments for local
  deviations

Or were you mainly talking about the drivers already in
drivers/dma?

Linus Walleij
Per Forlin May 25, 2011, 12:54 p.m. UTC | #5
On 25 May 2011 14:39, Per Forlin <per.forlin@linaro.org> wrote:
> On 25 May 2011 13:39, Koul, Vinod <vinod.koul@intel.com> wrote:
>> From: Vinod Koul <vinod.koul@intel.com>
>>
>> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
>> ---
>>  drivers/dma/TODO |   12 ++++++++++++
>>  1 files changed, 12 insertions(+), 0 deletions(-)
>>  create mode 100644 drivers/dma/TODO
>>
>> diff --git a/drivers/dma/TODO b/drivers/dma/TODO
>> new file mode 100644
>> index 0000000..b67d184
>> --- /dev/null
>> +++ b/drivers/dma/TODO
>> @@ -0,0 +1,12 @@
>> +TODO for slave dma
>> +
>> +1. Move remaining drivers to use new slave interface
>> +2. Remove old slave pointer machansim
>> +3. Make issue_pending to start the transaction in below drivers
>> +       - mpc512x_dma
>> +       - imx-dma
>> +       - imx-sdma
>> +       - mxs-dma.c
>> +       - dw_dmac
>> +       - intel_mid_dma
>> +       - ste_dma40
> ste_dma40 already does this. At least is does so in 2.6.39. I may not
> be up to date of what is merged for 2.6.40.
>
I looked at the code once more and ste_dam40 should be on this list :)
ste_dm40 only treats issue_pending accordingly if the DMA driver is in
idle. If the dma is active the desc:s submitted from submit() will be
started later on from dma-irq-function. The dma-irq-function simply
checks if there are pending desc are start them if any. I will fix a
patch for this.

/Per
Russell King - ARM Linux May 26, 2011, 7:36 a.m. UTC | #6
On Wed, May 25, 2011 at 05:09:30PM +0530, Koul, Vinod wrote:
> +1. Move remaining drivers to use new slave interface
> +2. Remove old slave pointer machansim
> +3. Make issue_pending to start the transaction in below drivers
> +	- mpc512x_dma
> +	- imx-dma
> +	- imx-sdma
> +	- mxs-dma.c
> +	- dw_dmac
> +	- intel_mid_dma
> +	- ste_dma40

I'd suggest adding some more to this:

4. Remove dma_slave_config's dma direction.

It's pointless that dma_slave_config carries the DMA direction (to/from
device) and the prepare function does too.  It leads to DMA engine drivers
having to verify that the two match, and DMA engine users having to issue
two calls every time they change direction.

Instead, lets specify that dma_slave_config carries the _device_ side
parameters, which are selected according to the direction given to the
prepare function.  The memory-side parameters should be selected by the
DMA engine driver according to its knowledge of the system.

This is sensible as M2M transfers don't allow configuration and therefore
already have to select these parameters internally.
Vinod Koul May 26, 2011, 12:25 p.m. UTC | #7
On Thu, 2011-05-26 at 13:06 +0530, Russell King - ARM Linux wrote:
> On Wed, May 25, 2011 at 05:09:30PM +0530, Koul, Vinod wrote:
> > +1. Move remaining drivers to use new slave interface
> > +2. Remove old slave pointer machansim
> > +3. Make issue_pending to start the transaction in below drivers
> > +	- mpc512x_dma
> > +	- imx-dma
> > +	- imx-sdma
> > +	- mxs-dma.c
> > +	- dw_dmac
> > +	- intel_mid_dma
> > +	- ste_dma40
> 
> I'd suggest adding some more to this:
> 
> 4. Remove dma_slave_config's dma direction.
> 
> It's pointless that dma_slave_config carries the DMA direction (to/from
> device) and the prepare function does too.  It leads to DMA engine drivers
> having to verify that the two match, and DMA engine users having to issue
> two calls every time they change direction.
> 
> Instead, lets specify that dma_slave_config carries the _device_ side
> parameters, which are selected according to the direction given to the
> prepare function.  The memory-side parameters should be selected by the
> DMA engine driver according to its knowledge of the system.
> 
> This is sensible as M2M transfers don't allow configuration and therefore
> already have to select these parameters internally.
Sure, I am adding this as well and applying both patches

Thanks
Russell King - ARM Linux May 26, 2011, 1:38 p.m. UTC | #8
On Thu, May 26, 2011 at 05:55:30PM +0530, Koul, Vinod wrote:
> > I'd suggest adding some more to this:
> > 
> > 4. Remove dma_slave_config's dma direction.
> > 
> > It's pointless that dma_slave_config carries the DMA direction (to/from
> > device) and the prepare function does too.  It leads to DMA engine drivers
> > having to verify that the two match, and DMA engine users having to issue
> > two calls every time they change direction.
> > 
> > Instead, lets specify that dma_slave_config carries the _device_ side
> > parameters, which are selected according to the direction given to the
> > prepare function.  The memory-side parameters should be selected by the
> > DMA engine driver according to its knowledge of the system.
> > 
> > This is sensible as M2M transfers don't allow configuration and therefore
> > already have to select these parameters internally.
> Sure, I am adding this as well and applying both patches

Thanks.  In which case I'll mention that I already have patches to make
the PL08x driver do this.
diff mbox

Patch

diff --git a/drivers/dma/TODO b/drivers/dma/TODO
new file mode 100644
index 0000000..b67d184
--- /dev/null
+++ b/drivers/dma/TODO
@@ -0,0 +1,12 @@ 
+TODO for slave dma
+
+1. Move remaining drivers to use new slave interface
+2. Remove old slave pointer machansim
+3. Make issue_pending to start the transaction in below drivers
+	- mpc512x_dma
+	- imx-dma
+	- imx-sdma
+	- mxs-dma.c
+	- dw_dmac
+	- intel_mid_dma
+	- ste_dma40