[i-g-t,3/8] lib/psr: Add support to new modified i915_edp_psr_status output

Submitted by Souza, Jose on Dec. 4, 2018, 11:09 p.m.

Details

Message ID 20181204230944.7753-3-jose.souza@intel.com
State New
Series "Series without cover letter"
Headers show

Commit Message

Souza, Jose Dec. 4, 2018, 11:09 p.m.
The kernel patch 'drm/i915: Refactor PSR status debugfs' changed the
output of i915_edp_psr_status, so adding support to the new output
here while keeping the support to the old one for a while.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
 lib/igt_psr.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

Patch hide | download patch | download mbox

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index d68f4b49..eecee459 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -34,8 +34,10 @@  static bool psr_active(int debugfs_fd, bool check_active)
 
 	igt_debugfs_simple_read(debugfs_fd, "i915_edp_psr_status", buf,
 				sizeof(buf));
-	active = strstr(buf, "HW Enabled & Active bit: yes\n") &&
-		(strstr(buf, "SRDENT") || strstr(buf, "SLEEP"));
+
+	active = strstr(buf, "HW Enabled & Active bit: yes\n") ||
+		 strstr(buf, "Source PSR ctl: enabled");
+	active &= !!(strstr(buf, "SRDENT") || strstr(buf, "SLEEP"));
 	return check_active ? active : !active;
 }
 
@@ -138,5 +140,6 @@  bool psr_supported(int debugfs_fd)
 
 	igt_debugfs_simple_read(debugfs_fd, "i915_edp_psr_status", buf,
 				sizeof(buf));
-	return strstr(buf, "Sink_Support: yes\n");
+	return strstr(buf, "Sink_Support: yes\n") ||
+	       strstr(buf, "Sink support: yes");
 }

Comments

Souza, Jose Dec. 4, 2018, 11:11 p.m.
kernel patches changing the debugfs can be found here:

https://patchwork.freedesktop.org/series/53510/

On Tue, 2018-12-04 at 15:09 -0800, José Roberto de Souza wrote:
> The kernel patch 'drm/i915: Refactor PSR status debugfs' changed the
> output of i915_edp_psr_status, so adding support to the new output
> here while keeping the support to the old one for a while.
> 
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  lib/igt_psr.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> index d68f4b49..eecee459 100644
> --- a/lib/igt_psr.c
> +++ b/lib/igt_psr.c
> @@ -34,8 +34,10 @@ static bool psr_active(int debugfs_fd, bool
> check_active)
>  
>  	igt_debugfs_simple_read(debugfs_fd, "i915_edp_psr_status", buf,
>  				sizeof(buf));
> -	active = strstr(buf, "HW Enabled & Active bit: yes\n") &&
> -		(strstr(buf, "SRDENT") || strstr(buf, "SLEEP"));
> +
> +	active = strstr(buf, "HW Enabled & Active bit: yes\n") ||
> +		 strstr(buf, "Source PSR ctl: enabled");
> +	active &= !!(strstr(buf, "SRDENT") || strstr(buf, "SLEEP"));
>  	return check_active ? active : !active;
>  }
>  
> @@ -138,5 +140,6 @@ bool psr_supported(int debugfs_fd)
>  
>  	igt_debugfs_simple_read(debugfs_fd, "i915_edp_psr_status", buf,
>  				sizeof(buf));
> -	return strstr(buf, "Sink_Support: yes\n");
> +	return strstr(buf, "Sink_Support: yes\n") ||
> +	       strstr(buf, "Sink support: yes");
>  }
Dhinakaran Pandiyan Dec. 12, 2018, 12:12 a.m.
On Tue, 2018-12-04 at 15:11 -0800, Souza, Jose wrote:
> kernel patches changing the debugfs can be found here:
> 
> https://patchwork.freedesktop.org/series/53510/
> 
> On Tue, 2018-12-04 at 15:09 -0800, José Roberto de Souza wrote:
> > The kernel patch 'drm/i915: Refactor PSR status debugfs' changed
> > the
> > output of i915_edp_psr_status, so adding support to the new output
> > here while keeping the support to the old one for a while.
> > 
> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> > ---
> >  lib/igt_psr.c | 9 ++++++---
> >  1 file changed, 6 insertions(+), 3 deletions(-)
> > 
> > diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> > index d68f4b49..eecee459 100644
> > --- a/lib/igt_psr.c
> > +++ b/lib/igt_psr.c
> > @@ -34,8 +34,10 @@ static bool psr_active(int debugfs_fd, bool
> > check_active)
> >  
> >  	igt_debugfs_simple_read(debugfs_fd, "i915_edp_psr_status", buf,
> >  				sizeof(buf));
> > -	active = strstr(buf, "HW Enabled & Active bit: yes\n") &&
> > -		(strstr(buf, "SRDENT") || strstr(buf, "SLEEP"));
> > +
> > +	active = strstr(buf, "HW Enabled & Active bit: yes\n") ||
> > +		 strstr(buf, "Source PSR ctl: enabled");
> > +	active &= !!(strstr(buf, "SRDENT") || strstr(buf, "SLEEP"));
nit:	          ^ Is this needed, wouldn't the logical OR take care
of boolean conversion? Using the bit-wise assignment after converting
to a boolean also looks odd. And 
active = active && (strstr(buf, "SRDENT") || strstr(buf, "SLEEP"));
fits withing the 80 character limit.

With or without change,
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>

> >  	return check_active ? active : !active;
> >  }
> >  
> > @@ -138,5 +140,6 @@ bool psr_supported(int debugfs_fd)
> >  
> >  	igt_debugfs_simple_read(debugfs_fd, "i915_edp_psr_status", buf,
> >  				sizeof(buf));
> > -	return strstr(buf, "Sink_Support: yes\n");
> > +	return strstr(buf, "Sink_Support: yes\n") ||
> > +	       strstr(buf, "Sink support: yes");
> >  }