Message ID | 1306323570-11133-3-git-send-email-vinod.koul@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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
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
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
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
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.
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
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 --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