Re: [RFC PATCH 00/13] DMA Engine support for AM33xx

2012-09-26 Thread Matt Porter
On Wed, Sep 26, 2012 at 08:26:19AM +, Hebbar, Gururaja wrote:
> On Fri, Sep 21, 2012 at 23:52:11, Porter, Matt wrote:
> > On Fri, Sep 21, 2012 at 08:27:07AM +, Hebbar, Gururaja wrote:
> > > On Thu, Sep 20, 2012 at 20:13:33, Porter, Matt wrote:
> > > > This series adds DMA Engine support for AM33xx, which uses
> > > > an EDMA DMAC. The EDMA DMAC has been previously supported by only
> > > > a private API implementation (much like the situation with OMAP
> > > > DMA) found on the DaVinci family of SoCs.
> > > > 
> > > > There are a mind-boggling number of dependencies for this series:
> > > > 
> > > > - Jon Hunter's OF DMA helpers series
> > > >   https://patchwork.kernel.org/patch/1461061/
> > > >   https://patchwork.kernel.org/patch/1461051/
> > > > - Patch to address OF DMA helpers naming issues:
> > > >   https://patchwork.kernel.org/patch/1477921/
> > > > - EDMA DMA Engine wrapper driver in linux-next
> > > >   c2dde5f8f2095d7c623ff3565c1462e190272273
> > > > - EDMA DMA Engine wrapper driver bug fix:
> > > >   https://patchwork.kernel.org/patch/1474411/  
> > > > - A huge number of patches in linux-next for AM33xx boot
> > > >   (too numerous to list)
> > > > 
> > > > The approach taken is similar to how OMAP DMA is being converted to
> > > > DMA Engine support. With the functional EDMA private API already
> > > > existing in mach-davinci/dma.c, we first move that to an ARM common
> > > > area so it can be shared. Adding DT and runtime PM support to the
> > > > private EDMA API implementation allows it to run on AM33xx. AM33xx
> > > > *only* boots using DT so we leverage Jon's generic DT DMA helpers to
> > > > register EDMA DMAC with the of_dma framework and then add support
> > > > for calling the dma_request_slave_channel() API to both the mmc
> > > > and spi drivers.
> > > > 
> > > > What works? Well, with this series we now have MMC and SPI support
> > > > on AM33xx. The only caveat for MMC is that the mmc3 controller has
> > > > its events on the crossbar and is not usable right now.
> > > > 
> > > > This is tested on BeagleBone with a SPI framebuffer driver and SD
> > > > card.
> > > > 
> > > > After this series, the plan is to convert the last in-tree user
> > > > of the private EDMA API (davinci-pcm/mcasp) and then eliminate
> > > > the private EDMA API by folding its functionality into
> > > > drivers/dma/edma.c.
> > > > 
> > > > TODO:
> > > > add AM33xx crossbar support to the private EDMA API
> > > > (any EDMA events on the crossbar are not supported)
> > > > 
> > > 
> > > 
> > > Can you please mention the base repo you have taken as starting point.
> > > (repo + extra patches ...).
> > 
> > It's mainline 3.6-rc6 and you can see the complete set of patches
> > at https://github.com/ohporter/linux/tree/edma-dmaengine-am33xx-rfc-v1
> > after commit 5698bd757d55b1bb87edd1a9744ab09c142abfc2
> > 
> > > This will help us to test the code.
> > > 
> > > This is because I looked at the patch 12/13 and I see that mmc
> > > device-node is modified. But in mainline I don’t see device 
> > > node for mmc (yet).
> > 
> > Oops. You'll need e62aae450bcdefbe9d7bc277ae0ef645 and
> > fe97304557d2c6f7d0aaf1ea028ea48ffca366a9 which I forgot to include
> > in this series. I'll have them in for v2.
> 
> Yesterday I tested edma patches on latest linux-next/master + merge of 
> linux-omap/for_3.7/dts_part2. Below are my observations
> 
> 1. baseline = linux-next/master + merge of linux-omap/for_3.7/dts_part2
> 2. on top of above branch, I applied patches [1-9]/13 of your edma 
>patches
> 3. few patches required trivial changes before applying
> 4. Applied dma of patches as you mentioned
> 5. add custom patch (ARM: CUSTOM: Build a uImage with dtb already 
>appended)
>From https://github.com/hvaibhav/am335x-linux/commit/
> 7e72f5ed4b702c9373d19f7626f07ae31a381d53#arch/arm/Makefile

