2013-04-18 17:07:04

by Mark Brown

[permalink] [raw]
Subject: [PATCH] spi/s3c64xx: Fix non-dmaengine usage

The multiplatform conversion in commit 788437 (spi: s3c64xx: move to
generic dmaengine API) tested for the use of the Samsung-specific DMA
API with SAMSUNG_DMADEV when in fact S3C_DMA should be used. This
renderd DMA based transfers non-functional on platforms not using
dmaengine.

Signed-off-by: Mark Brown <[email protected]>
---
drivers/spi/spi-s3c64xx.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
index 4ab992b..6d6537d 100644
--- a/drivers/spi/spi-s3c64xx.c
+++ b/drivers/spi/spi-s3c64xx.c
@@ -34,7 +34,7 @@

#include <linux/platform_data/spi-s3c64xx.h>

-#ifdef CONFIG_SAMSUNG_DMADEV
+#ifdef CONFIG_S3C_DMA
#include <mach/dma.h>
#endif

@@ -199,7 +199,7 @@ struct s3c64xx_spi_driver_data {
unsigned cur_speed;
struct s3c64xx_spi_dma_data rx_dma;
struct s3c64xx_spi_dma_data tx_dma;
-#ifdef CONFIG_SAMSUNG_DMADEV
+#ifdef CONFIG_S3C_DMA
struct samsung_dma_ops *ops;
#endif
struct s3c64xx_spi_port_config *port_conf;
@@ -283,7 +283,7 @@ static void s3c64xx_spi_dmacb(void *data)
spin_unlock_irqrestore(&sdd->lock, flags);
}

-#ifdef CONFIG_SAMSUNG_DMADEV
+#ifdef CONFIG_S3C_DMA
/* FIXME: remove this section once arch/arm/mach-s3c64xx uses dmaengine */

static struct s3c2410_dma_client s3c64xx_spi_dma_client = {
--
1.7.10.4


2013-04-18 17:33:27

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] spi/s3c64xx: Fix non-dmaengine usage

On Thursday 18 April 2013, Mark Brown wrote:
> The multiplatform conversion in commit 788437 (spi: s3c64xx: move to
> generic dmaengine API) tested for the use of the Samsung-specific DMA
> API with SAMSUNG_DMADEV when in fact S3C_DMA should be used. This
> renderd DMA based transfers non-functional on platforms not using
> dmaengine.
>
> Signed-off-by: Mark Brown <[email protected]>

Acked-by: Arnd Bergmann <[email protected]>

Sorry for the confusion on my part. I thought that S3C_DMA was referring
to just the S3C specific functionality while SAMSUNG_DMADEV was the
wrapper around it, while in truth SAMSUNG_DMADEV is the wrapper around
just the dmaengine API.

Arnd