All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wenyou Yang <wenyou.yang@atmel.com>
To: <linux-arm-kernel@lists.infradead.org>
Cc: <grant.likely@secretlab.ca>, <nicolas.ferre@atmel.com>,
	<plagnioj@jcrosoft.com>, <richard.genoud@gmail.com>,
	<JM.Lin@atmel.com>, <wenyou.yang@atmel.com>,
	<spi-devel-general@lists.sourceforge.net>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH v6 11/16] spi/spi-atmel: correct 16 bits transfers with DMA
Date: Thu, 7 Mar 2013 11:33:29 +0800	[thread overview]
Message-ID: <1362627210-8209-1-git-send-email-wenyou.yang@atmel.com> (raw)
In-Reply-To: <1362626715-6549-1-git-send-email-wenyou.yang@atmel.com>

From: Richard Genoud <richard.genoud@gmail.com>

Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
Cc: spi-devel-general@lists.sourceforge.net
Cc: linux-kernel@vger.kernel.org
[wenyou.yang@atmel.com: submit the patch]
Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
---
 drivers/spi/spi-atmel.c |   17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/drivers/spi/spi-atmel.c b/drivers/spi/spi-atmel.c
index d287889..1e212d1 100644
--- a/drivers/spi/spi-atmel.c
+++ b/drivers/spi/spi-atmel.c
@@ -388,12 +388,18 @@ static inline int atmel_spi_xfer_can_be_chained(struct spi_transfer *xfer)
 }
 
 static int atmel_spi_dma_slave_config(struct atmel_spi *as,
-				struct dma_slave_config *slave_config)
+				struct dma_slave_config *slave_config,
+				u8 bits_per_word)
 {
 	int err = 0;
 
-	slave_config->dst_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
-	slave_config->src_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
+	if (bits_per_word > 8) {
+		slave_config->dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
+		slave_config->src_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
+	} else {
+		slave_config->dst_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
+		slave_config->src_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
+	}
 
 	slave_config->dst_addr = (dma_addr_t)as->phybase + SPI_TDR;
 	slave_config->src_addr = (dma_addr_t)as->phybase + SPI_RDR;
@@ -454,7 +460,7 @@ static int atmel_spi_configure_dma(struct atmel_spi *as)
 		goto error;
 	}
 
-	err = atmel_spi_dma_slave_config(as, &slave_config);
+	err = atmel_spi_dma_slave_config(as, &slave_config, 8);
 	if (err)
 		goto error;
 
@@ -588,10 +594,9 @@ static int atmel_spi_next_xfer_dma_submit(struct spi_master *master,
 
 	*plen = len;
 
-	if (atmel_spi_dma_slave_config(as, &slave_config))
+	if (atmel_spi_dma_slave_config(as, &slave_config, 8))
 		goto err_exit;
 
-
 	/* Send both scatterlists */
 	rxdesc = rxchan->device->device_prep_slave_sg(rxchan,
 					&as->dma.sgrx,
-- 
1.7.9.5


WARNING: multiple messages have this Message-ID (diff)
From: wenyou.yang@atmel.com (Wenyou Yang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v6 11/16] spi/spi-atmel: correct 16 bits transfers with DMA
Date: Thu, 7 Mar 2013 11:33:29 +0800	[thread overview]
Message-ID: <1362627210-8209-1-git-send-email-wenyou.yang@atmel.com> (raw)
In-Reply-To: <1362626715-6549-1-git-send-email-wenyou.yang@atmel.com>

From: Richard Genoud <richard.genoud@gmail.com>

Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
Cc: spi-devel-general at lists.sourceforge.net
Cc: linux-kernel at vger.kernel.org
[wenyou.yang at atmel.com: submit the patch]
Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
---
 drivers/spi/spi-atmel.c |   17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/drivers/spi/spi-atmel.c b/drivers/spi/spi-atmel.c
index d287889..1e212d1 100644
--- a/drivers/spi/spi-atmel.c
+++ b/drivers/spi/spi-atmel.c
@@ -388,12 +388,18 @@ static inline int atmel_spi_xfer_can_be_chained(struct spi_transfer *xfer)
 }
 
 static int atmel_spi_dma_slave_config(struct atmel_spi *as,
-				struct dma_slave_config *slave_config)
+				struct dma_slave_config *slave_config,
+				u8 bits_per_word)
 {
 	int err = 0;
 
-	slave_config->dst_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
-	slave_config->src_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
+	if (bits_per_word > 8) {
+		slave_config->dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
+		slave_config->src_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
+	} else {
+		slave_config->dst_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
+		slave_config->src_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
+	}
 
 	slave_config->dst_addr = (dma_addr_t)as->phybase + SPI_TDR;
 	slave_config->src_addr = (dma_addr_t)as->phybase + SPI_RDR;
@@ -454,7 +460,7 @@ static int atmel_spi_configure_dma(struct atmel_spi *as)
 		goto error;
 	}
 
-	err = atmel_spi_dma_slave_config(as, &slave_config);
+	err = atmel_spi_dma_slave_config(as, &slave_config, 8);
 	if (err)
 		goto error;
 
