This reverts commit 52e7aa851c22613f9f57e01a6bdb1970e6cb3a41,
re-enabling commit 3b5b899ca67db07a4c4825911072221f99e157e2.

References: https://bugs.freedesktop.org/show_bug.cgi?id=105069
Cc: Abhijeet Kumar <abhijeet.ku...@intel.com>
---
 sound/pci/hda/hda_codec.c | 28 +---------------------------
 sound/pci/hda/hda_local.h |  6 +++++-
 2 files changed, 6 insertions(+), 28 deletions(-)

diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index e018ecbf78a8..5bc3a7468e17 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -2702,32 +2702,6 @@ void snd_hda_codec_set_power_to_all(struct hda_codec 
*codec, hda_nid_t fg,
 }
 EXPORT_SYMBOL_GPL(snd_hda_codec_set_power_to_all);
 
-/*
- * wait until the state is reached, returns the current state
- */
-static unsigned int hda_sync_power_state(struct hda_codec *codec,
-                                        hda_nid_t fg,
-                                        unsigned int power_state)
-{
-       unsigned long end_time = jiffies + msecs_to_jiffies(500);
-       unsigned int state, actual_state;
-
-       for (;;) {
-               state = snd_hda_codec_read(codec, fg, 0,
-                                          AC_VERB_GET_POWER_STATE, 0);
-               if (state & AC_PWRST_ERROR)
-                       break;
-               actual_state = (state >> 4) & 0x0f;
-               if (actual_state == power_state)
-                       break;
-               if (time_after_eq(jiffies, end_time))
-                       break;
-               /* wait until the codec reachs to the target state */
-               msleep(1);
-       }
-       return state;
-}
-
 /**
  * snd_hda_codec_eapd_power_filter - A power filter callback for EAPD
  * @codec: the HDA codec
@@ -2790,7 +2764,7 @@ static unsigned int hda_set_power_state(struct hda_codec 
*codec,
                                                   state);
                        snd_hda_codec_set_power_to_all(codec, fg, power_state);
                }
-               state = hda_sync_power_state(codec, fg, power_state);
+               state = snd_hda_sync_power_state(codec, fg, power_state);
                if (!(state & AC_PWRST_ERROR))
                        break;
        }
diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h
index 5b5c324c99b9..321e78baa63c 100644
--- a/sound/pci/hda/hda_local.h
+++ b/sound/pci/hda/hda_local.h
@@ -622,7 +622,11 @@ snd_hda_check_power_state(struct hda_codec *codec, 
hda_nid_t nid,
 {
        return snd_hdac_check_power_state(&codec->core, nid, target_state);
 }
-
+static inline bool snd_hda_sync_power_state(struct hda_codec *codec,
+                          hda_nid_t nid, unsigned int target_state)
+{
+       return snd_hdac_sync_power_state(&codec->core, nid, target_state);
+}
 unsigned int snd_hda_codec_eapd_power_filter(struct hda_codec *codec,
                                             hda_nid_t nid,
                                             unsigned int power_state);
-- 
2.16.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to