public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: Manasi Navare <manasi.d.navare@intel.com>
Cc: igt-dev@lists.freedesktop.org,
	Anusha Srivatsa <anusha.srivatsa@intel.com>,
	Petri Latvala <petri.latvala@intel.com>
Subject: Re: [igt-dev] [PATCH i-g-t v3 2/2] tests/kms_dp_dsc: Restore the value of force dsc enable
Date: Wed, 10 Apr 2019 15:46:39 +0300	[thread overview]
Message-ID: <20190410124639.GC18457@ideak-desk.fi.intel.com> (raw)
In-Reply-To: <20190409014619.8148-2-manasi.d.navare@intel.com>

On Mon, Apr 08, 2019 at 06:46:19PM -0700, Manasi Navare wrote:
> This patch saves off the original value of force_dsc_en and
> restores it back after each test and in the igt exit handler
> so that it gets restored on any failure/assertion.
> 
> Suggested-by: Imre Deak <imre.deak@intel.com>
> Cc: Petri Latvala <petri.latvala@intel.com>
> Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Cc: Imre Deak <imre.deak@intel.com>
> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>

Looks good, thanks:
Reviewed-by: Imre Deak <imre.deak@intel.com>

> ---
>  tests/kms_dp_dsc.c | 49 +++++++++++++++++++++++++++++++++++++++-------
>  1 file changed, 42 insertions(+), 7 deletions(-)
> 
> diff --git a/tests/kms_dp_dsc.c b/tests/kms_dp_dsc.c
> index 7ba7c4ef..1bfefbf2 100644
> --- a/tests/kms_dp_dsc.c
> +++ b/tests/kms_dp_dsc.c
> @@ -65,6 +65,9 @@ typedef struct {
>  	char conn_name[128];
>  } data_t;
>  
> +bool force_dsc_en_orig;
> +int force_dsc_restore_fd = -1;
> +
>  static inline void manual(const char *expected)
>  {
>  	igt_debug_manual_check("all", expected);
> @@ -120,19 +123,44 @@ static void force_dp_dsc_enable(data_t *data)
>  	igt_assert_f(ret > 0, "debugfs_write failed");
>  }
>  
> -static void clear_dp_dsc_enable(data_t *data)
> +static bool is_force_dsc_enabled(data_t *data)
>  {
>  	char file_name[128] = {0};
> -	int ret;
> +	char buf[512];
>  
>  	strcpy(file_name, data->conn_name);
>  	strcat(file_name, "/i915_dsc_fec_support");
> -	igt_debug ("Clearing DSC enable on %s\n", data->conn_name);
> -	ret = igt_sysfs_write(data->debugfs_fd, file_name, "0", 1);
> -	igt_assert_f(ret > 0, "debugfs_write failed");
> +	igt_debugfs_read(data->drm_fd, file_name, buf);
> +
> +	return strstr(buf, "Force_DSC_Enable: yes");
>  }
>  
> -static void test_cleanup(data_t *data) {
> +static void save_force_dsc_en(data_t *data)
> +{
> +	char file_name[128] = {0};
> +
> +	force_dsc_en_orig = is_force_dsc_enabled(data);
> +	strcpy(file_name, data->conn_name);
> +	strcat(file_name, "/i915_dsc_fec_support");
> +	force_dsc_restore_fd = openat(igt_debugfs_dir(data->drm_fd),
> +				      file_name, O_WRONLY);
> +	igt_assert(force_dsc_restore_fd >= 0);
> +}
> +
> +static void restore_force_dsc_en(void)
> +{
> +	if (force_dsc_restore_fd < 0)
> +		return;
> +
> +	igt_debug("Restoring DSC enable\n");
> +	igt_assert(write(force_dsc_restore_fd, force_dsc_en_orig ? "1" : "0", 1) == 1);
> +
> +	close(force_dsc_restore_fd);
> +	force_dsc_restore_fd = -1;
> +}
> +
> +static void test_cleanup(data_t *data)
> +{
>  	igt_plane_t *primary;
>  
>  	if (data->output) {
> @@ -144,6 +172,11 @@ static void test_cleanup(data_t *data) {
>  	}
>  }
>  
> +static void kms_dp_dsc_exit_handler(int sig)
> +{
> +	restore_force_dsc_en();
> +}
> +
>  
>  /*
>   * Re-probe connectors and do a modeset with DSC
> @@ -169,6 +202,7 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
>  		bool enabled;
>  
>  		igt_debug("DSC is supported on %s\n", data->conn_name);
> +		save_force_dsc_en(data);
>  		force_dp_dsc_enable(data);
>  
>  		igt_output_set_pipe(data->output, data->pipe);
> @@ -191,7 +225,7 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
>  		manual("RGB test pattern without corruption");
>  
>  		enabled = is_dp_dsc_enabled(data);
> -		clear_dp_dsc_enable(data);
> +		restore_force_dsc_en();
>  
>  		igt_assert_f(enabled,
>  			     "Default DSC enable failed on Connector: %s Pipe: %s\n",
> @@ -231,6 +265,7 @@ igt_main
>  		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
>  		data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
>  		kmstest_set_vt_graphics_mode();
> +		igt_install_exit_handler(kms_dp_dsc_exit_handler);
>  		igt_display_require(&data.display, data.drm_fd);
>  		igt_require(res = drmModeGetResources(data.drm_fd));
>  	}
> -- 
> 2.19.1
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  reply	other threads:[~2019-04-10 12:47 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-09  1:46 [igt-dev] [PATCH i-g-t v3 1/2] tests/kms_dp_dsc: Force a full modeset when we force dsc enable Manasi Navare
2019-04-09  1:46 ` [igt-dev] [PATCH i-g-t v3 2/2] tests/kms_dp_dsc: Restore the value of " Manasi Navare
2019-04-10 12:46   ` Imre Deak [this message]
2019-04-10 18:11     ` Manasi Navare
2019-04-09  2:17 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v3,1/2] tests/kms_dp_dsc: Force a full modeset when we " Patchwork
2019-04-09  8:35 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2019-04-10 10:51 ` [igt-dev] [PATCH i-g-t v3 1/2] " Imre Deak
2019-04-10 18:10   ` Manasi Navare

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190410124639.GC18457@ideak-desk.fi.intel.com \
    --to=imre.deak@intel.com \
    --cc=anusha.srivatsa@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=manasi.d.navare@intel.com \
    --cc=petri.latvala@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox