diff options
author | Paulo Zanoni <paulo.r.zanoni@intel.com> | 2014-10-21 11:45:59 -0200 |
---|---|---|
committer | Paulo Zanoni <paulo.r.zanoni@intel.com> | 2014-10-22 16:23:42 -0200 |
commit | ac2079596c0a8119f77d58ae3d5e3f8e13e5b96d (patch) | |
tree | 7848a36e59b21d85319e6dede1ce040a5d011316 /lib/igt_aux.c | |
parent | a06071c0cf66f1a077563fb3ffa15856a57db18d (diff) |
lib/igt_aux: move audio RPM code to igt_setup_runtime_pm()
If we don't enable audio runtime PM, the audio driver won't release
its reference, the refcount won't ever become zero, so we will never
actually runtime suspend. So move this code from pm_rpm.c to
igt_aux.c, so kms_flip - and any other IGT test case using RPM - can
benefit from it.
Previously, if you ran pm_rpm before running the other tests - or if
you just didn't have snd_hda_intel loaded - you wouldn't notice this
bug.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78893
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Diffstat (limited to 'lib/igt_aux.c')
-rw-r--r-- | lib/igt_aux.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/igt_aux.c b/lib/igt_aux.c index 01654f00..0e1eeea4 100644 --- a/lib/igt_aux.c +++ b/lib/igt_aux.c @@ -431,6 +431,20 @@ bool igt_setup_runtime_pm(void) if (pm_status_fd >= 0) return true; + /* The Audio driver can get runtime PM references, so we need to make + * sure its runtime PM is enabled, so it can release the refs and + * actually enable us to runtime suspend. */ + fd = open("/sys/module/snd_hda_intel/parameters/power_save", O_WRONLY); + if (fd >= 0) { + igt_assert(write(fd, "1\n", 2) == 2); + close(fd); + } + fd = open("/sys/bus/pci/devices/0000:00:03.0/power/control", O_WRONLY); + if (fd >= 0) { + igt_assert(write(fd, "auto\n", 5) == 5); + close(fd); + } + /* Our implementation uses autosuspend. Try to set it to 0ms so the test * suite goes faster and we have a higher probability of triggering race * conditions. */ |