forked from Minki/linux
ASoC: dapm: Pass snd_soc_card directly to soc_dpcm_runtime_update()
soc_dpcm_runtime_update() operates on a ASoC card as a whole. Currently it takes a snd_soc_dapm_widget as its only parameter though. The widget is then used to look up the card and is otherwise unused. This patch changes the function to take a pointer to the card directly. This makes it possible to to call soc_dpcm_runtime_update() for updates which are not related to one specific widget. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
63c69a6e41
commit
c3f48ae6fd
@ -133,6 +133,6 @@ void snd_soc_dpcm_be_set_state(struct snd_soc_pcm_runtime *be, int stream,
|
||||
/* internal use only */
|
||||
int soc_dpcm_be_digital_mute(struct snd_soc_pcm_runtime *fe, int mute);
|
||||
int soc_dpcm_debugfs_add(struct snd_soc_pcm_runtime *rtd);
|
||||
int soc_dpcm_runtime_update(struct snd_soc_dapm_widget *);
|
||||
int soc_dpcm_runtime_update(struct snd_soc_card *);
|
||||
|
||||
#endif
|
||||
|
@ -1986,7 +1986,7 @@ int snd_soc_dapm_mux_update_power(struct snd_soc_dapm_widget *widget,
|
||||
ret = soc_dapm_mux_update_power(widget, kcontrol, mux, e);
|
||||
mutex_unlock(&card->dapm_mutex);
|
||||
if (ret > 0)
|
||||
soc_dpcm_runtime_update(widget);
|
||||
soc_dpcm_runtime_update(card);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(snd_soc_dapm_mux_update_power);
|
||||
@ -2032,7 +2032,7 @@ int snd_soc_dapm_mixer_update_power(struct snd_soc_dapm_widget *widget,
|
||||
ret = soc_dapm_mixer_update_power(widget, kcontrol, connect);
|
||||
mutex_unlock(&card->dapm_mutex);
|
||||
if (ret > 0)
|
||||
soc_dpcm_runtime_update(widget);
|
||||
soc_dpcm_runtime_update(card);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(snd_soc_dapm_mixer_update_power);
|
||||
|
@ -1832,18 +1832,10 @@ static int dpcm_run_old_update(struct snd_soc_pcm_runtime *fe, int stream)
|
||||
/* Called by DAPM mixer/mux changes to update audio routing between PCMs and
|
||||
* any DAI links.
|
||||
*/
|
||||
int soc_dpcm_runtime_update(struct snd_soc_dapm_widget *widget)
|
||||
int soc_dpcm_runtime_update(struct snd_soc_card *card)
|
||||
{
|
||||
struct snd_soc_card *card;
|
||||
int i, old, new, paths;
|
||||
|
||||
if (widget->codec)
|
||||
card = widget->codec->card;
|
||||
else if (widget->platform)
|
||||
card = widget->platform->card;
|
||||
else
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock_nested(&card->mutex, SND_SOC_CARD_CLASS_RUNTIME);
|
||||
for (i = 0; i < card->num_rtd; i++) {
|
||||
struct snd_soc_dapm_widget_list *list;
|
||||
|
Loading…
Reference in New Issue
Block a user