On Tue, Jun 21, 2016 at 04:02:05PM +0000, Appana Durga Kedareswara Rao wrote:
> 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)
what is a stream in this context?
> 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.
Then why are you not registering 16 channels for this? That should give you
channel to operate on!
>
> tdest:
> TDEST provides routing information for the data stream.
pls elobrate
> TDEST values are static for the entire packet.
what do these mean
>
> 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.
what is this used for?
>
> 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.
what is this used for?
>
> ax_user:
> Sideband signals used for user-defined information
> ARUSER values and their interpretations are user-defined
How is it used by client?
>
> ax_cache:
> Cache type this signal provides additional information about the cacheable
> Characteristics of the transfer.
and what are those...
>
> 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.
dmaengine provides channel as an argument so it is quite odd that you need
to differentiate b/w different channels. This only makes me worry that
things are not standard and fishy
--
~Vinod