All of lore.kernel.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] tests/kms_dp_dsc: Force a full modeset when we force dsc enable
Date: Wed, 3 Apr 2019 22:33:41 +0300	[thread overview]
Message-ID: <20190403193341.GA20770@ideak-desk.fi.intel.com> (raw)
In-Reply-To: <20190403182058.GA17236@intel.com>

On Wed, Apr 03, 2019 at 11:20:58AM -0700, Manasi Navare wrote:
> On Wed, Apr 03, 2019 at 04:25:10PM +0300, Imre Deak wrote:
> > 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@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>
> > > ---
> > >  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.
> 
> Oh I looked through all the other kms tests and there we always set
> the fb for PRIMARY plane to NULL then set the pipe to NULL.  But I
> guess if we disable to pipe output, the plane if its NULL or not
> shouldnt really matter.  So I should just have:
> 
> igt_plane_set_fb(primary, NULL);
> igt_display_commit(&data->display);

You need to set PIPE_NONE before the commit and then the actual pipe
before the rest of the sequence, like:

	igt_debug("DSC is supported on %s\n", data->conn_name);

	igt_output_set_pipe(data->output, PIPE_NONE);
	igt_display_commit(&data->display);

	force_dp_dsc_enable(...);

	igt_output_set_pipe(data->output, data->pipe);
	igt_create_pattern_fb(...);
	primary = ...
	igt_plane_set_fb(...);
	igt_display_commit(&data->display);

> Then set fb to the test pattern and display commit to set output to
> the desired mode corerct?
> 

> So why is it that I wont need the igt_output_set_pipe(output, pipe) in
> run_test()?  I see that all the kms tests use this call
> for_each_valid_output_on_pipe iterator

Because you will anyway set it to PIPE_NONE right afterwards in
update_display().

> > > +
> > > +		/* 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.
> 

> So save the original value of i915_dsc_fec_support() and restore that
> in test_cleanup()

Save the original value in force_dp_dsc_enable() and restore it in a new
restore_dp_dsc_enable() which you call instead of clear_dp_dsc_enable()
in update_display().

> and in the igt_fixture(), have:
> kmstest_set_vt_graphics_mode();
> igt_install_exit_handler()

The exit handler should be installed only after saving the original
value, so the handler will have the proper value to restore. Save/install
the exit handler only once even if force_dp_dsc_enable() is called
multiple times.

> 
> Manasi
> 
> > 
> > >  
> > >  		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
> > > 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  reply	other threads:[~2019-04-03 19:34 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-02 19:31 [igt-dev] [PATCH i-g-t] tests/kms_dp_dsc: Force a full modeset when we force dsc enable Manasi Navare
2019-04-02 20:10 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2019-04-03  7:46 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2019-04-03 10:06 ` [igt-dev] [PATCH i-g-t] " Petri Latvala
2019-04-03 13:25 ` Imre Deak
2019-04-03 18:20   ` Manasi Navare
2019-04-03 19:33     ` Imre Deak [this message]
2019-04-03 20:17       ` Manasi Navare
2019-04-03 20:34         ` Imre Deak
2019-04-03 20:49           ` Manasi Navare
2019-04-03 21:42             ` Imre Deak
2019-04-03 22:48               ` Manasi Navare
2019-04-03 23:02                 ` Imre Deak
2019-04-03 23:11                   ` Manasi Navare
2019-04-03 23:15                     ` Imre Deak
2019-04-04 23:44                       ` Manasi Navare
2019-04-05 10:06                         ` Imre Deak
2019-04-05 18:28                           ` Manasi Navare
2019-04-03 17:38 ` Srivatsa, Anusha

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=20190403193341.GA20770@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.