summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sound/soc.h12
-rw-r--r--sound/soc/soc-pcm.c10
2 files changed, 14 insertions, 8 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 5c2b4f4..0495b4a 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -660,6 +660,9 @@ struct snd_soc_component {
const char *name;
int id;
struct device *dev;
+
+ unsigned int active;
+
struct list_head list;
struct snd_soc_dai_driver *dai_drv;
@@ -687,7 +690,6 @@ struct snd_soc_codec {
/* runtime */
struct snd_ac97 *ac97; /* for ad-hoc ac97 devices */
- unsigned int active;
unsigned int cache_bypass:1; /* Suppress access to the cache */
unsigned int suspended:1; /* Codec is in suspend PM state */
unsigned int probed:1; /* Codec has been probed */
@@ -1172,9 +1174,15 @@ static inline bool snd_soc_volsw_is_stereo(struct soc_mixer_control *mc)
return 1;
}
+static inline bool snd_soc_component_is_active(
+ struct snd_soc_component *component)
+{
+ return component->active != 0;
+}
+
static inline bool snd_soc_codec_is_active(struct snd_soc_codec *codec)
{
- return codec->active != 0;
+ return snd_soc_component_is_active(&codec->component);
}
int snd_soc_util_init(void);
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 71a01dd..98b4629 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -61,9 +61,8 @@ void snd_soc_runtime_activate(struct snd_soc_pcm_runtime *rtd, int stream)
cpu_dai->active++;
codec_dai->active++;
- if (cpu_dai->codec)
- cpu_dai->codec->active++;
- codec_dai->codec->active++;
+ cpu_dai->component->active++;
+ codec_dai->component->active++;
}
/**
@@ -93,9 +92,8 @@ void snd_soc_runtime_deactivate(struct snd_soc_pcm_runtime *rtd, int stream)
cpu_dai->active--;
codec_dai->active--;
- if (cpu_dai->codec)
- cpu_dai->codec->active--;
- codec_dai->codec->active--;
+ cpu_dai->component->active--;
+ codec_dai->component->active--;
}
/**
OpenPOWER on IntegriCloud