On Sun, Mar 13, 2011 at 10:34:21AM -0400, Michael Williamson wrote:
> The davinci spi driver provides an option to use DMA transfers for
> data.  In the dma_map_single() call, the driver is passing the
> number of words to be transfered for the mapping size.  It should
> be the number of bytes.
> 
> Signed-off-by: Michael Williamson <[email protected]>

Applied, thanks

g.

> ---
> Note: I only have 8 bit devices to test with, so I can only confirm this
> patch does not break such a configuration.
> 
>  drivers/spi/davinci_spi.c |   10 +++++-----
>  1 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/spi/davinci_spi.c b/drivers/spi/davinci_spi.c
> index 166a879..037ba82 100644
> --- a/drivers/spi/davinci_spi.c
> +++ b/drivers/spi/davinci_spi.c
> @@ -591,10 +591,10 @@ static int davinci_spi_bufs(struct spi_device *spi, 
> struct spi_transfer *t)
>  
>               if (t->tx_buf) {
>                       t->tx_dma = dma_map_single(&spi->dev, (void *)t->tx_buf,
> -                                             dspi->wcount, DMA_TO_DEVICE);
> +                                             t->len, DMA_TO_DEVICE);
>                       if (dma_mapping_error(&spi->dev, t->tx_dma)) {
>                               dev_dbg(sdev, "Unable to DMA map %d bytes"
> -                                             "TX buffer\n", dspi->wcount);
> +                                             "TX buffer\n", t->len);
>                               return -ENOMEM;
>                       }
>               }
> @@ -624,7 +624,7 @@ static int davinci_spi_bufs(struct spi_device *spi, 
> struct spi_transfer *t)
>  
>               if (t->rx_buf) {
>                       rx_buf = t->rx_buf;
> -                     rx_buf_count = dspi->rcount;
> +                     rx_buf_count = t->len;
>               } else {
>                       rx_buf = dspi->rx_tmp_buf;
>                       rx_buf_count = sizeof(dspi->rx_tmp_buf);
> @@ -636,7 +636,7 @@ static int davinci_spi_bufs(struct spi_device *spi, 
> struct spi_transfer *t)
>                       dev_dbg(sdev, "Couldn't DMA map a %d bytes RX buffer\n",
>                                                               rx_buf_count);
>                       if (t->tx_buf)
> -                             dma_unmap_single(NULL, t->tx_dma, dspi->wcount,
> +                             dma_unmap_single(NULL, t->tx_dma, t->len,
>                                                               DMA_TO_DEVICE);
>                       return -ENOMEM;
>               }
> @@ -675,7 +675,7 @@ static int davinci_spi_bufs(struct spi_device *spi, 
> struct spi_transfer *t)
>       if (spicfg->io_type == SPI_IO_TYPE_DMA) {
>  
>               if (t->tx_buf)
> -                     dma_unmap_single(NULL, t->tx_dma, dspi->wcount,
> +                     dma_unmap_single(NULL, t->tx_dma, t->len,
>                                                               DMA_TO_DEVICE);
>  
>               dma_unmap_single(NULL, t->rx_dma, rx_buf_count,
> -- 
> 1.7.0.4
> 
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to