forked from Minki/linux
ASoC: Add helper function to check whether a CODEC is active
Instead of directly checking the 'active' field of the CODEC struct add a new helper function that will return either true or false depending on whether the CODEC is active. This will make the migration to the component level easier. The patch also updates all CODEC drivers that check the active attribute to use the new helper function. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
a1a0cc0646
commit
5c898e74d1
@ -1172,6 +1172,11 @@ static inline bool snd_soc_volsw_is_stereo(struct soc_mixer_control *mc)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static inline bool snd_soc_codec_is_active(struct snd_soc_codec *codec)
|
||||
{
|
||||
return codec->active != 0;
|
||||
}
|
||||
|
||||
int snd_soc_util_init(void);
|
||||
void snd_soc_util_exit(void);
|
||||
|
||||
|
@ -722,7 +722,7 @@ static int adav80x_dai_startup(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_codec *codec = dai->codec;
|
||||
struct adav80x *adav80x = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
if (!codec->active || !adav80x->rate)
|
||||
if (!snd_soc_codec_is_active(codec) || !adav80x->rate)
|
||||
return 0;
|
||||
|
||||
return snd_pcm_hw_constraint_minmax(substream->runtime,
|
||||
@ -735,7 +735,7 @@ static void adav80x_dai_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_codec *codec = dai->codec;
|
||||
struct adav80x *adav80x = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
if (!codec->active)
|
||||
if (!snd_soc_codec_is_active(codec))
|
||||
adav80x->rate = 0;
|
||||
}
|
||||
|
||||
|
@ -400,7 +400,7 @@ static void tlv320aic23_shutdown(struct snd_pcm_substream *substream,
|
||||
struct aic23 *aic23 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
/* deactivate */
|
||||
if (!codec->active) {
|
||||
if (!snd_soc_codec_is_active(codec)) {
|
||||
udelay(50);
|
||||
snd_soc_write(codec, TLV320AIC23_ACTIVE, 0x0);
|
||||
}
|
||||
|
@ -461,7 +461,7 @@ static int dac33_set_fifo_mode(struct snd_kcontrol *kcontrol,
|
||||
if (dac33->fifo_mode == ucontrol->value.integer.value[0])
|
||||
return 0;
|
||||
/* Do not allow changes while stream is running*/
|
||||
if (codec->active)
|
||||
if (snd_soc_codec_is_active(codec))
|
||||
return -EPERM;
|
||||
|
||||
if (ucontrol->value.integer.value[0] < 0 ||
|
||||
|
@ -108,7 +108,7 @@ static int uda1380_write(struct snd_soc_codec *codec, unsigned int reg,
|
||||
/* the interpolator & decimator regs must only be written when the
|
||||
* codec DAI is active.
|
||||
*/
|
||||
if (!codec->active && (reg >= UDA1380_MVOL))
|
||||
if (!snd_soc_codec_is_active(codec) && (reg >= UDA1380_MVOL))
|
||||
return 0;
|
||||
pr_debug("uda1380: hw write %x val %x\n", reg, value);
|
||||
if (codec->hw_write(codec->control_data, data, 3) == 3) {
|
||||
|
@ -197,7 +197,7 @@ static int snd_wl1273_set_audio_route(struct snd_kcontrol *kcontrol,
|
||||
return 0;
|
||||
|
||||
/* Do not allow changes while stream is running */
|
||||
if (codec->active)
|
||||
if (snd_soc_codec_is_active(codec))
|
||||
return -EPERM;
|
||||
|
||||
if (ucontrol->value.integer.value[0] < 0 ||
|
||||
|
@ -201,7 +201,7 @@ static void wm8711_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_codec *codec = dai->codec;
|
||||
|
||||
/* deactivate */
|
||||
if (!codec->active) {
|
||||
if (!snd_soc_codec_is_active(codec)) {
|
||||
udelay(50);
|
||||
snd_soc_write(codec, WM8711_ACTIVE, 0x0);
|
||||
}
|
||||
|
@ -251,7 +251,7 @@ static int wm8753_set_dai(struct snd_kcontrol *kcontrol,
|
||||
if (wm8753->dai_func == ucontrol->value.integer.value[0])
|
||||
return 0;
|
||||
|
||||
if (codec->active)
|
||||
if (snd_soc_codec_is_active(codec))
|
||||
return -EBUSY;
|
||||
|
||||
ioctl = snd_soc_read(codec, WM8753_IOCTL);
|
||||
@ -1314,7 +1314,7 @@ static int wm8753_mute(struct snd_soc_dai *dai, int mute)
|
||||
/* the digital mute covers the HiFi and Voice DAC's on the WM8753.
|
||||
* make sure we check if they are not both active when we mute */
|
||||
if (mute && wm8753->dai_func == 1) {
|
||||
if (!codec->active)
|
||||
if (!snd_soc_codec_is_active(codec))
|
||||
snd_soc_write(codec, WM8753_DAC, mute_reg | 0x8);
|
||||
} else {
|
||||
if (mute)
|
||||
|
Loading…
Reference in New Issue
Block a user