[igt-dev] [PATCH i-g-t 1/1] lib/igt_aux : Skip SUSPEND_STATE_S3 if mem_sleep deep state is not supported
Gupta, Anshuman
anshuman.gupta at intel.com
Wed Aug 10 11:51:07 UTC 2022
> -----Original Message-----
> From: Tauro, Riana <riana.tauro at intel.com>
> Sent: Wednesday, August 10, 2022 3:10 PM
> To: igt-dev at lists.freedesktop.org
> Cc: Tauro, Riana <riana.tauro at intel.com>; Gupta, Anshuman
> <anshuman.gupta at intel.com>; Vivi, Rodrigo <rodrigo.vivi at intel.com>
> Subject: [PATCH i-g-t 1/1] lib/igt_aux : Skip SUSPEND_STATE_S3 if mem_sleep
> deep state is not supported
>
> Forcing s3 by setting mem_sleep to deep fails if s3 is not supported by platform
>
> Skip the test by checking if s3 is not one of the supported mem_sleep states
>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/6531
> Signed-off-by: Riana Tauro <riana.tauro at intel.com>
> ---
> lib/igt_aux.c | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/lib/igt_aux.c b/lib/igt_aux.c index d80a1935..edb53425 100644
> --- a/lib/igt_aux.c
> +++ b/lib/igt_aux.c
> @@ -882,6 +882,23 @@ static void set_mem_sleep(int power_dir, enum
> igt_mem_sleep sleep)
> mem_sleep_name[sleep]));
> }
>
> +static bool is_mem_sleep_state_supported(int power_dir, enum
> +igt_mem_sleep state) {
> + const char *str;
> + char *mem_sleep_states;
> +
> + igt_assert((mem_sleep_states = igt_sysfs_get(power_dir,
> +"mem_sleep")));
> +
> + str = strstr(mem_sleep_states, mem_sleep_name[state]);
> +
> + if (!str)
> + igt_info("mem_sleep state %s not supported.\nSupported
> mem_sleep states: %s\n",
> + mem_sleep_name[state], mem_sleep_states);
Nitpicking
With this It may print with []:
mem_sleep state deep not supported
Supported mem_sleep states: [s2idle] shallow
But as this could be an extra piece of information of current mem_sleep state as well.
Reviewed-by: Anshuman Gupta <anshuman.gupta at intel.com>
> +
> + free(mem_sleep_states);
> + return str;
> +}
> +
> /**
> * igt_system_suspend_autoresume:
> * @state: an #igt_suspend_state, the target suspend state @@ -923,6 +940,8
> @@ void igt_system_suspend_autoresume(enum igt_suspend_state state,
>
> if (state == SUSPEND_STATE_S3) {
> orig_mem_sleep = get_mem_sleep();
> + igt_skip_on_f(!is_mem_sleep_state_supported(power_dir,
> MEM_SLEEP_DEEP),
> + "S3 not supported in this system.\n");
> set_mem_sleep(power_dir, MEM_SLEEP_DEEP);
> igt_skip_on_f(get_mem_sleep() != MEM_SLEEP_DEEP,
> "S3 not possible in this system.\n");
> --
> 2.25.1
More information about the igt-dev
mailing list