summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorHuang Chao <chao7.huang@samsung.com>2014-06-13 13:28:36 +0800
committerChanho Park <chanho61.park@samsung.com>2014-08-08 15:25:16 +0900
commitc9188447c98f2b66013e3f993a8462bd39b9e968 (patch)
treef3d61aacf65a171184b7d921c37cb14046b7d5cc /arch
parentff84722f193a0691f030464bb935e3b8bc007670 (diff)
downloadlinux-3.10-c9188447c98f2b66013e3f993a8462bd39b9e968.tar.gz
linux-3.10-c9188447c98f2b66013e3f993a8462bd39b9e968.tar.bz2
linux-3.10-c9188447c98f2b66013e3f993a8462bd39b9e968.zip
ASoC: samsung: dma: Implement audio pause/resume callback operations
When the dma operations get called from audio platform driver, and users want to pause or resume the audio pcm stream when playback music, there should be the related pause and release callback operations for such requirements. This patch just implements the audio pause/resume callback operations by simply call the corresponding functions from the dma engine subsystem. Change-Id: Ifed8d2acf1cbc09f1bd5d37151dcf74255b20da0 Signed-off-by: Huang Chao <chao7.huang@samsung.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/plat-samsung/dma-ops.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/plat-samsung/dma-ops.c b/arch/arm/plat-samsung/dma-ops.c
index ec0d731b0e7..011f232f6f3 100644
--- a/arch/arm/plat-samsung/dma-ops.c
+++ b/arch/arm/plat-samsung/dma-ops.c
@@ -122,6 +122,16 @@ static inline int samsung_dmadev_flush(unsigned ch)
return dmaengine_terminate_all((struct dma_chan *)ch);
}
+static inline int samsung_dmadev_pause(unsigned ch)
+{
+ return dmaengine_pause((struct dma_chan *)ch);
+}
+
+static inline int samsung_dmadev_resume(unsigned ch)
+{
+ return dmaengine_resume((struct dma_chan *)ch);
+}
+
static struct samsung_dma_ops dmadev_ops = {
.request = samsung_dmadev_request,
.release = samsung_dmadev_release,
@@ -131,6 +141,8 @@ static struct samsung_dma_ops dmadev_ops = {
.started = NULL,
.flush = samsung_dmadev_flush,
.stop = samsung_dmadev_flush,
+ .pause = samsung_dmadev_pause,
+ .resume = samsung_dmadev_resume,
};
void *samsung_dmadev_get_ops(void)