[alsa-devel] [PATCH 10/18] ASoC: Add card registration API

Takashi Iwai tiwai at suse.de
Tue Dec 9 15:17:16 CET 2008


At Tue,  9 Dec 2008 14:01:34 +0000,
Mark Brown wrote:
> 
> ASoC v2 allows cards, codecs and platforms to instantiate separately,
> with the overall ASoC device only being instantiated once all the
> required components have registered. As part of backporting Liam's work
> introduce an initial version of the card registration functions. At
> present these do nothing active and are internal only, they will be
> exposed to machine drivers after further backporting.  Adding this now
> allows the datastructures used for dynamic card instantiation to be
> built up gradually.
> 
> Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
(snip)
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index 2f2a8d9..44fbd71 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
(snip)
> @@ -784,6 +790,14 @@ static int soc_probe(struct platform_device *pdev)
>  	/* Bodge while we push things out of socdev */
>  	card->socdev = socdev;
>  
> +	/* Bodge while we unpick instantiation */
> +	card->dev = &pdev->dev;
> +	ret = snd_soc_register_card(card);
> +	if (ret != 0) {
> +		dev_err(&pdev->dev, "Failed to register card\n");
> +		return ret;
> +	}
> +

I guess unregister call is missing in the error path of soc_probe()?


Takashi


More information about the Alsa-devel mailing list