diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2012-10-22 08:32:04 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-10-22 09:28:17 -0400 |
commit | fe36a0b2b55c66f25407cc1f713b631bf7da75fa (patch) | |
tree | 76f65c9e0fe522c04fa8570a3a34752f8e3936d5 /sound/soc/ux500 | |
parent | 6f0c0580b70c89094b3422ba81118c7b959c7556 (diff) |
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 <ulf.hansson@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/ux500')
-rw-r--r-- | sound/soc/ux500/ux500_msp_dai.c | 12 |
1 files changed, 7 insertions, 5 deletions
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, | |||
398 | return ret; | 398 | return ret; |
399 | } | 399 | } |
400 | 400 | ||
401 | /* Enable clock */ | 401 | /* Prepare and enable clock */ |
402 | dev_dbg(dai->dev, "%s: Enabling MSP-clock.\n", __func__); | 402 | dev_dbg(dai->dev, "%s: Enabling MSP-clock.\n", __func__); |
403 | clk_enable(drvdata->clk); | 403 | ret = clk_prepare_enable(drvdata->clk); |
404 | if (ret) | ||
405 | regulator_disable(drvdata->reg_vape); | ||
404 | 406 | ||
405 | return 0; | 407 | return ret; |
406 | } | 408 | } |
407 | 409 | ||
408 | static void ux500_msp_dai_shutdown(struct snd_pcm_substream *substream, | 410 | 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, | |||
428 | __func__, dai->id, snd_pcm_stream_str(substream)); | 430 | __func__, dai->id, snd_pcm_stream_str(substream)); |
429 | } | 431 | } |
430 | 432 | ||
431 | /* Disable clock */ | 433 | /* Disable and unprepare clock */ |
432 | clk_disable(drvdata->clk); | 434 | clk_disable_unprepare(drvdata->clk); |
433 | 435 | ||
434 | /* Disable regulator */ | 436 | /* Disable regulator */ |
435 | ret = regulator_disable(drvdata->reg_vape); | 437 | ret = regulator_disable(drvdata->reg_vape); |