* [PATCH v2 0/2] mtd: nand: omap2: Add EDMA support for NAND DMA prefetch
@ 2016-05-04 18:34 Franklin S Cooper Jr
2016-05-04 18:34 ` [PATCH v2 1/2] mtd: nand: omap2: Support parsing dma channel information from DT Franklin S Cooper Jr
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Franklin S Cooper Jr @ 2016-05-04 18:34 UTC (permalink / raw)
To: robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8,
richard-/L3Ra7n9ekc, dwmw2-wEGCiKHe2LqWVfeAwA7xHQ,
computersforpeace-Re5JQEeQqe8AvxtiuMwx3w, rogerq-l0cyMroinI0,
tony-4v6yS6AI5VpBDgjK7y7TUQ, devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, vigneshr-l0cyMroinI0,
nsekhar-l0cyMroinI0
Cc: Franklin S Cooper Jr
This patchset includes the required patches to enable NAND DMA prefetch
support when using the EDMA.
This patchset depends on my previous patchset to enable NAND DMA prefetch
using the SDMA and Roger's GPMC and NAND rework. Both of these patchsets
are apart of Boris' NAND next patch. Therefore, these patches are also
built on top of this branch.
Also the following patches that fixes GPMC's DMA property are required
and pulled into other trees but are not currently apart of the above
branch:
https://patchwork.ozlabs.org/patch/596014/
https://patchwork.ozlabs.org/patch/596012/
Version 2 changes:
Switched to the new dma_request_chan api which is now preferred.
Add performance numbers to the commit.
Franklin S Cooper Jr (2):
mtd: nand: omap2: Support parsing dma channel information from DT
ARM: OMAP2+: Update GPMC and NAND DT binding documentation
Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt | 7 ++++++-
Documentation/devicetree/bindings/mtd/gpmc-nand.txt | 2 +-
drivers/mtd/nand/omap2.c | 7 ++-----
3 files changed, 9 insertions(+), 7 deletions(-)
--
2.7.0
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 1/2] mtd: nand: omap2: Support parsing dma channel information from DT
2016-05-04 18:34 [PATCH v2 0/2] mtd: nand: omap2: Add EDMA support for NAND DMA prefetch Franklin S Cooper Jr
@ 2016-05-04 18:34 ` Franklin S Cooper Jr
2016-05-04 18:34 ` [PATCH v2 2/2] ARM: OMAP2+: Update GPMC and NAND DT binding documentation Franklin S Cooper Jr
2016-05-30 9:09 ` [PATCH v2 0/2] mtd: nand: omap2: Add EDMA support for NAND DMA prefetch Boris Brezillon
2 siblings, 0 replies; 4+ messages in thread
From: Franklin S Cooper Jr @ 2016-05-04 18:34 UTC (permalink / raw)
To: robh+dt, boris.brezillon, richard, dwmw2, computersforpeace,
rogerq, tony, devicetree, linux-kernel, linux-mtd, vigneshr,
nsekhar
Cc: Franklin S Cooper Jr
Switch from dma_request_channel to allow passing dma channel
information from DT rather than hardcoding a value.
Also provide a handle to the GPMC's dev so it can be used to parse the DMA
channel information within the GPMC's DT node.
Performance Numbers via mtd_speedtest now that EDMA based prefetch works:
AM335x Performance numbers:
DMA
CPULOAD Write: 54% Read: 35%
page write speed -23% (vs non dma)
page read speed -35% (vs non dma)
NO DMA (prefetch-polled)
CPULOAD Write: 98% Read: 98%
AM437x Performance numbers:
DMA
CPU LOAD Write: 56% Read: 36%
page write speed -16% (vs non dma)
page read speed -22% (vs non dma)
NO DMA (prefetch-polled)
CPULOAD Write: 93% Read: 93%
Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
---
drivers/mtd/nand/omap2.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
index 08e1588..83b9091 100644
--- a/drivers/mtd/nand/omap2.c
+++ b/drivers/mtd/nand/omap2.c
@@ -118,8 +118,6 @@
#define PREFETCH_STATUS_FIFO_CNT(val) ((val >> 24) & 0x7F)
#define STATUS_BUFF_EMPTY 0x00000001
-#define OMAP24XX_DMA_GPMC 4
-
#define SECTOR_BYTES 512
/* 4 bit padding to make byte aligned, 56 = 52 + 4 */
#define BCH4_BIT_PAD 4
@@ -1808,7 +1806,6 @@ static int omap_nand_probe(struct platform_device *pdev)
struct nand_chip *nand_chip;
int err;
dma_cap_mask_t mask;
- unsigned sig;
struct resource *res;
struct device *dev = &pdev->dev;
int min_oobbytes = BADBLOCK_MARKER_LENGTH;
@@ -1921,8 +1918,8 @@ static int omap_nand_probe(struct platform_device *pdev)
case NAND_OMAP_PREFETCH_DMA:
dma_cap_zero(mask);
dma_cap_set(DMA_SLAVE, mask);
- sig = OMAP24XX_DMA_GPMC;
- info->dma = dma_request_channel(mask, omap_dma_filter_fn, &sig);
+ info->dma = dma_request_chan(pdev->dev.parent, "rxtx");
+
if (!info->dma) {
dev_err(&pdev->dev, "DMA engine request failed\n");
err = -ENXIO;
--
2.7.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] ARM: OMAP2+: Update GPMC and NAND DT binding documentation
2016-05-04 18:34 [PATCH v2 0/2] mtd: nand: omap2: Add EDMA support for NAND DMA prefetch Franklin S Cooper Jr
2016-05-04 18:34 ` [PATCH v2 1/2] mtd: nand: omap2: Support parsing dma channel information from DT Franklin S Cooper Jr
@ 2016-05-04 18:34 ` Franklin S Cooper Jr
2016-05-30 9:09 ` [PATCH v2 0/2] mtd: nand: omap2: Add EDMA support for NAND DMA prefetch Boris Brezillon
2 siblings, 0 replies; 4+ messages in thread
From: Franklin S Cooper Jr @ 2016-05-04 18:34 UTC (permalink / raw)
To: robh+dt, boris.brezillon, richard, dwmw2, computersforpeace,
rogerq, tony, devicetree, linux-kernel, linux-mtd, vigneshr,
nsekhar
Cc: Franklin S Cooper Jr
Add additional details to the GPMC NAND documentation to clarify
what is needed to enable NAND DMA prefetch.
Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
Acked-by: Rob Herring <robh@kernel.org>
---
Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt | 7 ++++++-
Documentation/devicetree/bindings/mtd/gpmc-nand.txt | 2 +-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt b/Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
index 21055e2..c1359f4 100644
--- a/Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
+++ b/Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
@@ -46,6 +46,10 @@ Required properties:
0 maps to GPMC_WAIT0 pin.
- gpio-cells: Must be set to 2
+Required properties when using NAND prefetch dma:
+ - dmas GPMC NAND prefetch dma channel
+ - dma-names Must be set to "rxtx"
+
Timing properties for child nodes. All are optional and default to 0.
- gpmc,sync-clk-ps: Minimum clock period for synchronous mode, in picoseconds
@@ -137,7 +141,8 @@ Example for an AM33xx board:
ti,hwmods = "gpmc";
reg = <0x50000000 0x2000>;
interrupts = <100>;
-
+ dmas = <&edma 52 0>;
+ dma-names = "rxtx";
gpmc,num-cs = <8>;
gpmc,num-waitpins = <2>;
#address-cells = <2>;
diff --git a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
index 3ee7e20..174f68c 100644
--- a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
+++ b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
@@ -39,7 +39,7 @@ Optional properties:
"prefetch-polled" Prefetch polled mode (default)
"polled" Polled mode, without prefetch
- "prefetch-dma" Prefetch enabled sDMA mode
+ "prefetch-dma" Prefetch enabled DMA mode
"prefetch-irq" Prefetch enabled irq mode
- elm_id: <deprecated> use "ti,elm-id" instead
--
2.7.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 0/2] mtd: nand: omap2: Add EDMA support for NAND DMA prefetch
2016-05-04 18:34 [PATCH v2 0/2] mtd: nand: omap2: Add EDMA support for NAND DMA prefetch Franklin S Cooper Jr
2016-05-04 18:34 ` [PATCH v2 1/2] mtd: nand: omap2: Support parsing dma channel information from DT Franklin S Cooper Jr
2016-05-04 18:34 ` [PATCH v2 2/2] ARM: OMAP2+: Update GPMC and NAND DT binding documentation Franklin S Cooper Jr
@ 2016-05-30 9:09 ` Boris Brezillon
2 siblings, 0 replies; 4+ messages in thread
From: Boris Brezillon @ 2016-05-30 9:09 UTC (permalink / raw)
To: Franklin S Cooper Jr
Cc: robh+dt, richard, dwmw2, computersforpeace, rogerq, tony,
devicetree, linux-kernel, linux-mtd, vigneshr, nsekhar
Hi Franklin,
On Wed, 4 May 2016 13:34:42 -0500
Franklin S Cooper Jr <fcooper@ti.com> wrote:
> This patchset includes the required patches to enable NAND DMA prefetch
> support when using the EDMA.
>
> This patchset depends on my previous patchset to enable NAND DMA prefetch
> using the SDMA and Roger's GPMC and NAND rework. Both of these patchsets
> are apart of Boris' NAND next patch. Therefore, these patches are also
> built on top of this branch.
>
> Also the following patches that fixes GPMC's DMA property are required
> and pulled into other trees but are not currently apart of the above
> branch:
> https://patchwork.ozlabs.org/patch/596014/
> https://patchwork.ozlabs.org/patch/596012/
Applied.
Thanks,
Boris
>
> Version 2 changes:
> Switched to the new dma_request_chan api which is now preferred.
> Add performance numbers to the commit.
>
> Franklin S Cooper Jr (2):
> mtd: nand: omap2: Support parsing dma channel information from DT
> ARM: OMAP2+: Update GPMC and NAND DT binding documentation
>
> Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt | 7 ++++++-
> Documentation/devicetree/bindings/mtd/gpmc-nand.txt | 2 +-
> drivers/mtd/nand/omap2.c | 7 ++-----
> 3 files changed, 9 insertions(+), 7 deletions(-)
>
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-05-30 9:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-04 18:34 [PATCH v2 0/2] mtd: nand: omap2: Add EDMA support for NAND DMA prefetch Franklin S Cooper Jr
2016-05-04 18:34 ` [PATCH v2 1/2] mtd: nand: omap2: Support parsing dma channel information from DT Franklin S Cooper Jr
2016-05-04 18:34 ` [PATCH v2 2/2] ARM: OMAP2+: Update GPMC and NAND DT binding documentation Franklin S Cooper Jr
2016-05-30 9:09 ` [PATCH v2 0/2] mtd: nand: omap2: Add EDMA support for NAND DMA prefetch Boris Brezillon
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).