summaryrefslogtreecommitdiff
path: root/include/sound
diff options
context:
space:
mode:
authorAlan Tull <alan.tull@freescale.com>2011-10-28 19:14:13 -0500
committerJason Liu <r64343@freescale.com>2012-01-09 21:04:03 +0800
commit4f8df6aa3fe251851cd59f287ae76707d0074ed2 (patch)
tree1cc1fa0c6d5726442017fcc913c3ec4a9069321c /include/sound
parent748952f514dc1731f4bfabc3de701e9b88170b8a (diff)
ENGR00161014 ASoC: don't clobber platform DMA driver ops
Previously, only one static struct for ops existed for all platform DMA drivers to share. Half of the ops are shared functions which don't have stubs in the ALSA core. The other half are initialized to point directly to ops in the platform driver. This creates problems where each time soc_new_pcm is called, the new platform driver's ops would overwrite a subset of the ops. Signed-off-by: Alan Tull <alan.tull@freescale.com>
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/soc-dai.h2
-rw-r--r--include/sound/soc.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
index 1bafe95dcf41..dc60e5e07226 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -172,6 +172,8 @@ struct snd_soc_dai_ops {
struct snd_soc_dai *);
int (*trigger)(struct snd_pcm_substream *, int,
struct snd_soc_dai *);
+ int (*ioctl)(struct snd_pcm_substream *, unsigned int, void *,
+ struct snd_soc_dai *);
/*
* For hardware based FIFO caused delay reporting.
* Optional.
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 3a4bd3a3c68d..0a9a21e0a199 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -496,6 +496,7 @@ struct snd_soc_ops {
int (*hw_free)(struct snd_pcm_substream *);
int (*prepare)(struct snd_pcm_substream *);
int (*trigger)(struct snd_pcm_substream *, int);
+ int (*ioctl)(struct snd_pcm_substream *, unsigned int, void *);
};
/* SoC cache ops */
@@ -805,6 +806,7 @@ struct snd_soc_pcm_runtime {
struct snd_soc_dai *cpu_dai;
struct delayed_work delayed_work;
+ struct snd_pcm_ops *ops;
};
/* mixer control */