From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vinod Koul Subject: Re: [PATCH 2/2] ARM: EXYNOS: support burst mode for for dev-to-mem and dev-to-mem transmit Date: Mon, 4 Mar 2013 11:15:56 +0530 Message-ID: <20130304054556.GG22513@intel.com> References: <00eb01ce0e45$20223c90$6066b5b0$%kim@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mga11.intel.com ([192.55.52.93]:21245 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750727Ab3CDFqU (ORCPT ); Mon, 4 Mar 2013 00:46:20 -0500 Content-Disposition: inline In-Reply-To: <00eb01ce0e45$20223c90$6066b5b0$%kim@samsung.com> Sender: linux-samsung-soc-owner@vger.kernel.org List-Id: linux-samsung-soc@vger.kernel.org To: Boojin Kim Cc: linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 'Kukjin Kim' , 'Russell King' , 'Dan Williams' , 'Jaswinder Singh' , 'Ben Dooks' 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 > --- > 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 > > > From mboxrd@z Thu Jan 1 00:00:00 1970 From: vinod.koul@intel.com (Vinod Koul) Date: Mon, 4 Mar 2013 11:15:56 +0530 Subject: [PATCH 2/2] ARM: EXYNOS: support burst mode for for dev-to-mem and dev-to-mem transmit In-Reply-To: <00eb01ce0e45$20223c90$6066b5b0$%kim@samsung.com> References: <00eb01ce0e45$20223c90$6066b5b0$%kim@samsung.com> Message-ID: <20130304054556.GG22513@intel.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 > --- > 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 > > >