aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2014-03-12 19:03:58 -0400
committerMark Brown <broonie@linaro.org>2014-03-12 19:03:58 -0400
commitda8ab21cfea80655a0f7bbbc3f2fa0975970b8cb (patch)
tree66d5a4804f0a15b5dc224bb2de9b0d9cb208eb91 /include/sound
parentc6c124225f9551d78a19c291a2e204618f7e1e92 (diff)
parent5c1d5f091dc39eecf9a34a8be01492d14c23ad91 (diff)
Merge remote-tracking branch 'asoc/topic/core' into asoc-next
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/soc-dai.h1
-rw-r--r--include/sound/soc.h24
2 files changed, 23 insertions, 2 deletions
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
index 71f27c403194..8763e539c487 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -270,6 +270,7 @@ struct snd_soc_dai {
270 /* parent platform/codec */ 270 /* parent platform/codec */
271 struct snd_soc_platform *platform; 271 struct snd_soc_platform *platform;
272 struct snd_soc_codec *codec; 272 struct snd_soc_codec *codec;
273 struct snd_soc_component *component;
273 274
274 struct snd_soc_card *card; 275 struct snd_soc_card *card;
275 276
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 9a001472b96a..37b470c1e127 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -413,6 +413,10 @@ struct snd_pcm_substream *snd_soc_get_dai_substream(struct snd_soc_card *card,
413struct snd_soc_pcm_runtime *snd_soc_get_pcm_runtime(struct snd_soc_card *card, 413struct snd_soc_pcm_runtime *snd_soc_get_pcm_runtime(struct snd_soc_card *card,
414 const char *dai_link); 414 const char *dai_link);
415 415
416bool snd_soc_runtime_ignore_pmdown_time(struct snd_soc_pcm_runtime *rtd);
417void snd_soc_runtime_activate(struct snd_soc_pcm_runtime *rtd, int stream);
418void snd_soc_runtime_deactivate(struct snd_soc_pcm_runtime *rtd, int stream);
419
416/* Utility functions to get clock rates from various things */ 420/* Utility functions to get clock rates from various things */
417int snd_soc_calc_frame_size(int sample_size, int channels, int tdm_slots); 421int snd_soc_calc_frame_size(int sample_size, int channels, int tdm_slots);
418int snd_soc_params_to_frame_size(struct snd_pcm_hw_params *params); 422int snd_soc_params_to_frame_size(struct snd_pcm_hw_params *params);
@@ -656,12 +660,19 @@ struct snd_soc_component {
656 const char *name; 660 const char *name;
657 int id; 661 int id;
658 struct device *dev; 662 struct device *dev;
663
664 unsigned int active;
665
666 unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */
667
659 struct list_head list; 668 struct list_head list;
660 669
661 struct snd_soc_dai_driver *dai_drv; 670 struct snd_soc_dai_driver *dai_drv;
662 int num_dai; 671 int num_dai;
663 672
664 const struct snd_soc_component_driver *driver; 673 const struct snd_soc_component_driver *driver;
674
675 struct list_head dai_list;
665}; 676};
666 677
667/* SoC Audio Codec device */ 678/* SoC Audio Codec device */
@@ -683,7 +694,6 @@ struct snd_soc_codec {
683 694
684 /* runtime */ 695 /* runtime */
685 struct snd_ac97 *ac97; /* for ad-hoc ac97 devices */ 696 struct snd_ac97 *ac97; /* for ad-hoc ac97 devices */
686 unsigned int active;
687 unsigned int cache_bypass:1; /* Suppress access to the cache */ 697 unsigned int cache_bypass:1; /* Suppress access to the cache */
688 unsigned int suspended:1; /* Codec is in suspend PM state */ 698 unsigned int suspended:1; /* Codec is in suspend PM state */
689 unsigned int probed:1; /* Codec has been probed */ 699 unsigned int probed:1; /* Codec has been probed */
@@ -709,7 +719,6 @@ struct snd_soc_codec {
709 719
710 /* dapm */ 720 /* dapm */
711 struct snd_soc_dapm_context dapm; 721 struct snd_soc_dapm_context dapm;
712 unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */
713 722
714#ifdef CONFIG_DEBUG_FS 723#ifdef CONFIG_DEBUG_FS
715 struct dentry *debugfs_codec_root; 724 struct dentry *debugfs_codec_root;
@@ -1168,6 +1177,17 @@ static inline bool snd_soc_volsw_is_stereo(struct soc_mixer_control *mc)
1168 return 1; 1177 return 1;
1169} 1178}
1170 1179
1180static inline bool snd_soc_component_is_active(
1181 struct snd_soc_component *component)
1182{
1183 return component->active != 0;
1184}
1185
1186static inline bool snd_soc_codec_is_active(struct snd_soc_codec *codec)
1187{
1188 return snd_soc_component_is_active(&codec->component);
1189}
1190
1171int snd_soc_util_init(void); 1191int snd_soc_util_init(void);
1172void snd_soc_util_exit(void); 1192void snd_soc_util_exit(void);
1173 1193