2014-07-21 09:42:55

by Wolfram Sang

[permalink] [raw]
Subject: [PATCH 0/2] use correct type for dma_map/unmap

I recently stumbled over the fact that the Atmel I2C driver used a wrong enum
for mapping dma, so I wrote a hackish coccinelle script to check the rest of the
kernel. Luckily, only those two were found.

Wolfram Sang (2):
drivers/i2c/busses: use correct type for dma_map/unmap
drivers/tty/serial: use correct type for dma_map/unmap

drivers/i2c/busses/i2c-at91.c | 4 ++--
drivers/tty/serial/atmel_serial.c | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)

--
2.0.0


2014-07-21 09:43:22

by Wolfram Sang

[permalink] [raw]
Subject: [PATCH 1/2] drivers/i2c/busses: use correct type for dma_map/unmap

dma_{un}map_* uses 'enum dma_data_direction' not 'enum dma_transfer_direction'.

Signed-off-by: Wolfram Sang <[email protected]>
---
drivers/i2c/busses/i2c-at91.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c
index e95f9ba96790..83c989382be9 100644
--- a/drivers/i2c/busses/i2c-at91.c
+++ b/drivers/i2c/busses/i2c-at91.c
@@ -210,7 +210,7 @@ static void at91_twi_write_data_dma_callback(void *data)
struct at91_twi_dev *dev = (struct at91_twi_dev *)data;

dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg),
- dev->buf_len, DMA_MEM_TO_DEV);
+ dev->buf_len, DMA_TO_DEVICE);

at91_twi_write(dev, AT91_TWI_CR, AT91_TWI_STOP);
}
@@ -289,7 +289,7 @@ static void at91_twi_read_data_dma_callback(void *data)
struct at91_twi_dev *dev = (struct at91_twi_dev *)data;

dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg),
- dev->buf_len, DMA_DEV_TO_MEM);
+ dev->buf_len, DMA_FROM_DEVICE);

/* The last two bytes have to be read without using dma */
dev->buf += dev->buf_len - 2;
--
2.0.0

2014-07-21 09:43:29

by Wolfram Sang

[permalink] [raw]
Subject: [PATCH 2/2] drivers/tty/serial: use correct type for dma_map/unmap

dma_{un}map_* uses 'enum dma_data_direction' not 'enum dma_transfer_direction'.

Signed-off-by: Wolfram Sang <[email protected]>
---
drivers/tty/serial/atmel_serial.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
index c4f750314100..7b63677475c1 100644
--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -706,7 +706,7 @@ static void atmel_release_tx_dma(struct uart_port *port)
dmaengine_terminate_all(chan);
dma_release_channel(chan);
dma_unmap_sg(port->dev, &atmel_port->sg_tx, 1,
- DMA_MEM_TO_DEV);
+ DMA_TO_DEVICE);
}

atmel_port->desc_tx = NULL;
@@ -804,7 +804,7 @@ static int atmel_prepare_tx_dma(struct uart_port *port)
nent = dma_map_sg(port->dev,
&atmel_port->sg_tx,
1,
- DMA_MEM_TO_DEV);
+ DMA_TO_DEVICE);

if (!nent) {
dev_dbg(port->dev, "need to release resource of dma\n");
@@ -883,7 +883,7 @@ static void atmel_release_rx_dma(struct uart_port *port)
dmaengine_terminate_all(chan);
dma_release_channel(chan);
dma_unmap_sg(port->dev, &atmel_port->sg_rx, 1,
- DMA_DEV_TO_MEM);
+ DMA_FROM_DEVICE);
}

atmel_port->desc_rx = NULL;
@@ -968,7 +968,7 @@ static int atmel_prepare_rx_dma(struct uart_port *port)
nent = dma_map_sg(port->dev,
&atmel_port->sg_rx,
1,
- DMA_DEV_TO_MEM);
+ DMA_FROM_DEVICE);

if (!nent) {
dev_dbg(port->dev, "need to release resource of dma\n");
--
2.0.0

2014-07-22 09:13:27

by Ludovic Desroches

[permalink] [raw]
Subject: Re: [PATCH 1/2] drivers/i2c/busses: use correct type for dma_map/unmap

On Mon, Jul 21, 2014 at 11:42:03AM +0200, Wolfram Sang wrote:
> dma_{un}map_* uses 'enum dma_data_direction' not 'enum dma_transfer_direction'.
>
> Signed-off-by: Wolfram Sang <[email protected]>
Acked-by: Ludovic Desroches <[email protected]>

Thanks Wolfram.

> ---
> drivers/i2c/busses/i2c-at91.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c
> index e95f9ba96790..83c989382be9 100644
> --- a/drivers/i2c/busses/i2c-at91.c
> +++ b/drivers/i2c/busses/i2c-at91.c
> @@ -210,7 +210,7 @@ static void at91_twi_write_data_dma_callback(void *data)
> struct at91_twi_dev *dev = (struct at91_twi_dev *)data;
>
> dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg),
> - dev->buf_len, DMA_MEM_TO_DEV);
> + dev->buf_len, DMA_TO_DEVICE);
>
> at91_twi_write(dev, AT91_TWI_CR, AT91_TWI_STOP);
> }
> @@ -289,7 +289,7 @@ static void at91_twi_read_data_dma_callback(void *data)
> struct at91_twi_dev *dev = (struct at91_twi_dev *)data;
>
> dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg),
> - dev->buf_len, DMA_DEV_TO_MEM);
> + dev->buf_len, DMA_FROM_DEVICE);
>
> /* The last two bytes have to be read without using dma */
> dev->buf += dev->buf_len - 2;
> --
> 2.0.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html