All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mtd: nand: pxa3xx_nand: fix dmaengine initialization
@ 2016-02-12 22:29 Robert Jarzmik
  2016-02-27  1:51 ` Ezequiel Garcia
  2016-03-05  3:07 ` Brian Norris
  0 siblings, 2 replies; 5+ messages in thread
From: Robert Jarzmik @ 2016-02-12 22:29 UTC (permalink / raw)
  To: Ezequiel Garcia, David Woodhouse, Brian Norris
  Cc: linux-mtd, linux-kernel, Robert Jarzmik

When the driver is initialized in a pure device-tree platform, the
driver's probe fails allocating the dma channel :
[  525.624435] pxa3xx-nand 43100000.nand: no resource defined for data DMA
[  525.632088] pxa3xx-nand 43100000.nand: alloc nand resource failed

The reason is that the DMA IO resource is not acquired through platform
resources but by OF bindings.

Fix this by ensuring that DMA IO resources are only queried in the non
device-tree case.

Fixes: 8f5ba31aa565 ("mtd: nand: pxa3xx-nand: switch to dmaengine")
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
 drivers/mtd/nand/pxa3xx_nand.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c
index a168cbcc1086..afd487d4b67f 100644
--- a/drivers/mtd/nand/pxa3xx_nand.c
+++ b/drivers/mtd/nand/pxa3xx_nand.c
@@ -1750,7 +1750,7 @@ static int alloc_nand_resource(struct platform_device *pdev)
 	if (ret < 0)
 		return ret;
 
-	if (use_dma) {
+	if (!np && use_dma) {
 		r = platform_get_resource(pdev, IORESOURCE_DMA, 0);
 		if (r == NULL) {
 			dev_err(&pdev->dev,
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-03-05  3:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-12 22:29 [PATCH] mtd: nand: pxa3xx_nand: fix dmaengine initialization Robert Jarzmik
2016-02-27  1:51 ` Ezequiel Garcia
2016-02-27 10:45   ` Robert Jarzmik
2016-02-28 19:15     ` Ezequiel Garcia
2016-03-05  3:07 ` Brian Norris

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.