diff options
| -rw-r--r-- | lib/igt_pm.c | 29 | ||||
| -rw-r--r-- | lib/igt_pm.h | 1 |
2 files changed, 30 insertions, 0 deletions
diff --git a/lib/igt_pm.c b/lib/igt_pm.c index 9d441e1b..b409ec46 100644 --- a/lib/igt_pm.c +++ b/lib/igt_pm.c @@ -37,6 +37,7 @@ #include <dirent.h> #include "drmtest.h" +#include "igt_kms.h" #include "igt_pm.h" #include "igt_aux.h" #include "igt_sysfs.h" @@ -827,3 +828,31 @@ bool igt_pm_pc8_plus_residencies_enabled(int msr_fd) return true; } + +/** + * i915_output_is_lpsp_capable: + * @drm_fd: fd to drm device + * @output: igt output for which lpsp capability need to be evaluated + * Check lpsp capability for a given output. + * + * Returns: + * True if given output is lpsp capable otherwise false. + */ +bool i915_output_is_lpsp_capable(int drm_fd, igt_output_t *output) +{ + char buf[256]; + int fd, len; + + fd = igt_debugfs_connector_dir(drm_fd, output->name, O_RDONLY); + igt_require(fd >= 0); + len = igt_debugfs_simple_read(fd, "i915_lpsp_capability", + buf, sizeof(buf)); + + /* if i915_lpsp_capability not present return the capability as false */ + if (len < 0) + return false; + + close(fd); + + return strstr(buf, "LPSP: capable"); +} diff --git a/lib/igt_pm.h b/lib/igt_pm.h index 5e438452..162d3ca3 100644 --- a/lib/igt_pm.h +++ b/lib/igt_pm.h @@ -53,5 +53,6 @@ enum igt_runtime_pm_status igt_get_runtime_pm_status(void); bool igt_wait_for_pm_status(enum igt_runtime_pm_status status); bool igt_pm_dmc_loaded(int debugfs); bool igt_pm_pc8_plus_residencies_enabled(int msr_fd); +bool i915_output_is_lpsp_capable(int drm_fd, igt_output_t *output); #endif /* IGT_PM_H */ |