Alternatively you can run a current u-boot master build for am335x and
the appended dtb is no longer required.

> 6. Modified 9/13 patch to apply properly on latest am33xx.dtsi.
>   a. Edma portion as it is
>   b. mmc portion as below
>   mmc1: mmc@4806 {
>   compatible = "ti,omap3-hsmmc";
>   ti,hwmods = "mmc1";
>   ti,dual-volt;
>   ti,needs-special-reset;
>   bus-width = <4>;
>   vmmc-supply = <&vmmc_reg>;
>   dmas = <&edma 24
>   &edma 25>;
>   dma-names = "tx", "rx";
>   };
>   c. added mmc pinmux as-well
> 
> 7. make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm distclean
>make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm 
>omap2plus_defconfig
> 
> 8. enabled TI_EDMA from menuconfig (since it was not enabled for 
>omap2plus_defconfig
> 
> 9. make CROSS_COMPI

RE: [RFC PATCH 00/13] DMA Engine support for AM33xx

2012-09-26 Thread Hebbar, Gururaja
On Fri, Sep 21, 2012 at 23:52:11, Porter, Matt wrote:
> On Fri, Sep 21, 2012 at 08:27:07AM +, Hebbar, Gururaja wrote:
> > On Thu, Sep 20, 2012 at 20:13:33, Porter, Matt wrote:
> > > This series adds DMA Engine support for AM33xx, which uses
> > > an EDMA DMAC. The EDMA DMAC has been previously supported by only
> > > a private API implementation (much like the situation with OMAP
> > > DMA) found on the DaVinci family of SoCs.
> > > 
> > > There are a mind-boggling number of dependencies for this series:
> > > 
> > >   - Jon Hunter's OF DMA helpers series
> > > https://patchwork.kernel.org/patch/1461061/
> > > https://patchwork.kernel.org/patch/1461051/
> > >   - Patch to address OF DMA helpers naming issues:
> > > https://patchwork.kernel.org/patch/1477921/
> > >   - EDMA DMA Engine wrapper driver in linux-next
> > > c2dde5f8f2095d7c623ff3565c1462e190272273
> > >   - EDMA DMA Engine wrapper driver bug fix:
> > > https://patchwork.kernel.org/patch/1474411/  
> > >   - A huge number of patches in linux-next for AM33xx boot
> > > (too numerous to list)
> > > 
> > > The approach taken is similar to how OMAP DMA is being converted to
> > > DMA Engine support. With the functional EDMA private API already
> > > existing in mach-davinci/dma.c, we first move that to an ARM common
> > > area so it can be shared. Adding DT and runtime PM support to the
> > > private EDMA API implementation allows it to run on AM33xx. AM33xx
> > > *only* boots using DT so we leverage Jon's generic DT DMA helpers to
> > > register EDMA DMAC with the of_dma framework and then add support
> > > for calling the dma_request_slave_channel() API to both the mmc
> > > and spi drivers.
> > > 
> > > What works? Well, with this series we now have MMC and SPI support
> > > on AM33xx. The only caveat for MMC is that the mmc3 controller has
> > > its events on the crossbar and is not usable right now.
> > > 
> > > This is tested on BeagleBone with a SPI framebuffer driver and SD
> > > card.
> > > 
> > > After this series, the plan is to convert the last in-tree user
> > > of the private EDMA API (davinci-pcm/mcasp) and then eliminate
> > > the private EDMA API by folding its functionality into
> > > drivers/dma/edma.c.
> > > 
> > > TODO:
> > >   add AM33xx crossbar support to the private EDMA API
> > >   (any EDMA events on the crossbar are not supported)
> > > 
> > 
> > 
> > Can you please mention the base repo you have taken as starting point.
> > (repo + extra patches ...).
> 
> It's mainline 3.6-rc6 and you can see the complete set of patches
> at https://github.com/ohporter/linux/tree/edma-dmaengine-am33xx-rfc-v1
> after commit 5698bd757d55b1bb87edd1a9744ab09c142abfc2
> 
> > This will help us to test the code.
> > 
> > This is because I looked at the patch 12/13 and I see that mmc
> > device-node is modified. But in mainline I don’t see device 
> > node for mmc (yet).
> 
> Oops. You'll need e62aae450bcdefbe9d7bc277ae0ef645 and
> fe97304557d2c6f7d0aaf1ea028ea48ffca366a9 which I forgot to include
> in this series. I'll have them in for v2.

Yesterday I tested edma patches on latest linux-next/master + merge of 
linux-omap/for_3.7/dts_part2. Below are my observations

1. baseline = linux-next/master + merge of linux-omap/for_3.7/dts_part2
2. on top of above branch, I applied patches [1-9]/13 of your edma 
   patches
3. few patches required trivial changes before applying
4. Applied dma of patches as you mentioned
5. add custom patch (ARM: CUSTOM: Build a uImage with dtb already 
   appended)
   From https://github.com/hvaibhav/am335x-linux/commit/
7e72f5ed4b702c9373d19f7626f07ae31a381d53#arch/arm/Makefile

6. Modified 9/13 patch to apply properly on latest am33xx.dtsi.
a. Edma portion as it is
b. mmc portion as below
mmc1: mmc@4806 {
compatible = "ti,omap3-hsmmc";
ti,hwmods = "mmc1";
ti,dual-volt;
ti,needs-special-reset;
bus-width = <4>;
vmmc-supply = <&vmmc_reg>;
dmas = <&edma 24
&edma 25>;
dma-names = "tx", "rx";
};
c. added mmc pinmux as-well

7. make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm distclean
   make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm 
   omap2plus_defconfig

8. enabled TI_EDMA from menuconfig (since it was not enabled for 
   omap2plus_defconfig

9. make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm uImage
   make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm 
   uImage-dtb.am335x-evm

With above changes, edma probe was failing at request_mem_region() 
Inside linux-next/arch/arm/common/edma.c --> edma_probe()

I had to modify edma_probe as below


diff --git a/arch/arm/common/edma.c b/arch/arm/common/edma.c
index f337f81..efe2673 100644
--- a/arch/arm/common/edma.c
+++ b/arch/arm/common/

Re: [RFC PATCH 00/13] DMA Engine support for AM33xx

2012-09-24 Thread Matt Porter
On Mon, Sep 24, 2012 at 11:26:55AM +, Hebbar, Gururaja wrote:
> On Fri, Sep 21, 2012 at 23:52:11, Porter, Matt wrote:
> > On Fri, Sep 21, 2012 at 08:27:07AM +, Hebbar, Gururaja wrote:
> > > On Thu, Sep 20, 2012 at 20:13:33, Porter, Matt wrote:
> > > > This series adds DMA Engine support for AM33xx, which uses
> > > > an EDMA DMAC. The EDMA DMAC has been previously supported by only
> > > > a private API implementation (much like the situation with OMAP
> > > > DMA) found on the DaVinci family of SoCs.
> > > > 
> > > > There are a mind-boggling number of dependencies for this series:
> > > > 
> > > > - Jon Hunter's OF DMA helpers series
> > > >   https://patchwork.kernel.org/patch/1461061/
> > > >   https://patchwork.kernel.org/patch/1461051/
> > > > - Patch to address OF DMA helpers naming issues:
> > > >   https://patchwork.kernel.org/patch/1477921/
> > > > - EDMA DMA Engine wrapper driver in linux-next
> > > >   c2dde5f8f2095d7c623ff3565c1462e190272273
> > > > - EDMA DMA Engine wrapper driver bug fix:
> > > >   https://patchwork.kernel.org/patch/1474411/  
> > > > - A huge number of patches in linux-next for AM33xx boot
> > > >   (too numerous to list)
> > > > 
> > > > The approach taken is similar to how OMAP DMA is being converted to
> > > > DMA Engine support. With the functional EDMA private API already
> > > > existing in mach-davinci/dma.c, we first move that to an ARM common
> > > > area so it can be shared. Adding DT and runtime PM support to the
> > > > private EDMA API implementation allows it to run on AM33xx. AM33xx
> > > > *only* boots using DT so we leverage Jon's generic DT DMA helpers to
> > > > register EDMA DMAC with the of_dma framework and then add support
> > > > for calling the dma_request_slave_channel() API to both the mmc
> > > > and spi drivers.
> > > > 
> > > > What works? Well, with this series we now have MMC and SPI support
> > > > on AM33xx. The only caveat for MMC is that the mmc3 controller has
> > > > its events on the crossbar and is not usable right now.
> > > > 
> > > > This is tested on BeagleBone with a SPI framebuffer driver and SD
> > > > card.
> > > > 
> > > > After this series, the plan is to convert the last in-tree user
> > > > of the private EDMA API (davinci-pcm/mcasp) and then eliminate
> > > > the private EDMA API by folding its functionality into
> > > > drivers/dma/edma.c.
> > > > 
> > > > TODO:
> > > > add AM33xx crossbar support to the private EDMA API
> > > > (any EDMA events on the crossbar are not supported)
> > > > 
> > > 
> > > 
> > > Can you please mention the base repo you have taken as starting point.
> > > (repo + extra patches ...).
> > 
> > It's mainline 3.6-rc6 and you can see the complete set of patches
> > at https://github.com/ohporter/linux/tree/edma-dmaengine-am33xx-rfc-v1
> > after commit 5698bd757d55b1bb87edd1a9744ab09c142abfc2

> 
> Thanks for the link. However, I was looking for the mainline kernel 
> repo/branch
> That you first used as baseline. 

Linus 3.6-rc6 is the baseline. This inital version was created before any
of the am33xx base support patches got pulled to linux-next. v2 is being
rebased against that to slim down the stack of patches necessary for
testing.

> > > This will help us to test the code.
> > > 
> > > This is because I looked at the patch 12/13 and I see that mmc
> > > device-node is modified. But in mainline I don’t see device 
> > > node for mmc (yet).
> > 
> > Oops. You'll need e62aae450bcdefbe9d7bc277ae0ef645 and
> > fe97304557d2c6f7d0aaf1ea028ea48ffca366a9 which I forgot to include
> > in this series. I'll have them in for v2.
> > 
> > -Matt
> > 
> > > > Matt Porter (13):
> > > >   ARM: davinci: move private EDMA API to arm/common
> > > >   ARM: edma: remove unused transfer controller handlers
> > > >   ARM: edma: add DT and runtime PM support for AM335x
> > > >   dmaengine: edma: enable build for AM335x
> > > >   dma: Add TI EDMA device tree binding
> > > >   ARM: omap: add hsmmc am33xx specific init
> > > >   mmc: omap_hsmmc: dma_request_slave_channel() support for DT platforms
> > > >   mmc: omap_hsmmc: limit max_segs with the EDMA DMAC
> > > >   mmc: omap_hsmmc: add generic DMA request support to the DT binding
> > > >   spi: omap2-mcspi: dma_request_slave_channel() support for DT
> > > > platforms
> > > >   spi: omap2-mcspi: add generic DMA request support to the DT binding
> > > >   ARM: dts: add am33xx EDMA support
> > > >   Documentation: add schedule for removing private EDMA API
> > > > 
> > > >  Documentation/devicetree/bindings/dma/ti-edma.txt  |   49 +
> > > >  .../devicetree/bindings/mmc/ti-omap-hsmmc.txt  |   25 +-
> > > >  Documentation/devicetree/bindings/spi/omap-spi.txt |   27 +-
> > > >  Documentation/feature-removal-schedule.txt |   10 +
> > > >  arch/arm/Kconfig   |1 +
> > > >  arch/arm/boot/dts/am33xx.dtsi  

RE: [RFC PATCH 00/13] DMA Engine support for AM33xx

2012-09-24 Thread Hebbar, Gururaja
On Fri, Sep 21, 2012 at 23:52:11, Porter, Matt wrote:
> On Fri, Sep 21, 2012 at 08:27:07AM +, Hebbar, Gururaja wrote:
> > On Thu, Sep 20, 2012 at 20:13:33, Porter, Matt wrote:
> > > This series adds DMA Engine support for AM33xx, which uses
> > > an EDMA DMAC. The EDMA DMAC has been previously supported by only
> > > a private API implementation (much like the situation with OMAP
> > > DMA) found on the DaVinci family of SoCs.
> > > 
> > > There are a mind-boggling number of dependencies for this series:
> > > 
> > >   - Jon Hunter's OF DMA helpers series
> > > https://patchwork.kernel.org/patch/1461061/
> > > https://patchwork.kernel.org/patch/1461051/
> > >   - Patch to address OF DMA helpers naming issues:
> > > https://patchwork.kernel.org/patch/1477921/
> > >   - EDMA DMA Engine wrapper driver in linux-next
> > > c2dde5f8f2095d7c623ff3565c1462e190272273
> > >   - EDMA DMA Engine wrapper driver bug fix:
> > > https://patchwork.kernel.org/patch/1474411/  
> > >   - A huge number of patches in linux-next for AM33xx boot
> > > (too numerous to list)
> > > 
> > > The approach taken is similar to how OMAP DMA is being converted to
> > > DMA Engine support. With the functional EDMA private API already
> > > existing in mach-davinci/dma.c, we first move that to an ARM common
> > > area so it can be shared. Adding DT and runtime PM support to the
> > > private EDMA API implementation allows it to run on AM33xx. AM33xx
> > > *only* boots using DT so we leverage Jon's generic DT DMA helpers to
> > > register EDMA DMAC with the of_dma framework and then add support
> > > for calling the dma_request_slave_channel() API to both the mmc
> > > and spi drivers.
> > > 
> > > What works? Well, with this series we now have MMC and SPI support
> > > on AM33xx. The only caveat for MMC is that the mmc3 controller has
> > > its events on the crossbar and is not usable right now.
> > > 
> > > This is tested on BeagleBone with a SPI framebuffer driver and SD
> > > card.
> > > 
> > > After this series, the plan is to convert the last in-tree user
> > > of the private EDMA API (davinci-pcm/mcasp) and then eliminate
> > > the private EDMA API by folding its functionality into
> > > drivers/dma/edma.c.
> > > 
> > > TODO:
> > >   add AM33xx crossbar support to the private EDMA API
> > >   (any EDMA events on the crossbar are not supported)
> > > 
> > 
> > 
> > Can you please mention the base repo you have taken as starting point.
> > (repo + extra patches ...).
> 
> It's mainline 3.6-rc6 and you can see the complete set of patches
> at https://github.com/ohporter/linux/tree/edma-dmaengine-am33xx-rfc-v1
> after commit 5698bd757d55b1bb87edd1a9744ab09c142abfc2


Thanks for the link. However, I was looking for the mainline kernel repo/branch
That you first used as baseline. 

> 
> > This will help us to test the code.
> > 
> > This is because I looked at the patch 12/13 and I see that mmc
> > device-node is modified. But in mainline I don’t see device 
> > node for mmc (yet).
> 
> Oops. You'll need e62aae450bcdefbe9d7bc277ae0ef645 and
> fe97304557d2c6f7d0aaf1ea028ea48ffca366a9 which I forgot to include
> in this series. I'll have them in for v2.
> 
> -Matt
> 
> > > Matt Porter (13):
> > >   ARM: davinci: move private EDMA API to arm/common
> > >   ARM: edma: remove unused transfer controller handlers
> > >   ARM: edma: add DT and runtime PM support for AM335x
> > >   dmaengine: edma: enable build for AM335x
> > >   dma: Add TI EDMA device tree binding
> > >   ARM: omap: add hsmmc am33xx specific init
> > >   mmc: omap_hsmmc: dma_request_slave_channel() support for DT platforms
> > >   mmc: omap_hsmmc: limit max_segs with the EDMA DMAC
> > >   mmc: omap_hsmmc: add generic DMA request support to the DT binding
> > >   spi: omap2-mcspi: dma_request_slave_channel() support for DT
> > > platforms
> > >   spi: omap2-mcspi: add generic DMA request support to the DT binding
> > >   ARM: dts: add am33xx EDMA support
> > >   Documentation: add schedule for removing private EDMA API
> > > 
> > >  Documentation/devicetree/bindings/dma/ti-edma.txt  |   49 +
> > >  .../devicetree/bindings/mmc/ti-omap-hsmmc.txt  |   25 +-
> > >  Documentation/devicetree/bindings/spi/omap-spi.txt |   27 +-
> > >  Documentation/feature-removal-schedule.txt |   10 +
> > >  arch/arm/Kconfig   |1 +
> > >  arch/arm/boot/dts/am33xx.dtsi  |   46 +
> > >  arch/arm/common/Kconfig|3 +
> > >  arch/arm/common/Makefile   |1 +
> > >  arch/arm/common/edma.c | 1779 
> > > 
> > >  arch/arm/include/asm/mach/edma.h   |  267 +++
> > >  arch/arm/mach-davinci/Makefile |2 +-
> > >  arch/arm/mach-davinci/devices.c|3 +-
> > >  arch/arm/mach-davinci/dm355.c  |2 +-
> > >  arch/arm/mach-davinci/dm

Re: [RFC PATCH 00/13] DMA Engine support for AM33xx

2012-09-21 Thread Matt Porter
On Fri, Sep 21, 2012 at 08:27:07AM +, Hebbar, Gururaja wrote:
> On Thu, Sep 20, 2012 at 20:13:33, Porter, Matt wrote:
> > This series adds DMA Engine support for AM33xx, which uses
> > an EDMA DMAC. The EDMA DMAC has been previously supported by only
> > a private API implementation (much like the situation with OMAP
> > DMA) found on the DaVinci family of SoCs.
> > 
> > There are a mind-boggling number of dependencies for this series:
> > 
> > - Jon Hunter's OF DMA helpers series
> >   https://patchwork.kernel.org/patch/1461061/
> >   https://patchwork.kernel.org/patch/1461051/
> > - Patch to address OF DMA helpers naming issues:
> >   https://patchwork.kernel.org/patch/1477921/
> > - EDMA DMA Engine wrapper driver in linux-next
> >   c2dde5f8f2095d7c623ff3565c1462e190272273
> > - EDMA DMA Engine wrapper driver bug fix:
> >   https://patchwork.kernel.org/patch/1474411/  
> > - A huge number of patches in linux-next for AM33xx boot
> >   (too numerous to list)
> > 
> > The approach taken is similar to how OMAP DMA is being converted to
> > DMA Engine support. With the functional EDMA private API already
> > existing in mach-davinci/dma.c, we first move that to an ARM common
> > area so it can be shared. Adding DT and runtime PM support to the
> > private EDMA API implementation allows it to run on AM33xx. AM33xx
> > *only* boots using DT so we leverage Jon's generic DT DMA helpers to
> > register EDMA DMAC with the of_dma framework and then add support
> > for calling the dma_request_slave_channel() API to both the mmc
> > and spi drivers.
> > 
> > What works? Well, with this series we now have MMC and SPI support
> > on AM33xx. The only caveat for MMC is that the mmc3 controller has
> > its events on the crossbar and is not usable right now.
> > 
> > This is tested on BeagleBone with a SPI framebuffer driver and SD
> > card.
> > 
> > After this series, the plan is to convert the last in-tree user
> > of the private EDMA API (davinci-pcm/mcasp) and then eliminate
> > the private EDMA API by folding its functionality into
> > drivers/dma/edma.c.
> > 
> > TODO:
> > add AM33xx crossbar support to the private EDMA API
> > (any EDMA events on the crossbar are not supported)
> > 
> 
> 
> Can you please mention the base repo you have taken as starting point.
> (repo + extra patches ...).

It's mainline 3.6-rc6 and you can see the complete set of patches
at https://github.com/ohporter/linux/tree/edma-dmaengine-am33xx-rfc-v1
after commit 5698bd757d55b1bb87edd1a9744ab09c142abfc2

> This will help us to test the code.
> 
> This is because I looked at the patch 12/13 and I see that mmc
> device-node is modified. But in mainline I don’t see device 
> node for mmc (yet).

Oops. You'll need e62aae450bcdefbe9d7bc277ae0ef645 and
fe97304557d2c6f7d0aaf1ea028ea48ffca366a9 which I forgot to include
in this series. I'll have them in for v2.

-Matt

> > Matt Porter (13):
> >   ARM: davinci: move private EDMA API to arm/common
> >   ARM: edma: remove unused transfer controller handlers
> >   ARM: edma: add DT and runtime PM support for AM335x
> >   dmaengine: edma: enable build for AM335x
> >   dma: Add TI EDMA device tree binding
> >   ARM: omap: add hsmmc am33xx specific init
> >   mmc: omap_hsmmc: dma_request_slave_channel() support for DT platforms
> >   mmc: omap_hsmmc: limit max_segs with the EDMA DMAC
> >   mmc: omap_hsmmc: add generic DMA request support to the DT binding
> >   spi: omap2-mcspi: dma_request_slave_channel() support for DT
> > platforms
> >   spi: omap2-mcspi: add generic DMA request support to the DT binding
> >   ARM: dts: add am33xx EDMA support
> >   Documentation: add schedule for removing private EDMA API
> > 
> >  Documentation/devicetree/bindings/dma/ti-edma.txt  |   49 +
> >  .../devicetree/bindings/mmc/ti-omap-hsmmc.txt  |   25 +-
> >  Documentation/devicetree/bindings/spi/omap-spi.txt |   27 +-
> >  Documentation/feature-removal-schedule.txt |   10 +
> >  arch/arm/Kconfig   |1 +
> >  arch/arm/boot/dts/am33xx.dtsi  |   46 +
> >  arch/arm/common/Kconfig|3 +
> >  arch/arm/common/Makefile   |1 +
> >  arch/arm/common/edma.c | 1779 
> > 
> >  arch/arm/include/asm/mach/edma.h   |  267 +++
> >  arch/arm/mach-davinci/Makefile |2 +-
> >  arch/arm/mach-davinci/devices.c|3 +-
> >  arch/arm/mach-davinci/dm355.c  |2 +-
> >  arch/arm/mach-davinci/dm365.c  |2 +-
> >  arch/arm/mach-davinci/dm644x.c |2 +-
> >  arch/arm/mach-davinci/dm646x.c |2 +-
> >  arch/arm/mach-davinci/dma.c| 1588 -
> >  arch/arm/mach-davinci/include/mach/asp.h   |2 +-
> >  arch/arm/mach-davinci/

RE: [RFC PATCH 00/13] DMA Engine support for AM33xx

2012-09-21 Thread Hebbar, Gururaja
On Thu, Sep 20, 2012 at 20:13:33, Porter, Matt wrote:
> This series adds DMA Engine support for AM33xx, which uses
> an EDMA DMAC. The EDMA DMAC has been previously supported by only
> a private API implementation (much like the situation with OMAP
> DMA) found on the DaVinci family of SoCs.
> 
> There are a mind-boggling number of dependencies for this series:
> 
>   - Jon Hunter's OF DMA helpers series
> https://patchwork.kernel.org/patch/1461061/
> https://patchwork.kernel.org/patch/1461051/
>   - Patch to address OF DMA helpers naming issues:
> https://patchwork.kernel.org/patch/1477921/
>   - EDMA DMA Engine wrapper driver in linux-next
> c2dde5f8f2095d7c623ff3565c1462e190272273
>   - EDMA DMA Engine wrapper driver bug fix:
> https://patchwork.kernel.org/patch/1474411/  
>   - A huge number of patches in linux-next for AM33xx boot
> (too numerous to list)
> 
> The approach taken is similar to how OMAP DMA is being converted to
> DMA Engine support. With the functional EDMA private API already
> existing in mach-davinci/dma.c, we first move that to an ARM common
> area so it can be shared. Adding DT and runtime PM support to the
> private EDMA API implementation allows it to run on AM33xx. AM33xx
> *only* boots using DT so we leverage Jon's generic DT DMA helpers to
> register EDMA DMAC with the of_dma framework and then add support
> for calling the dma_request_slave_channel() API to both the mmc
> and spi drivers.
> 
> What works? Well, with this series we now have MMC and SPI support
> on AM33xx. The only caveat for MMC is that the mmc3 controller has
> its events on the crossbar and is not usable right now.
> 
> This is tested on BeagleBone with a SPI framebuffer driver and SD
> card.
> 
> After this series, the plan is to convert the last in-tree user
> of the private EDMA API (davinci-pcm/mcasp) and then eliminate
> the private EDMA API by folding its functionality into
> drivers/dma/edma.c.
> 
> TODO:
>   add AM33xx crossbar support to the private EDMA API
>   (any EDMA events on the crossbar are not supported)
> 


Can you please mention the base repo you have taken as starting point.
(repo + extra patches ...).

This will help us to test the code.

This is because I looked at the patch 12/13 and I see that mmc
device-node is modified. But in mainline I don’t see device 
node for mmc (yet).

> Matt Porter (13):
>   ARM: davinci: move private EDMA API to arm/common
>   ARM: edma: remove unused transfer controller handlers
>   ARM: edma: add DT and runtime PM support for AM335x
>   dmaengine: edma: enable build for AM335x
>   dma: Add TI EDMA device tree binding
>   ARM: omap: add hsmmc am33xx specific init
>   mmc: omap_hsmmc: dma_request_slave_channel() support for DT platforms
>   mmc: omap_hsmmc: limit max_segs with the EDMA DMAC
>   mmc: omap_hsmmc: add generic DMA request support to the DT binding
>   spi: omap2-mcspi: dma_request_slave_channel() support for DT
> platforms
>   spi: omap2-mcspi: add generic DMA request support to the DT binding
>   ARM: dts: add am33xx EDMA support
>   Documentation: add schedule for removing private EDMA API
> 
>  Documentation/devicetree/bindings/dma/ti-edma.txt  |   49 +
>  .../devicetree/bindings/mmc/ti-omap-hsmmc.txt  |   25 +-
>  Documentation/devicetree/bindings/spi/omap-spi.txt |   27 +-
>  Documentation/feature-removal-schedule.txt |   10 +
>  arch/arm/Kconfig   |1 +
>  arch/arm/boot/dts/am33xx.dtsi  |   46 +
>  arch/arm/common/Kconfig|3 +
>  arch/arm/common/Makefile   |1 +
>  arch/arm/common/edma.c | 1779 
> 
>  arch/arm/include/asm/mach/edma.h   |  267 +++
>  arch/arm/mach-davinci/Makefile |2 +-
>  arch/arm/mach-davinci/devices.c|3 +-
>  arch/arm/mach-davinci/dm355.c  |2 +-
>  arch/arm/mach-davinci/dm365.c  |2 +-
>  arch/arm/mach-davinci/dm644x.c |2 +-
>  arch/arm/mach-davinci/dm646x.c |2 +-
>  arch/arm/mach-davinci/dma.c| 1588 -
>  arch/arm/mach-davinci/include/mach/asp.h   |2 +-
>  arch/arm/mach-davinci/include/mach/da8xx.h |3 +-
>  arch/arm/mach-davinci/include/mach/edma.h  |  267 ---
>  arch/arm/mach-davinci/include/mach/spi.h   |2 +-
>  arch/arm/mach-omap2/hsmmc.c|7 +-
>  arch/arm/plat-omap/Kconfig |1 +
>  drivers/dma/Kconfig|2 +-
>  drivers/dma/edma.c |2 +-
>  drivers/mmc/host/omap_hsmmc.c  |   26 +-
>  drivers/spi/spi-omap2-mcspi.c  |   68 +-
>  27 files changed, 2296 insertions(+), 18