DMA: EDMA: Split out PaRAM set calculations into its own function

PaRAM set calculation is abstracted into its own function to
enable better reuse for other DMA cases. Currently it only
implements the Slave case.

This provides a much cleaner abstraction to the internals of the
PaRAM set. However, any PaRAM attributes that are not common to
all DMA types must be set separately. This function only calculates
the most-common attributes.

Also added comments clarifying A-sync case calculations.

Signed-off-by: Joel Fernandes <joelf@ti.com>
DMA: EDMA: Add support for Cyclic DMA

Using the PaRAM configuration function that we split for reuse by the
different DMA types, we implement Cyclic DMA support.
For the cyclic case, we pass different configuration paramters to this
function, and add all the Cyclic-specific code separately.
Callbacks are handled transparently as usual by the virt-dma layer.
Linking is handled the same way as the slave SG case.

Signed-off-by: Joel Fernandes <joelf@ti.com>
sound: soc: soc-dmaengine-pcm: Add support for new DMAEngine request API

Formerly these resources were coming HWMOD on OMAP-like SoCs. With the
impending removal of HWMOD data, drivers are being converted to use the
"of-dma" method of requesting DMA channels which from DT and can be obtained
using the dma_request_slave_channel API. Add support to the soc-dmaengine-pcm
helpers so that we can fetch and open channels using this method.

Signed-off-by: Joel Fernandes <joelf@ti.com>
sound: soc: davinci-pcm: Convert to use cyclic EDMA

Using snd_dmaengine_pcm helpers, we handle the common PCM ops
and channel request mechanism.

Also we setup the DMA parameters for DMA Engine and call the
respective API to get everything setup.

Signed-off-by: Joel Fernandes <joelf@ti.com>
dma: edma: Cyclic handling of interrupts

Enable interrupts for every "period"/"slot" and handle the DMA
callbacks differently. Record the fact that an edesc is cyclic,
during the prep stage.

Signed-off-by: Joel Fernandes <joelf@ti.com>
Prints ftw\!

Signed-off-by: Joel Fernandes <joelf@ti.com>