[PATCH 2/2] redo
Chris Wilson
chris at chris-wilson.co.uk
Tue Feb 13 17:39:44 UTC 2018
---
sound/pci/hda/hda_codec.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index e018ecbf78a8..caa4323e0772 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -2710,21 +2710,27 @@ static unsigned int hda_sync_power_state(struct hda_codec *codec,
unsigned int power_state)
{
unsigned long end_time = jiffies + msecs_to_jiffies(500);
- unsigned int state, actual_state;
+ unsigned int state;
+ int count;
- for (;;) {
+ for (count = 0; count < 500; count++) {
state = snd_hda_codec_read(codec, fg, 0,
AC_VERB_GET_POWER_STATE, 0);
- if (state & AC_PWRST_ERROR)
+ if (state & AC_PWRST_ERROR) {
+ msleep(20);
break;
- actual_state = (state >> 4) & 0x0f;
- if (actual_state == power_state)
+ }
+
+ if ((state >> 4) & 0x0f == power_state)
break;
+
if (time_after_eq(jiffies, end_time))
break;
+
/* wait until the codec reachs to the target state */
msleep(1);
}
+
return state;
}
--
2.16.1
More information about the Intel-gfx-trybot
mailing list