From: Ulf Hansson Date: Mon, 22 Oct 2012 12:32:04 +0000 (+0200) Subject: ASoC: Ux500: Fixup use of clocks X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=fe36a0b2b55c66f25407cc1f713b631bf7da75fa;p=deliverable%2Flinux.git ASoC: Ux500: Fixup use of clocks Make sure clocks are being prepared and unprepared as well as enabled and disabled. Signed-off-by: Ulf Hansson Acked-by: Linus Walleij Signed-off-by: Mark Brown --- diff --git a/sound/soc/ux500/ux500_msp_dai.c b/sound/soc/ux500/ux500_msp_dai.c index be94bf9bf94f..e11187fb433f 100644 --- a/sound/soc/ux500/ux500_msp_dai.c +++ b/sound/soc/ux500/ux500_msp_dai.c @@ -398,11 +398,13 @@ static int ux500_msp_dai_startup(struct snd_pcm_substream *substream, return ret; } - /* Enable clock */ + /* Prepare and enable clock */ dev_dbg(dai->dev, "%s: Enabling MSP-clock.\n", __func__); - clk_enable(drvdata->clk); + ret = clk_prepare_enable(drvdata->clk); + if (ret) + regulator_disable(drvdata->reg_vape); - return 0; + return ret; } static void ux500_msp_dai_shutdown(struct snd_pcm_substream *substream, @@ -428,8 +430,8 @@ static void ux500_msp_dai_shutdown(struct snd_pcm_substream *substream, __func__, dai->id, snd_pcm_stream_str(substream)); } - /* Disable clock */ - clk_disable(drvdata->clk); + /* Disable and unprepare clock */ + clk_disable_unprepare(drvdata->clk); /* Disable regulator */ ret = regulator_disable(drvdata->reg_vape);