Bug 105269 - [BAT] igt@pm_rpm@basic-* - fail - wait_for_suspended()
Summary: [BAT] igt@pm_rpm@basic-* - fail - wait_for_suspended()
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: Other All
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard: ReadyForDev
Keywords:
Depends on:
Blocks:
 
Reported: 2018-02-27 12:55 UTC by Marta Löfstedt
Modified: 2018-04-20 11:07 UTC (History)
1 user (show)

See Also:
i915 platform: BDW, HSW
i915 features: power/runtime PM


Attachments

Description Marta Löfstedt 2018-02-27 12:55:43 UTC
Starting at CI_DRM_3839

https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3839/fi-bdw-5557u/igt@pm_rpm@basic-pci-d3-state.html
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3839/fi-hsw-4770/igt@pm_rpm@basic-pci-d3-state.html
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3839/fi-bdw-5557u/igt@pm_rpm@basic-rte.html
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3839/fi-hsw-4770/igt@pm_rpm@basic-rte.html
	

(pm_rpm:4467) CRITICAL: Test assertion failure function basic_subtest, file pm_rpm.c:720:
(pm_rpm:4467) CRITICAL: Failed assertion: wait_for_suspended()
Subtest basic-rte failed.

is this related to bug 105069 where an audio patch was reverted.
Comment 1 Marta Löfstedt 2018-02-27 13:25:21 UTC
Note CI_DRM_3839 is first 4.16.0-rc3, however, 4.16.0-rc3 at https://intel-gfx-ci.01.org/tree/linus/ doesn't reproduce the issue.
Comment 2 Marta Löfstedt 2018-02-27 13:30:23 UTC
Reproduced on my BDW NUCi3 drm-tip
Comment 3 Marta Löfstedt 2018-02-27 14:36:21 UTC
I believe something i weird on drm-tip.

commit 6d167e8d8eaeb7574583e47e207914d3089be0a4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Feb 14 11:34:21 2018 +0000

    Revert "ALSA: hda: Make use of core codec functions to sync power state"
    
    This reverts commit 3b5b899ca67db07a4c4825911072221f99e157e2.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=105069
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 5bc3a7468e17..e018ecbf78a8 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -2702,6 +2702,32 @@ 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
@@ -2764,7 +2790,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 = snd_hda_sync_power_state(codec, fg, power_state);
+               state = hda_sync_power_state(codec, fg, power_state);
                if (!(state & AC_PWRST_ERROR))
                        break;
        }


However, when I open the sound/pci/hda/hda_codec.c there is no:
static unsigned int hda_sync_power_state(...) function and:

		state = snd_hda_sync_power_state(codec, fg, power_state);
Comment 4 Chris Wilson 2018-02-27 17:34:19 UTC
Rebuilt topic/core-for-CI. Doing a rebase onto v4.16-rc3 lost the magic git was using to order the two series together, it does require keeping the merge commit of sound/next into topic/core-for-CI.
Comment 5 Jani Saarinen 2018-04-20 11:07:09 UTC
Closing, please re-open if still occurs.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.