aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sound/pci/hda/hda_codec.c6
-rw-r--r--sound/pci/hda/hda_intel.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 0de1f76733d..4a2f35ccbf0 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -1320,11 +1320,13 @@ int /*__devinit*/ snd_hda_codec_new(struct hda_bus *bus,
AC_VERB_GET_SUBSYSTEM_ID, 0);
}
+#ifdef CONFIG_SND_HDA_POWER_SAVE
codec->d3_stop_clk = snd_hda_codec_get_supported_ps(codec,
codec->afg ? codec->afg : codec->mfg,
AC_PWRST_CLKSTOP);
if (!codec->d3_stop_clk)
bus->power_keep_link_on = 1;
+#endif
/* power-up all before initialization */
hda_set_power_state(codec,
@@ -3544,7 +3546,9 @@ static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg,
int count;
unsigned int state;
+#ifdef CONFIG_SND_HDA_POWER_SAVE
codec->d3_stop_clk_ok = 0;
+#endif
if (codec->patch_ops.set_power_state) {
codec->patch_ops.set_power_state(codec, fg, power_state);
@@ -3569,9 +3573,11 @@ static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg,
break;
}
+#ifdef CONFIG_SND_HDA_POWER_SAVE
if ((power_state == AC_PWRST_D3)
&& codec->d3_stop_clk && (state & AC_PWRST_CLK_STOP_OK))
codec->d3_stop_clk_ok = 1;
+#endif
}
#ifdef CONFIG_SND_HDA_HWDEP
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 726f4208bd0..1c9c779dda5 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2528,8 +2528,10 @@ static int azx_runtime_suspend(struct device *dev)
struct snd_card *card = dev_get_drvdata(dev);
struct azx *chip = card->private_data;
+#ifdef CONFIG_SND_HDA_POWER_SAVE
if (!power_save_controller)
return -EAGAIN;
+#endif
azx_stop_chip(chip);
azx_clear_irq_pending(chip);