[igt-dev] [PATCH i-g-t v3 4/5] i915/i915_pm_rpm: Add PC10 display off test
Shankar, Uma
uma.shankar at intel.com
Sun Apr 18 19:37:37 UTC 2021
> -----Original Message-----
> From: igt-dev <igt-dev-bounces at lists.freedesktop.org> On Behalf Of Anshuman
> Gupta
> Sent: Wednesday, March 3, 2021 10:38 AM
> To: igt-dev at lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t v3 4/5] i915/i915_pm_rpm: Add PC10 display off test
>
> Add a test to validate PC10 residencies while all output's display is off.
>
> v2: used optimum pc10 timeout value.
Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar at intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta at intel.com>
> ---
> tests/i915/i915_pm_rpm.c | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c index
> 290d1223..b27c20bd 100644
> --- a/tests/i915/i915_pm_rpm.c
> +++ b/tests/i915/i915_pm_rpm.c
> @@ -102,6 +102,7 @@ enum plane_type {
> * Let's keep 3 seconds timeout for PC8 and 5 seconds for PC10.
> */
> #define PC8_TIMEOUT 3
> +#define PC10_TIMEOUT 5
>
> int drm_fd, msr_fd, pc8_status_fd;
> int debugfs;
> @@ -187,6 +188,16 @@ static bool pc8_plus_residency_changed(unsigned int
> timeout_sec)
> timeout_sec * 1000, 100);
> }
>
> +static bool pc10_residency_changed(unsigned int timeout_sec) {
> + uint64_t res_pc10;
> +
> + res_pc10 = get_residency(MSR_PC10_RES);
> +
> + return igt_wait(res_pc10 != get_residency(MSR_PC10_RES),
> + timeout_sec * 1000, 100);
> +}
> +
> static enum pc8_status get_pc8_status(void) {
> ssize_t n_read;
> @@ -863,6 +874,19 @@ static void pc8_residency_subtest(bool display_on)
> }
> }
>
> +static void pc10_residency_subtest(bool display_on) {
> + igt_require(has_pc8);
> + igt_require(AT_LEAST_GEN(ms_data.devid, 9));
> +
> + if (!display_on) {
> + /* Make sure PC10 residencies move! */
> + disable_all_screens_and_wait(&ms_data);
> + igt_assert_f(pc10_residency_changed(PC10_TIMEOUT),
> + "Machine is not reaching PC10 state with all screens
> disabled.\n");
> + }
> +}
> +
> static void modeset_subtest(enum screen_type type, int rounds, int wait_flags) {
> int i;
> @@ -2097,6 +2121,8 @@ igt_main_args("", long_options, help_str, opt_handler,
> NULL)
> pc8_residency_subtest(true);
> igt_subtest("pc8-residency-display-off")
> pc8_residency_subtest(false);
> + igt_subtest("pc10-residency-display-off")
> + pc10_residency_subtest(false);
> igt_subtest("debugfs-read")
> debugfs_read_subtest();
> igt_subtest("debugfs-forcewake-user")
> --
> 2.26.2
>
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
More information about the igt-dev
mailing list