On 2020-03-23 08:32, Anshuman Gupta wrote: > This lib function evaluate the lpsp capability from > the connector specific debugfs attribute i915_lpsp_info. > > Signed-off-by: Anshuman Gupta > --- > lib/igt_pm.c | 27 +++++++++++++++++++++++++++ > lib/igt_pm.h | 1 + > 2 files changed, 28 insertions(+) > > diff --git a/lib/igt_pm.c b/lib/igt_pm.c > index 9d441e1b..7a6cab7c 100644 > --- a/lib/igt_pm.c > +++ b/lib/igt_pm.c > @@ -37,6 +37,7 @@ > #include > > #include "drmtest.h" > +#include "igt_kms.h" > #include "igt_pm.h" > #include "igt_aux.h" > #include "igt_sysfs.h" > @@ -827,3 +828,29 @@ bool igt_pm_pc8_plus_residencies_enabled(int msr_fd) > > return true; > } > + > +/** > + * igt_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 igt_output_is_lpsp_capable(int drm_fd, igt_output_t *output) Do we have a file for i915-specific features? If not, maybe prefixing the function with i915 would help readers understand that this is an i915-specific function. > +{ > + 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_info", buf, sizeof(buf)); > + > + if (len < 0) > + igt_assert_eq(len, -ENODEV); > + > + close(fd); > + > + return strstr(buf, "LPSP capable"); > +} > diff --git a/lib/igt_pm.h b/lib/igt_pm.h > index 5e438452..076d8c27 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 igt_output_is_lpsp_capable(int drm_fd, igt_output_t *output); > > #endif /* IGT_PM_H */ >