Re: [PATCH v5 3/6] dmaengine: Add support for repeating transactions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Vinod,

On Fri, Jul 03, 2020 at 11:24:41PM +0530, Vinod Koul wrote:
> On 03-07-20, 20:47, Laurent Pinchart wrote:
> > On Fri, Jul 03, 2020 at 11:07:10PM +0530, Vinod Koul wrote:
> >> On 03-07-20, 20:22, Laurent Pinchart wrote:
> >>> On Fri, Jul 03, 2020 at 10:40:39PM +0530, Vinod Koul wrote:
> >>>> On 28-05-20, 05:52, Laurent Pinchart wrote:
> >>>> 
> >>>>> @@ -176,6 +178,18 @@ struct dma_interleaved_template {
> >>>>>   * @DMA_PREP_CMD: tell the driver that the data passed to DMA API is command
> >>>>>   *  data and the descriptor should be in different format from normal
> >>>>>   *  data descriptors.
> >>>>> + * @DMA_PREP_REPEAT: tell the driver that the transaction shall be automatically
> >>>>> + *  repeated when it ends if no other transaction has been issued on the same
> >>>>> + *  channel. If other transactions have been issued, this transaction completes
> >>>>> + *  normally. This flag is only applicable to interleaved transactions and is
> >>>>> + *  ignored for all other transaction types.
> >>>> 
> >>>> 1. Let us not restrict this to only interleave (hint we can in future
> >>>> replace cyclic API)
> >>> 
> >>> Peter wanted to already implement support for DMA_PREP_REPEAT in other
> >>> transaction types, and you replied that you would prefer not enabling
> >>> APIs without users, waiting for the first user of DMA_PREP_REPEAT with a
> >>> non-interleaved transaction to do so. Your comment here seems to
> >>> contract that. Which way do you want to go ?
> >> 
> >> I would like to change the language of the explanation to not forbid
> >> other uses, but they would be enabled in txn when we have users..
> > 
> > The documentation isn't set in stone, it can be updated when support for
> > DMA_PREP_REPEAT will be enabled in other transaction types. I think it's
> > better to have the documentation and code match, the documentation
> > should describe the current implementation. I can add an additional
> > sentence at the end of the paragraph to state "Support for this flag in
> > other transaction types may be added in the future if the need arises."
> > if that makes you feel better about it.
> 
> Okay I will be okay with that caveat
> 
> >>>> 2. DMA_PREP_REPEAT telling the transaction shall be automatically
> >>>> repeated is okay. No issues with that
> >>>> 
> >>>>> + * @DMA_PREP_LOAD_EOT: tell the driver that the transaction shall replaced any
> >>>> 
> >>>> s/replaced/replace
> >>>> 
> >>>>> + *  active repeated (as indicated by DMA_PREP_REPEAT) transaction when the
> >>>>> + *  repeated transaction terminate. Not setting this flag when the previously
> >>>>> + *  queued transaction is marked with DMA_PREP_REPEAT will cause the new
> >>>>> + *  transaction to never be processed and stay in the issued queue forever.
> >>>>> + *  The flag is ignored if the previous transaction is not a repeated
> >>>>> + *  transaction.
> >>>> 
> >>>> I am happy with this bit, I think we dont need to specify something like
> >>>> DMA_PREP_LOAD_NEXT given the explanation here, so adding
> >>>> DMA_PREP_LOAD_EOT would mean that.
> >>> 
> >>> Just to clarify, does that mean I don't need to add a DMA_PREP_LOAD_NEXT
> >>> flag in the API ?
> >>> 
> >>>> Can we add a corresponding EOB as well to complete this
> >>> 
> >>> What's EOB ?
> >> 
> >> End of Burst, DMA would complete current burst and then terminate. I do
> >> understand it is not applicable for your case as your hw doesn't support
> >> it and would be unused but this is another case which would be useful so
> >> for completeness we should add this
> > 
> > Why not add it when we'll have a user for it ? How can you otherwise
> > guarantee that it's a correct API if there's not even a single user that
> > we can test the design with ?
> 
> Okay lets not add but add a note that additional flags can be added when
> required like EOB
>
> Also can we add a note in Documentation about these flags and how they
> should be used for repeating transactions.

Done, and I've added the notes regarding future extensions (support of
non-interleaved repeated transactions, and EOB) there too, as it made
more sense than in the header file. The new patches are in your mailbox
:-)

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux