diff options
author | Nikesh Oswal <noswal@nvidia.com> | 2011-12-28 15:07:36 +0530 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2011-12-30 10:48:19 +0530 |
commit | 2078cb5cd2e382c1419217231bbce22dbf92c127 (patch) | |
tree | 537daa76194ae323f86aa79b906c7ac2054af4bc /sound/soc/tegra/tegra_wm8753.c | |
parent | 3a73bba61fbe76853106c18820fcbb27cd8357f8 (diff) |
Revert "ASoC: Tegra WM8753 machine: Disable regulator when not in use"
We must keep the regulator ON always else spurious interrupts
are generated.
This reverts commit 0bdf658f5cd064e41cbbb12a6d1eff5fc0bd09f9.
Bug: 916893
Bug: 918912
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Change-Id: I8effc272b71cf103da6f142b949091db9d953742
Reviewed-on: http://git-master/r/72364
Tested-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Sumit Bhattacharya <sumitb@nvidia.com>
Diffstat (limited to 'sound/soc/tegra/tegra_wm8753.c')
-rw-r--r-- | sound/soc/tegra/tegra_wm8753.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/sound/soc/tegra/tegra_wm8753.c b/sound/soc/tegra/tegra_wm8753.c index d57d92963bc5..0b2a431d500e 100644 --- a/sound/soc/tegra/tegra_wm8753.c +++ b/sound/soc/tegra/tegra_wm8753.c @@ -287,27 +287,9 @@ static int tegra_hw_free(struct snd_pcm_substream *substream) return 0; } -static int tegra_wm8753_startup(struct snd_pcm_substream *substream) -{ - struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct tegra_wm8753 *machine = snd_soc_card_get_drvdata(rtd->card); - - return regulator_enable(machine->audio_reg); -} - -static void tegra_wm8753_shutdown(struct snd_pcm_substream *substream) -{ - struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct tegra_wm8753 *machine = snd_soc_card_get_drvdata(rtd->card); - - regulator_disable(machine->audio_reg); -} - static struct snd_soc_ops tegra_wm8753_ops = { .hw_params = tegra_wm8753_hw_params, .hw_free = tegra_hw_free, - .startup = tegra_wm8753_startup, - .shutdown = tegra_wm8753_shutdown, }; static struct snd_soc_ops tegra_bt_sco_ops = { @@ -452,6 +434,14 @@ static int tegra_wm8753_init(struct snd_soc_pcm_runtime *rtd) ret = PTR_ERR(machine->audio_reg); return ret; } + + ret = regulator_enable(machine->audio_reg); + if (ret) { + dev_err(card->dev, "cannot enable avddio_audio reg\n"); + regulator_put(machine->audio_reg); + machine->audio_reg = NULL; + return ret; + } } if (gpio_is_valid(pdata->gpio_spkr_en)) { |