| From 9097103f06332d099c5ab06d1e7f22f4bcaca6e2 Mon Sep 17 00:00:00 2001 |
| From: Robert Jarzmik <robert.jarzmik@free.fr> |
| Date: Fri, 12 Feb 2016 23:29:04 +0100 |
| Subject: mtd: nand: pxa3xx_nand: fix dmaengine initialization |
| |
| From: Robert Jarzmik <robert.jarzmik@free.fr> |
| |
| commit 9097103f06332d099c5ab06d1e7f22f4bcaca6e2 upstream. |
| |
| 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> |
| Acked-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> |
| Signed-off-by: Brian Norris <computersforpeace@gmail.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/mtd/nand/pxa3xx_nand.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/mtd/nand/pxa3xx_nand.c |
| +++ b/drivers/mtd/nand/pxa3xx_nand.c |
| @@ -1738,7 +1738,7 @@ static int alloc_nand_resource(struct pl |
| 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, |