[PATCH v7 02/15] DMA: PL330: Update PL330 DMA API driver

Vinod Koul vinod.koul at linux.intel.com
Mon Aug 29 09:55:41 EDT 2011


On Thu, 2011-08-25 at 11:13 +0900, Boojin Kim wrote:
> This patch updates following 3 items.
> @@ -69,6 +70,10 @@ struct dma_pl330_chan {
>  	 * NULL if the channel is available to be acquired.
>  	 */
>  	void *pl330_chid;
> +
> +	/* For D-to-M and M-to-D channels */
> +	int burst_sz; /* the peripheral fifo width */
> +	dma_addr_t fifo_addr;
>  };
Why should you store peripheral address and burst size in channel
structure. You should take these from the API and dma_slave_structure
>  
>  struct dma_pl330_dmac {
> @@ -456,7 +461,7 @@ static struct dma_pl330_desc *pl330_get_desc(struct dma_pl330_chan *pch)
>  
>  	if (peri) {
>  		desc->req.rqtype = peri->rqtype;
> -		desc->req.peri = peri->peri_id;
> +		desc->req.peri = pch->chan.chan_id;
>  	} else {
>  		desc->req.rqtype = MEMTOMEM;
>  		desc->req.peri = 0;
> @@ -582,7 +587,7 @@ pl330_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
>  	struct dma_pl330_peri *peri = chan->private;
>  	struct scatterlist *sg;
>  	unsigned long flags;
> -	int i, burst_size;
> +	int i;
>  	dma_addr_t addr;
>  
>  	if (unlikely(!pch || !sgl || !sg_len || !peri))
> @@ -598,8 +603,7 @@ pl330_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
>  		return NULL;
>  	}
>  
> -	addr = peri->fifo_addr;
> -	burst_size = peri->burst_sz;
> +	addr = pch->fifo_addr;
what you removed is the correct way to do...

-- 
~Vinod




More information about the linux-arm-kernel mailing list