[alsa-devel] [RFC][PATCH] ASoC: Add soc_remove_dai_links
Liam Girdwood
lrg at slimlogic.co.uk
Fri Apr 8 19:35:32 CEST 2011
On Fri, 2011-04-08 at 14:50 +0900, Kuninori Morimoto wrote:
> card->num_rtd should be 0 after soc_romve_dai_link
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> ---
> To Mark, Liam
>
> I'm not sure that this is correct patch for ASoC.
> But without this patch, below command doesn't work
>
> ex) FSI-AK4642 case
>
> # cd /sys/bus/platform/drivers/fsi-ak4642-audio
> # echo sh_fsi2_a_ak4643.0 > unbind
> # echo sh_fsi2_a_ak4643.0 > bind *1
>
> *1
> soc_new_pcm isn't called, and "aplay -l" doens't show fsi-ak4642.
> snd_soc_instantiate_card return around /* bind comleted ? */
>
Can you confirm are you unloading (all ?) then reloading the driver
modules in this test case ?
> sound/soc/soc-core.c | 16 ++++++++++++----
> 1 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index 4dda589..9cd0770 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> @@ -1451,6 +1451,16 @@ static void soc_remove_dai_link(struct snd_soc_card *card, int num)
> }
> }
>
> +static void soc_remove_dai_links(struct snd_soc_card *card)
> +{
> + int i;
> +
> + for (i = 0; i < card->num_rtd; i++)
> + soc_remove_dai_link(card, i);
> +
> + card->num_rtd = 0;
> +}
> +
> static void soc_set_name_prefix(struct snd_soc_card *card,
> struct snd_soc_codec *codec)
> {
> @@ -1947,8 +1957,7 @@ probe_aux_dev_err:
> soc_remove_aux_dev(card, i);
>
> probe_dai_err:
> - for (i = 0; i < card->num_links; i++)
> - soc_remove_dai_link(card, i);
> + soc_remove_dai_links(card);
>
> card_probe_error:
> if (card->remove)
> @@ -2010,8 +2019,7 @@ static int soc_cleanup_card_resources(struct snd_soc_card *card)
> soc_remove_aux_dev(card, i);
>
> /* remove and free each DAI */
> - for (i = 0; i < card->num_rtd; i++)
> - soc_remove_dai_link(card, i);
> + soc_remove_dai_links(card);
>
> soc_cleanup_card_debugfs(card);
>
Thanks
Liam
More information about the Alsa-devel
mailing list