[PATCH 2/4] dmaengine: vdma: Add support for mulit-channel dma mode

Appana Durga Kedareswara Rao appana.durga.rao at xilinx.com
Tue Jun 21 09:02:05 PDT 2016


Hi Vinod,

	Thanks for the review...

> 
> On Fri, Jun 10, 2016 at 02:42:32PM +0530, Kedareswara rao Appana wrote:
> > This patch adds support for AXI DMA multi-channel dma mode
> > Multichannel mode enables DMA to connect to multiple masters And
> > slaves on the streaming side.
> > In Multichannel mode AXI DMA supports 2D transfers.
> 
> Funny formatting!

Will fix in next version...

> 
> Can you elobrate what you meant by Multichannel mode? This patch seems to
> do two things, one is to add interleaved dma support and something else. Can
> you explain the latter part?

AXI DMA has two Stream interfaces (Memory to Stream MM2S and Stream to Memory S2MM)
In Multi-Channel dma mode each stream interface can be configured up to 16 channels.
In Multi-channel DMA mode IP supports only interleaved transfers (2-D transfers).

> 
> >  /**
> > + * struct xilinx_mcdma_config - DMA Multi channel configuration
> > +structure
> > + * @tdest: Channel to operate on
> > + * @tid:   Channel configuration
> > + * @tuser: Tuser configuration
> > + * @ax_user: ax_user value
> > + * @ax_cache: ax_cache value
> > + */
> > +struct xilinx_mcdma_config {
> > +	u8 tdest;
> > +	u8 tid;
> > +	u8 tuser;
> > +	u8 ax_user;
> > +	u8 ax_cache;
> 
> can you describe these in details, what do these do, what are the values to be
> programmed?

As said above In Multi-Channel Mode each Stream interface can be 
Configured up to 16 channels each channel is differentiated based on the tdest and tid values.

tdest:
TDEST provides routing information for the data stream.
TDEST values are static for the entire packet.

tid:
Provides a stream identifier. TID values are static for entire packet.
TID values provided in the TX descriptor field are presented on
TID signals of the streaming side.

tuser:
Sideband signals used for user-defined information.
TUSER values are static for entire packet. TUSER values provided in the TX
Descriptor field are presented on TUSER signals of streaming side.

ax_user: 
Sideband signals used for user-defined information
ARUSER values and their interpretations are user-defined

ax_cache:
Cache type this signal provides additional information about the cacheable
Characteristics of the transfer.

In the above parameters tdest and tid are mandatory to differentiate b/w different channels
Other parameters are optional please let me know if you don't want me to 
Include other optional parameters will remove in the next version.

Regards,
Kedar.

> 
> --
> ~Vinod



More information about the linux-arm-kernel mailing list