Re: dmaengine and using tx descriptors multiple times

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

 



Vinod Koul <vinod.koul@xxxxxxxxx> writes:

> On Mon, Mar 16, 2015 at 08:05:21AM +0100, Robert Jarzmik wrote:
>> > On Fri, Mar 13, 2015 at 10:23:50AM +0100, Robert Jarzmik wrote:
>> > Before this pls read up on this Documentation/crypto/async-tx-api.txt
>> > Section 3.3
>> Ah you mean the "ACK" flag is what I'm looking for, right ? I can use that, as
>> long as I can resubmit a tx without "acking" it, which looks fine wrt the
>> documentation you made me read.
> That is how async_tx API is supposed to use this
Great, works for me.

>> 
>> One more thing, there is another usecase, in which case you'll want to have a
>> release function :
>>  - driver does a tx = dmaengine_prep_slave_sg()
>>  - driver is forced to shutdown :
>>    => dmaengine_terminate_all()
>> 
>> The tx was never submitted. How should the resources by freed in that case ?
> well dmaengine_terminate_all() is designed to cleanup the channel. Once this
> call is invoked, all descriptors in all lists: active, pending, freed are
> cleaned up. All transactions must be cleaned including current active ones.

Ah ok, I understand, so it's the slave driver responsability to keep track of
the transaction so that it can be freed. Actually the slave drivers I had a look
at don't keep that "track".

And that's perfectly in sync with one of my future patches to "virt-dma" which
creates another queue "allocated" to enhance the existing submitted, issued and
completed ones.

I'm almost finished with my new dma driver for pxa architectures, testing it for
1 week on camera flows. Once that is over, I'll submit it, to kill off the dma
support in arch/arm/mach-pxa ...

Thanks for your time, I have all the information I needed to finish it now.

Cheers.

-- 
Robert
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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