diff options
author | Liam Girdwood <liam.girdwood@wolfsonmicro.com> | 2006-10-16 21:19:48 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2007-02-09 09:00:59 +0100 |
commit | 12e74f7d430655f541b85018ea62bcd669094bd7 (patch) | |
tree | d97b97de278201a6d6b8644b6a7d2f1e7d75bcee /sound/soc/soc-core.c | |
parent | cbcc2c4c07bd34586c7fd8d7513d3a397d39ce3c (diff) |
[ALSA] ASoC - Fix build warnings in soc-core.c
This patch fixes some build warnings in soc-core.c
Changes:-
o Check the return value of soc_ac97_dev_register()
o Check return value of calls to device_create_file()
Signed-off-by: Liam Girdwood <liam.girdwood@wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r-- | sound/soc/soc-core.c | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 8d6ff047d7a0..2ce0c8251dc3 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1438,12 +1438,18 @@ int snd_soc_register_card(struct snd_soc_device *socdev) { struct snd_soc_codec *codec = socdev->codec; struct snd_soc_machine *machine = socdev->machine; - int ret = 0, i, ac97 = 0; + int ret = 0, i, ac97 = 0, err = 0; mutex_lock(&codec->mutex); for(i = 0; i < machine->num_links; i++) { - if (socdev->machine->dai_link[i].init) - socdev->machine->dai_link[i].init(codec); + if (socdev->machine->dai_link[i].init) { + err = socdev->machine->dai_link[i].init(codec); + if (err < 0) { + printk(KERN_ERR "asoc: failed to init %s\n", + socdev->machine->dai_link[i].stream_name); + continue; + } + } if (socdev->machine->dai_link[i].cpu_dai->type == SND_SOC_DAI_AC97) ac97 = 1; } @@ -1456,17 +1462,28 @@ int snd_soc_register_card(struct snd_soc_device *socdev) if (ret < 0) { printk(KERN_ERR "asoc: failed to register soundcard for codec %s\n", codec->name); - mutex_unlock(&codec->mutex); - return ret; + goto out; } #ifdef CONFIG_SND_SOC_AC97_BUS - if (ac97) - soc_ac97_dev_register(codec); + if (ac97) { + ret = soc_ac97_dev_register(codec); + if (ret < 0) { + printk(KERN_ERR "asoc: AC97 device register failed\n"); + snd_card_free(codec->card); + goto out; + } + } #endif - snd_soc_dapm_sys_add(socdev->dev); - device_create_file(socdev->dev, &dev_attr_codec_reg); + err = snd_soc_dapm_sys_add(socdev->dev); + if (err < 0) + printk(KERN_WARNING "asoc: failed to add dapm sysfs entries\n"); + + err = device_create_file(socdev->dev, &dev_attr_codec_reg); + if (err < 0) + printk(KERN_WARNING "asoc: failed to add codec sysfs entries\n"); +out: mutex_unlock(&codec->mutex); return ret; } |