@@ -588,10 +594,9 @@ static int atmel_spi_next_xfer_dma_submit(struct spi_master *master,
 
 	*plen = len;
 
-	if (atmel_spi_dma_slave_config(as, &slave_config))
+	if (atmel_spi_dma_slave_config(as, &slave_config, 8))
 		goto err_exit;
 
-
 	/* Send both scatterlists */
 	rxdesc = rxchan->device->device_prep_slave_sg(rxchan,
 					&as->dma.sgrx,
-- 
1.7.9.5

  parent reply	other threads:[~2013-03-07  3:36 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-07  3:25 [PATCH v6 00/16] spi/spi-atmel: add dmaengine support for atmel spi controller and to test the device tree support Wenyou Yang
2013-03-07  3:26 ` [PATCH v6 01/16] spi/spi-atmel: fix probing failure after xfer->speed_hz set Wenyou Yang
2013-03-07  3:26   ` Wenyou Yang
2013-03-07 12:17   ` Sergei Shtylyov
2013-03-07 12:17     ` Sergei Shtylyov
2013-03-08  9:43     ` Yang, Wenyou
2013-03-08  9:43       ` Yang, Wenyou
2013-03-08  9:43       ` Yang, Wenyou
2013-03-07 12:30   ` Joachim Eastwood
2013-03-07 12:30     ` Joachim Eastwood
2013-03-07 12:30     ` Joachim Eastwood
2013-03-08  1:06     ` Yang, Wenyou
2013-03-08  1:06       ` Yang, Wenyou
2013-03-08  1:06       ` Yang, Wenyou
2013-05-02  2:35     ` Yang, Wenyou
2013-05-02  2:35       ` Yang, Wenyou
2013-05-02  2:35       ` Yang, Wenyou
2013-05-02  8:12       ` Richard Genoud
2013-05-02  8:12         ` Richard Genoud
2013-05-02  8:12         ` Richard Genoud
2013-05-02 10:34         ` Nicolas Ferre
2013-05-02 10:34           ` Nicolas Ferre
2013-05-02 10:34           ` Nicolas Ferre
2013-05-06 10:31           ` Mark Brown
2013-05-06 10:31             ` Mark Brown
2013-05-06 10:31             ` Mark Brown
2013-05-07  1:11             ` Yang, Wenyou
2013-05-07  1:11               ` Yang, Wenyou
2013-05-07  1:11               ` Yang, Wenyou
2013-05-07  9:31               ` Nicolas Ferre
2013-05-07  9:31                 ` Nicolas Ferre
2013-05-07  9:31                 ` Nicolas Ferre
2013-03-07  3:27 ` [PATCH v6 02/16] spi/spi-atmel: detect the capabilities of SPI core by reading the VERSION register Wenyou Yang
2013-03-07  3:27   ` Wenyou Yang
2013-03-07  3:28 ` [PATCH v6 03/16] spi/spi-atmel: add support transfer on CS1,2,3, not only on CS0 Wenyou Yang
2013-03-07  3:28   ` [PATCH v6 03/16] spi/spi-atmel: add support transfer on CS1, 2, 3, " Wenyou Yang
2013-03-07  3:28 ` [PATCH v6 04/16] spi/spi-atmel: add physical base address Wenyou Yang
2013-03-07  3:28   ` Wenyou Yang
2013-03-07  3:29 ` [PATCH v6 05/16] spi/spi-atmel: call unmapping on transfers buffers Wenyou Yang
2013-03-07  3:29   ` Wenyou Yang
2013-03-07  3:29 ` [PATCH v6 06/16] spi/spi-atmel: status information passed through controller data Wenyou Yang
2013-03-07  3:29   ` Wenyou Yang
2013-03-07  3:30 ` [PATCH v6 07/16] spi/spi-atmel: add flag to controller data for lock operations Wenyou Yang
2013-03-07  3:30   ` Wenyou Yang
2013-03-07  3:31 ` [PATCH v6 08/16] spi/spi-atmel: add dmaengine support Wenyou Yang
2013-03-07  3:31   ` Wenyou Yang
2013-03-07  3:32 ` [PATCH v6 09/16] spi/spi-atmel: fix spi-atmel driver to adapt to slave_config changes Wenyou Yang
2013-03-07  3:32   ` Wenyou Yang
2013-03-07  3:32 ` [PATCH v6 10/16] spi/spi-atmel: correct 16 bits transfers using PIO Wenyou Yang
2013-03-07  3:32   ` Wenyou Yang
2013-03-07  3:33 ` Wenyou Yang [this message]
2013-03-07  3:33   ` [PATCH v6 11/16] spi/spi-atmel: correct 16 bits transfers with DMA Wenyou Yang
2013-03-07  3:34 ` [PATCH v6 12/16] spi/spi-atmel: add pinctrl support for atmel spi Wenyou Yang
2013-03-07  3:34   ` Wenyou Yang
2013-03-11 13:11   ` Jean-Christophe PLAGNIOL-VILLARD
2013-03-11 13:11     ` Jean-Christophe PLAGNIOL-VILLARD
2013-03-12  1:10     ` Yang, Wenyou
2013-03-12  1:10       ` Yang, Wenyou
2013-03-12  1:10       ` Yang, Wenyou
2013-03-07  3:34 ` [PATCH v6 13/16] ARM: at91: add clocks for spi dt entries Wenyou Yang
2013-03-07  3:34   ` Wenyou Yang
2013-03-07  3:35 ` [PATCH v6 14/16] ARM: dts: add spi nodes for atmel SoC Wenyou Yang
2013-03-07  3:35   ` Wenyou Yang
2013-03-07  3:35 ` [PATCH v6 15/16] ARM: dts: add spi nodes for the atmel boards Wenyou Yang
2013-03-07  3:35   ` Wenyou Yang
2013-03-07  3:36 ` [PATCH v6 16/16] ARM: dts: add pinctrl property for spi node for atmel SoC Wenyou Yang
2013-03-07  3:36   ` Wenyou Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1362627210-8209-1-git-send-email-wenyou.yang@atmel.com \
    --to=wenyou.yang@atmel.com \
    --cc=JM.Lin@atmel.com \
    --cc=grant.likely@secretlab.ca \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nicolas.ferre@atmel.com \
    --cc=plagnioj@jcrosoft.com \
    --cc=richard.genoud@gmail.com \
    --cc=spi-devel-general@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.