[PATCH 2/2] ARM: EXYNOS: support burst mode for for dev-to-mem and dev-to-mem transmit

Vinod Koul vinod.koul at intel.com
Mon Mar 4 00:45:56 EST 2013


On Tue, Feb 19, 2013 at 11:02:09AM +0900, Boojin Kim wrote:
> This patch adds to support burst mode for for dev-to-mem and dev-to-mem transmit
> 
> Signed-off-by: Boojin Kim <boojin.kim at samsung.com>
> ---
>  arch/arm/plat-samsung/dma-ops.c              |   10 ++++++++--
>  arch/arm/plat-samsung/include/plat/dma-ops.h |    1 +
>  2 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/plat-samsung/dma-ops.c b/arch/arm/plat-samsung/dma-ops.c
> index d088afa..c25e842 100644
> --- a/arch/arm/plat-samsung/dma-ops.c
> +++ b/arch/arm/plat-samsung/dma-ops.c
> @@ -54,14 +54,20 @@ static int samsung_dmadev_config(unsigned ch,
>  		slave_config.direction = param->direction;
>  		slave_config.src_addr = param->fifo;
>  		slave_config.src_addr_width = param->width;
> -		slave_config.src_maxburst = 1;
Hi Boojin,

what do you mean by the busrt mode here?

fwiw the meanining of above maxburst is:
@src_maxburst: the maximum number of words (note: words, as in
units of the src_addr_width member, not bytes) that can be sent
in one burst to the device. Typically something like half the
FIFO depth on I/O peripherals so you don't overflow it. This
may or may not be applicable on memory sources.

> +		if (param->maxburst)
> +			slave_config.src_maxburst = param->maxburst;
> +		else
> +			slave_config.src_maxburst = 1;
>  		dmaengine_slave_config(chan, &slave_config);
>  	} else if (param->direction == DMA_MEM_TO_DEV) {
>  		memset(&slave_config, 0, sizeof(struct dma_slave_config));
>  		slave_config.direction = param->direction;
>  		slave_config.dst_addr = param->fifo;
>  		slave_config.dst_addr_width = param->width;
> -		slave_config.dst_maxburst = 1;
> +		if (param->maxburst)
> +			slave_config.dst_maxburst = param->maxburst;
> +		else
> +			slave_config.dst_maxburst = 1;
>  		dmaengine_slave_config(chan, &slave_config);
>  	} else {
>  		pr_warn("unsupported direction\n");
> diff --git a/arch/arm/plat-samsung/include/plat/dma-ops.h b/arch/arm/plat-samsung/include/plat/dma-ops.h
> index f5144cd..95893c7 100644
> --- a/arch/arm/plat-samsung/include/plat/dma-ops.h
> +++ b/arch/arm/plat-samsung/include/plat/dma-ops.h
> @@ -35,6 +35,7 @@ struct samsung_dma_prep {
>  struct samsung_dma_config {
>  	enum dma_transfer_direction direction;
>  	enum dma_slave_buswidth width;
> +	u32 maxburst;
>  	dma_addr_t fifo;
>  };
> 
> --
> 1.7.5.4
> 
> 
> 



More information about the linux-arm-kernel mailing list