diff mbox

[i-g-t] tests/kms_frontbuffer_tracking: Skip tests when PSR cannot be enabled

Message ID 20171026003726.2503-1-dhinakaran.pandiyan@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dhinakaran Pandiyan Oct. 26, 2017, 12:37 a.m. UTC
The frontbuffer_tracking PSR tests fail if PSR cannot be activated when
there is sink support. But, there are several other requirements related to
mode timings that have to be satisfied before PSR can be enabled. No reason
to fail these tests when PSR cannot be enabled.

Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
---
 tests/kms_frontbuffer_tracking.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Zanoni, Paulo R Oct. 26, 2017, 1:29 p.m. UTC | #1
Em Qua, 2017-10-25 às 17:37 -0700, Dhinakaran Pandiyan escreveu:
> The frontbuffer_tracking PSR tests fail if PSR cannot be activated
> when
> there is sink support. But, there are several other requirements
> related to
> mode timings that have to be satisfied before PSR can be enabled. No
> reason
> to fail these tests when PSR cannot be enabled.
> 
> Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> ---
>  tests/kms_frontbuffer_tracking.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/kms_frontbuffer_tracking.c
> b/tests/kms_frontbuffer_tracking.c
> index a068c8af..13c948de 100644
> --- a/tests/kms_frontbuffer_tracking.c
> +++ b/tests/kms_frontbuffer_tracking.c
> @@ -1548,12 +1548,12 @@ static void teardown_fbc(void)
>  {
>  }
>  
> -static bool psr_sink_has_support(void)
> +static bool psr_has_support(void)
>  {
>  	char buf[256];
>  
>  	debugfs_read("i915_edp_psr_status", buf);
> -	return strstr(buf, "Sink_Support: yes\n");
> +	return strstr(buf, "Enabled: yes\n");

What if PSR can be enabled but is just not enabled due to a bug?

I suppose we could print on debugfs whether source+sink support equals
yes.

>  }
>  
>  static void setup_psr(void)
> @@ -1564,8 +1564,8 @@ static void setup_psr(void)
>  		return;
>  	}
>  
> -	if (!psr_sink_has_support()) {
> -		igt_info("Can't test PSR: not supported by
> sink.\n");
> +	if (!psr_has_support()) {
> +		igt_info("Can't test PSR: not supported.\n");
>  		return;
>  	}
>  	psr.can_test = true;
Rodrigo Vivi Oct. 26, 2017, 7:32 p.m. UTC | #2
On Thu, Oct 26, 2017 at 01:29:57PM +0000, Paulo Zanoni wrote:
> Em Qua, 2017-10-25 às 17:37 -0700, Dhinakaran Pandiyan escreveu:
> > The frontbuffer_tracking PSR tests fail if PSR cannot be activated
> > when
> > there is sink support. But, there are several other requirements
> > related to
> > mode timings that have to be satisfied before PSR can be enabled. No
> > reason
> > to fail these tests when PSR cannot be enabled.
> > 
> > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> > ---
> >  tests/kms_frontbuffer_tracking.c | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/tests/kms_frontbuffer_tracking.c
> > b/tests/kms_frontbuffer_tracking.c
> > index a068c8af..13c948de 100644
> > --- a/tests/kms_frontbuffer_tracking.c
> > +++ b/tests/kms_frontbuffer_tracking.c
> > @@ -1548,12 +1548,12 @@ static void teardown_fbc(void)
> >  {
> >  }
> >  
> > -static bool psr_sink_has_support(void)
> > +static bool psr_has_support(void)
> >  {
> >  	char buf[256];
> >  
> >  	debugfs_read("i915_edp_psr_status", buf);
> > -	return strstr(buf, "Sink_Support: yes\n");
> > +	return strstr(buf, "Enabled: yes\n");
> 
> What if PSR can be enabled but is just not enabled due to a bug?

then psr basic should be the one failing...

> 
> I suppose we could print on debugfs whether source+sink support equals
> yes.

or maybe here instead of sink: yes or enable: yes
we could check
sink: yes && source: yes

if sink yes and source yes and psr is still disabled when we
expect that enabled than we have the bug paulo mentioned.

> 
> >  }
> >  
> >  static void setup_psr(void)
> > @@ -1564,8 +1564,8 @@ static void setup_psr(void)
> >  		return;
> >  	}
> >  
> > -	if (!psr_sink_has_support()) {
> > -		igt_info("Can't test PSR: not supported by
> > sink.\n");
> > +	if (!psr_has_support()) {
> > +		igt_info("Can't test PSR: not supported.\n");
> >  		return;
> >  	}
> >  	psr.can_test = true;
Zanoni, Paulo R Oct. 26, 2017, 7:35 p.m. UTC | #3
Em Qui, 2017-10-26 às 12:32 -0700, Rodrigo Vivi escreveu:
> On Thu, Oct 26, 2017 at 01:29:57PM +0000, Paulo Zanoni wrote:
> > Em Qua, 2017-10-25 às 17:37 -0700, Dhinakaran Pandiyan escreveu:
> > > The frontbuffer_tracking PSR tests fail if PSR cannot be
> > > activated
> > > when
> > > there is sink support. But, there are several other requirements
> > > related to
> > > mode timings that have to be satisfied before PSR can be enabled.
> > > No
> > > reason
> > > to fail these tests when PSR cannot be enabled.
> > > 
> > > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com
> > > >
> > > ---
> > >  tests/kms_frontbuffer_tracking.c | 8 ++++----
> > >  1 file changed, 4 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/tests/kms_frontbuffer_tracking.c
> > > b/tests/kms_frontbuffer_tracking.c
> > > index a068c8af..13c948de 100644
> > > --- a/tests/kms_frontbuffer_tracking.c
> > > +++ b/tests/kms_frontbuffer_tracking.c
> > > @@ -1548,12 +1548,12 @@ static void teardown_fbc(void)
> > >  {
> > >  }
> > >  
> > > -static bool psr_sink_has_support(void)
> > > +static bool psr_has_support(void)
> > >  {
> > >  	char buf[256];
> > >  
> > >  	debugfs_read("i915_edp_psr_status", buf);
> > > -	return strstr(buf, "Sink_Support: yes\n");
> > > +	return strstr(buf, "Enabled: yes\n");
> > 
> > What if PSR can be enabled but is just not enabled due to a bug?
> 
> then psr basic should be the one failing...

But if we apply this patch we'll skip it instead of fail.

> 
> > 
> > I suppose we could print on debugfs whether source+sink support
> > equals
> > yes.
> 
> or maybe here instead of sink: yes or enable: yes
> we could check
> sink: yes && source: yes
> 
> if sink yes and source yes and psr is still disabled when we
> expect that enabled than we have the bug paulo mentioned.
> 
> > 
> > >  }
> > >  
> > >  static void setup_psr(void)
> > > @@ -1564,8 +1564,8 @@ static void setup_psr(void)
> > >  		return;
> > >  	}
> > >  
> > > -	if (!psr_sink_has_support()) {
> > > -		igt_info("Can't test PSR: not supported by
> > > sink.\n");
> > > +	if (!psr_has_support()) {
> > > +		igt_info("Can't test PSR: not supported.\n");
> > >  		return;
> > >  	}
> > >  	psr.can_test = true;
Dhinakaran Pandiyan Oct. 26, 2017, 7:46 p.m. UTC | #4
On Thu, 2017-10-26 at 17:35 -0200, Paulo Zanoni wrote:
> Em Qui, 2017-10-26 às 12:32 -0700, Rodrigo Vivi escreveu:

> > On Thu, Oct 26, 2017 at 01:29:57PM +0000, Paulo Zanoni wrote:

> > > Em Qua, 2017-10-25 às 17:37 -0700, Dhinakaran Pandiyan escreveu:

> > > > The frontbuffer_tracking PSR tests fail if PSR cannot be

> > > > activated

> > > > when

> > > > there is sink support. But, there are several other requirements

> > > > related to

> > > > mode timings that have to be satisfied before PSR can be enabled.

> > > > No

> > > > reason

> > > > to fail these tests when PSR cannot be enabled.

> > > > 

> > > > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>

> > > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>

> > > > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com

> > > > >

> > > > ---

> > > >  tests/kms_frontbuffer_tracking.c | 8 ++++----

> > > >  1 file changed, 4 insertions(+), 4 deletions(-)

> > > > 

> > > > diff --git a/tests/kms_frontbuffer_tracking.c

> > > > b/tests/kms_frontbuffer_tracking.c

> > > > index a068c8af..13c948de 100644

> > > > --- a/tests/kms_frontbuffer_tracking.c

> > > > +++ b/tests/kms_frontbuffer_tracking.c

> > > > @@ -1548,12 +1548,12 @@ static void teardown_fbc(void)

> > > >  {

> > > >  }

> > > >  

> > > > -static bool psr_sink_has_support(void)

> > > > +static bool psr_has_support(void)

> > > >  {

> > > >  	char buf[256];

> > > >  

> > > >  	debugfs_read("i915_edp_psr_status", buf);

> > > > -	return strstr(buf, "Sink_Support: yes\n");

> > > > +	return strstr(buf, "Enabled: yes\n");

> > > 

> > > What if PSR can be enabled but is just not enabled due to a bug?


My reasoning was psr.enabled will be true as long as intel_psr_enable()
is called. But, yeah there is a chance that intel_psr_enable() is not
called.

> > 

> > then psr basic should be the one failing...

> 

> But if we apply this patch we'll skip it instead of fail.

> 

> > 

> > > 

> > > I suppose we could print on debugfs whether source+sink support

> > > equals

> > > yes.

> > 

> > or maybe here instead of sink: yes or enable: yes

> > we could check

> > sink: yes && source: yes

> > 


That's how I wrote this initially, but source_ok appears to be in the
wrong place in the driver, i.e., source_ok is set inside psr_enable()
and hence has the same effect as checking for enabled. Moving source_ok
= true inside psr_compute_config() and changing the IGT to test for
sink_support && source_ok will solve our problem.


> > if sink yes and source yes and psr is still disabled when we

> > expect that enabled than we have the bug paulo mentioned.

> > 

> > > 

> > > >  }

> > > >  

> > > >  static void setup_psr(void)

> > > > @@ -1564,8 +1564,8 @@ static void setup_psr(void)

> > > >  		return;

> > > >  	}

> > > >  

> > > > -	if (!psr_sink_has_support()) {

> > > > -		igt_info("Can't test PSR: not supported by

> > > > sink.\n");

> > > > +	if (!psr_has_support()) {

> > > > +		igt_info("Can't test PSR: not supported.\n");

> > > >  		return;

> > > >  	}

> > > >  	psr.can_test = true;
diff mbox

Patch

diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index a068c8af..13c948de 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -1548,12 +1548,12 @@  static void teardown_fbc(void)
 {
 }
 
-static bool psr_sink_has_support(void)
+static bool psr_has_support(void)
 {
 	char buf[256];
 
 	debugfs_read("i915_edp_psr_status", buf);
-	return strstr(buf, "Sink_Support: yes\n");
+	return strstr(buf, "Enabled: yes\n");
 }
 
 static void setup_psr(void)
@@ -1564,8 +1564,8 @@  static void setup_psr(void)
 		return;
 	}
 
-	if (!psr_sink_has_support()) {
-		igt_info("Can't test PSR: not supported by sink.\n");
+	if (!psr_has_support()) {
+		igt_info("Can't test PSR: not supported.\n");
 		return;
 	}
 	psr.can_test = true;