Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1432447 > unrolled thread
| Started by | Vinod Koul <vinod.koul@intel.com> |
|---|---|
| First post | 2016-06-28 06:30 +0200 |
| Last post | 2016-06-28 09:30 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH 2/4] dmaengine: vdma: Add support for mulit-channel dma mode Vinod Koul <vinod.koul@intel.com> - 2016-06-28 06:30 +0200
RE: [PATCH 2/4] dmaengine: vdma: Add support for mulit-channel dma mode Appana Durga Kedareswara Rao <appana.durga.rao@xilinx.com> - 2016-06-28 08:00 +0200
RE: [PATCH 2/4] dmaengine: vdma: Add support for mulit-channel dma mode Appana Durga Kedareswara Rao <appana.durga.rao@xilinx.com> - 2016-06-28 09:30 +0200
| From | Vinod Koul <vinod.koul@intel.com> |
|---|---|
| Date | 2016-06-28 06:30 +0200 |
| Subject | Re: [PATCH 2/4] dmaengine: vdma: Add support for mulit-channel dma mode |
| Message-ID | <rOSOS-1TL-3@gated-at.bofh.it> |
On Wed, Jun 22, 2016 at 07:04:28AM +0000, Appana Durga Kedareswara Rao wrote:
> > > >
> > > > 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?
>
> Stream means I/O transfer (Memory to I/O and I/O to Memory).
> Sorry if I confused you.
>
> >
> > > 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!
>
> The number of channels are configurable.
> We are registering number of Channels that h/w configured for.
>
> Will fix in the next version. Will remove this config.
> And based on the channel type will configure the h/w.
Looking at this you should redesign!
The vchan was designed to operate on 'virtual' channels. The hardware
channels can be independent of that.
Your IP seems to be a good fit for that approach. Do not link the two and
separate them. User can have a virtual channel. In your driver, you can
manage hardware channels...
>
> >
> > >
> > > tdest:
> > > TDEST provides routing information for the data stream.
> >
> > pls elobrate
>
> Need to configure this with the channel number that
> We would like to transfer data.
This should be internal to driver...
--
~Vinod
[toc] | [next] | [standalone]
| From | Appana Durga Kedareswara Rao <appana.durga.rao@xilinx.com> |
|---|---|
| Date | 2016-06-28 08:00 +0200 |
| Message-ID | <rOUdY-2IX-3@gated-at.bofh.it> |
| In reply to | #1432447 |
Hi Vinod,
Thanks for the review...
> > > > > > /**
> > > > > > + * 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!
> >
> > The number of channels are configurable.
> > We are registering number of Channels that h/w configured for.
> >
> > Will fix in the next version. Will remove this config.
> > And based on the channel type will configure the h/w.
>
> Looking at this you should redesign!
>
> The vchan was designed to operate on 'virtual' channels. The hardware channels
> can be independent of that.
>
> Your IP seems to be a good fit for that approach. Do not link the two and
> separate them. User can have a virtual channel. In your driver, you can manage
> hardware channels...
Fixed it in the v2 and posted the v2 series.
Please go thought it...
>
> >
> > >
> > > >
> > > > tdest:
> > > > TDEST provides routing information for the data stream.
> > >
> > > pls elobrate
> >
> > Need to configure this with the channel number that We would like to
> > transfer data.
>
> This should be internal to driver...
Fixed it in the v2 and posted the v2 series.
Please go thought it...
Regards,
Kedar.
>
> --
> ~Vinod
[toc] | [prev] | [next] | [standalone]
| From | Appana Durga Kedareswara Rao <appana.durga.rao@xilinx.com> |
|---|---|
| Date | 2016-06-28 09:30 +0200 |
| Message-ID | <rOVD4-3Lz-15@gated-at.bofh.it> |
| In reply to | #1432494 |
Hi Vinod,
> > > > > > > /**
> > > > > > > + * 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!
> > >
> > > The number of channels are configurable.
> > > We are registering number of Channels that h/w configured for.
> > >
> > > Will fix in the next version. Will remove this config.
> > > And based on the channel type will configure the h/w.
> >
> > Looking at this you should redesign!
> >
> > The vchan was designed to operate on 'virtual' channels. The hardware
> > channels can be independent of that.
> >
> > Your IP seems to be a good fit for that approach. Do not link the two
> > and separate them. User can have a virtual channel. In your driver,
> > you can manage hardware channels...
>
> Fixed it in the v2 and posted the v2 series.
> Please go thought it...
Sorry forgot to write explanation.
Without the need of virtual channels fixed it in the driver itself.
During probe based on the number of channels configuring the h/w
Accordingly user no need to aware of this configuration. User can request DMA
Channel in normal way the using dma_request_slave_channel or dma_request_channel
Posted v2 series please go through it.
Regards,
Kedar.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web