[igt-dev] [PATCH i-g-t] tests/kms_dp_dsc: Force a full modeset when we force dsc enable

Imre Deak imre.deak at intel.com
Wed Apr 3 13:25:10 UTC 2019


On Tue, Apr 02, 2019 at 12:31:19PM -0700, Manasi Navare wrote:
> DSC enable gets configured during compute_config and needs
> a full modeset to force DSC.
> Sometimes in between the tests, if the initial output is same as the
> mode being set for DSC then it will not do a full modeset.
> So we disable the output before forcing a mode with DSC enable.
> 
> Fixes: db19bccc1c22 ("test/kms_dp_dsc: Basic KMS test to validate VESA DSC on DP/eDP")
> Cc: Petri Latvala <petri.latvala at intel.com>
> Cc: Anusha Srivatsa <anusha.srivatsa at intel.com>
> Cc: Imre Deak <imre.deak at intel.com>
> Signed-off-by: Manasi Navare <manasi.d.navare at intel.com>
> ---
>  tests/kms_dp_dsc.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/kms_dp_dsc.c b/tests/kms_dp_dsc.c
> index da93cd74..f3a61029 100644
> --- a/tests/kms_dp_dsc.c
> +++ b/tests/kms_dp_dsc.c
> @@ -174,6 +174,11 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
>  				      &data->fb_test_pattern);
>  		primary = igt_output_get_plane_type(data->output,
>  						    DRM_PLANE_TYPE_PRIMARY);
> +		/* Disable the output first */
> +		igt_plane_set_fb(primary, NULL);

I think no need to reset the plane, it's enough to set PIPE_NONE to turn
off the output.

> +		igt_output_set_pipe(data->output, PIPE_NONE);

You are missing here the additional commit needed to turn off the output
and then set back the output to data->pipe before the commit below. The
igt_output_set_pipe() call in run_test() won't be needed either.

> +
> +		/* Now set the output to the desired mode */
>  		igt_plane_set_fb(primary, &data->fb_test_pattern);
>  		igt_display_commit(&data->display);
>  
> @@ -187,7 +192,7 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
>  		clear_dp_dsc_enable(data);

Instead of this we should restore the original value of
i915_dsc_fec_support and also make sure we restore it if the test fails
and aborts somewhere before this call. Take a look at a look at the
various places changing debugfs entries that call
igt_install_exit_handler() for an idea how to do this.

>  
>  		igt_assert_f(enabled,
> -			     "Default DSC enable failed on Connector: %s Pipe: %s",
> +			     "\nDefault DSC enable failed on Connector: %s Pipe: %s",
>  			     data->conn_name,
>  			     kmstest_pipe_name(data->pipe));
>  	} else {
> -- 
> 2.19.1
> 


More information about the igt-dev mailing list