Re: [PATCH 2/3] dmaengine: Add DMA_CTRL_REUSE

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

 



On 07/24/2015 09:12 PM, Robert Jarzmik wrote:
Vinod Koul <vinod.koul@xxxxxxxxx> writes:

On Fri, Jul 24, 2015 at 10:28:45AM +0200, Lars-Peter Clausen wrote:
I don' think we need set set and clear functions. We need them for
the ACK flag because the ACK flag can be set later on. But the REUSE
flag should be specified when the descriptor is created so the
driver can make the necessary preparations it might need to support
re-usable descriptors. Maybe we should call the flag
DMA_PREP_REUSABLE (like the other DMA_PREP_*) flag to reflect this.
The flow I have depicted is that descriptor prepare should not be linked to
it's reuse. The submit operation specifies if a descriptor can be reused or
not, so driver knows what to do after txn completion
While reusing if client wants to stop reusing it can clear reuse flag and
submit so that descriptor is freed up

I think the same way as Vinod.

Giving the dmaengine user the flexibility to reuse or not the descriptor is
great. Moreover, this flexibility will extend to userspace, as some dmaengine
users, such as v4l2, don't know if a descriptor will be reused : it's a
userspace decision whever to requeue the transmission or not, up to the driver.

Yeah, but typically you don't know whether the descriptor is going to be re-used or not when submitting it.

E.g. v4l2. The application will allocate the buffer and then call QBUF ioctl which will submit the buffer. The DMA fills the buffer and once it finishes the application uses the DQBUF ioctl to dequeue it. Now the application might stop capturing, or it might continue. In the later case it will use the QBUF ioctl again and the previously allocated descriptor will be re-used. When the initial QBUF is performed it is not known whether the buffer will be queued a second time and whether it should have the re-usable flag set.

So the re-usable flag should an indicator the DMAengine driver that the client might re-use the descriptor, not that it will definitely re-use it. For some drivers/controllers a re-usable descriptors might have special requirements and the DMAengine driver needs to know this during allocation of the descriptor to meet those requirements.

Which is why I think that re-usability should be a preparation flag. If it was set during allocation the client is allowed to submit the descriptor multiple times (But does not have to), otherwise not.
--
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