[PATCH] tty/serial: at91: maxburst was missing for dma transfers

Nicolas Ferre nicolas.ferre at atmel.com
Thu Apr 16 08:07:56 PDT 2015


Le 16/04/2015 16:58, Ludovic Desroches a écrit :
> Maxburst was not set when doing the dma slave configuration. This value
> is checked by the recently introduced xdmac. It causes an error when
> doing the slave configuration and so prevents from using dma.
> 
> Signed-off-by: Ludovic Desroches <ludovic.desroches at atmel.com>
> Cc: <stable at vger.kernel.org> # 3.12 and later

Indeed, thanks!
Acked-by: Nicolas Ferre <nicolas.ferre at atmel.com>

> ---
>  drivers/tty/serial/atmel_serial.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
> index 4e959c4..6afce7e 100644
> --- a/drivers/tty/serial/atmel_serial.c
> +++ b/drivers/tty/serial/atmel_serial.c
> @@ -880,6 +880,7 @@ static int atmel_prepare_tx_dma(struct uart_port *port)
>  	config.direction = DMA_MEM_TO_DEV;
>  	config.dst_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
>  	config.dst_addr = port->mapbase + ATMEL_US_THR;
> +	config.dst_maxburst = 1;
>  
>  	ret = dmaengine_slave_config(atmel_port->chan_tx,
>  				     &config);
> @@ -1059,6 +1060,7 @@ static int atmel_prepare_rx_dma(struct uart_port *port)
>  	config.direction = DMA_DEV_TO_MEM;
>  	config.src_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
>  	config.src_addr = port->mapbase + ATMEL_US_RHR;
> +	config.src_maxburst = 1;
>  
>  	ret = dmaengine_slave_config(atmel_port->chan_rx,
>  				     &config);
> 


-- 
Nicolas Ferre



More information about the linux-arm-kernel mailing list