Skip to content

Commit

Permalink
[ALSA] Fix lockdep warning in ASoC machine probe
Browse files Browse the repository at this point in the history
Don't take the codec mutex during machine probe until we have registered
with ALSA, fixing a lockdep warning reported by Dmitry Baryshkov.
Cc: Dmitry Baryshkov <[email protected]>

Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
Signed-off-by: Jaroslav Kysela <[email protected]>
  • Loading branch information
broonie authored and perexg committed Jan 31, 2008
1 parent c518b35 commit 08c8efe
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions sound/soc/soc-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1101,7 +1101,6 @@ int snd_soc_register_card(struct snd_soc_device *socdev)
struct snd_soc_machine *machine = socdev->machine;
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) {
err = socdev->machine->dai_link[i].init(codec);
Expand All @@ -1127,12 +1126,14 @@ int snd_soc_register_card(struct snd_soc_device *socdev)
goto out;
}

mutex_lock(&codec->mutex);
#ifdef CONFIG_SND_SOC_AC97_BUS
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);
mutex_unlock(&codec->mutex);
goto out;
}
}
Expand All @@ -1145,8 +1146,10 @@ int snd_soc_register_card(struct snd_soc_device *socdev)
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);

out:
return ret;
}
EXPORT_SYMBOL_GPL(snd_soc_register_card);
Expand Down

0 comments on commit 08c8efe

Please sign in to comment.