diff options
author | Sumit Singh <sumsingh@nvidia.com> | 2016-03-08 07:36:34 -0500 |
---|---|---|
committer | Sameer Pujar <spujar@nvidia.com> | 2017-08-07 05:26:22 -0400 |
commit | 6dfd7b7048d21f687af9c499d1f162e402f1d361 (patch) | |
tree | f0887b50ff6bd1c52bd0230b7a32e6d8e28975a5 /sound/pci/hda | |
parent | 40483cda5d2539e6d3d4062b2d164b408315874b (diff) |
ALSA: HDA: Enable clocks during SC7 if already runtime suspended
During SC7, if device is already runtime suspended, then executing
azx_enter_link_reset in hda_tegra_suspend, which access registers,
will cause hard hang because clocks are already off. So, in this case
clocks should be enabled so that executing azx_enter_link_reset works
fine.
Bug 200178787
Change-Id: I625f5750f12f24226e3586f26a6bd1f23082a06e
Signed-off-by: Sumit Singh <sumsingh@nvidia.com>
Reviewed-on: http://git-master/r/1026435
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'sound/pci/hda')
-rw-r--r-- | sound/pci/hda/hda_tegra.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_tegra.c b/sound/pci/hda/hda_tegra.c index 22f917889..95d818fec 100644 --- a/sound/pci/hda/hda_tegra.c +++ b/sound/pci/hda/hda_tegra.c | |||
@@ -301,6 +301,9 @@ static int hda_tegra_suspend(struct device *dev) | |||
301 | struct azx *chip = card->private_data; | 301 | struct azx *chip = card->private_data; |
302 | struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip); | 302 | struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip); |
303 | 303 | ||
304 | if (pm_runtime_suspended(dev)) | ||
305 | hda_tegra_enable_clocks(hda); | ||
306 | |||
304 | snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); | 307 | snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); |
305 | 308 | ||
306 | azx_stop_chip(chip); | 309 | azx_stop_chip(chip); |