linux-stable/drivers/dma/qcom
Sinan Kaya 99efdb3e48 dmaengine: qcom_hidma: correct API violation for submit
Current code is violating the DMA Engine API by putting the submitted
requests directly into the HW queue. This causes queued transactions
to be started by another thread as soon as the first one finishes.

The DMA Engine document clearly states this.

"dmaengine_submit() will not start the DMA operation".

Move HW queuing of the requests into the issue_pending() routine
to comply with API requirements also create a new queued state for
temporarily holding the requests.

A descriptor goes through these transitions now.

free->prepared->queued->active->completed->free

as opposed to

free->prepared->active->completed->free

Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
2017-07-03 10:39:51 +05:30
..
bam_dma.c dmaengine: qcom-bam-dma: add __maybe_unused annotations for PM 2016-07-06 22:39:43 +05:30
hidma.c dmaengine: qcom_hidma: correct API violation for submit 2017-07-03 10:39:51 +05:30
hidma.h dmaengine: qcom_hidma: correct API violation for submit 2017-07-03 10:39:51 +05:30
hidma_dbg.c dmaengine: qcom_hidma: make pending_tre_count atomic 2016-11-03 18:55:44 +05:30
hidma_ll.c dmaengine: qcom_hidma: disable/enable IRQs on pause/resume 2017-03-27 10:43:38 +05:30
hidma_mgmt.c dmaengine: qcom_hidma: allow ACPI/DT parameters to be overridden 2017-06-26 08:27:39 +05:30
hidma_mgmt.h
hidma_mgmt_sys.c
Kconfig
Makefile dmaengine: qcom_hidma: add debugfs hooks 2016-05-14 11:54:45 +05:30