[PATCH v2 3/4] dmaengine: vdma: Add 64 bit addressing support for the axi dma

Vinod Koul vinod.koul at intel.com
Mon Jun 6 23:17:01 PDT 2016


On Wed, May 18, 2016 at 01:17:32PM +0530, Kedareswara rao Appana wrote:
> +		if (chan->cyclic) {
> +			if (chan->ext_addr)
> +				dma_writeq(chan, XILINX_DMA_REG_TAILDESC,
> +					   chan->cyclic_seg_v->phys);
> +			else
> +				dma_ctrl_write(chan, XILINX_DMA_REG_TAILDESC,
> +					       chan->cyclic_seg_v->phys);
> +		} else {
> +			if (chan->ext_addr)
> +				dma_writeq(chan, XILINX_DMA_REG_TAILDESC,
> +					   tail_segment->phys);
> +			else
> +				dma_ctrl_write(chan, XILINX_DMA_REG_TAILDESC,
> +					       tail_segment->phys);

this looks ugly and repeated few times. Why not have xilinx_write() which
does either dma_writeq or dma_ctrl_write based on channel..

> +			if (chan->ext_addr) {
> +				hw->buf_addr = lower_32_bits(buf_addr +
> +						sg_used + (period_len * i));
> +				hw->buf_addr_msb = upper_32_bits(buf_addr +
> +						sg_used + (period_len * i));
> +			} else {
> +				hw->buf_addr = buf_addr + sg_used +
> +					       (period_len * i);
> +			}

similar wrapper here would make code more readable

-- 
~Vinod



More information about the linux-arm-kernel mailing list