[igt-dev] [PATCH i-g-t 1/2] tests/kms_psr2_su: Read su blocks of frame 1 if frame 0 is 0

Mun, Gwan-gyeong gwan-gyeong.mun at intel.com
Tue Jun 2 16:40:55 UTC 2020


I have tested this patch on ICL with PSR2 panel. It solves the issue
"No matching selective update blocks read from debugfs".

Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>

On Fri, 2020-05-29 at 18:16 -0700, José Roberto de Souza wrote:
> Not sure why but in recent kernels + IGT when PSR status debugfs is
> read the frame already passed, so the su blocks is set in frame 1
> and causing the test to fail for page flips.
> So here reading from frame 1 if frame 0 has 0 blocks, as this test
> always changes screen with the same number of su blocks it is not a
> issue.
> 
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/608
> Cc: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
> ---
>  lib/igt_psr.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> index 4109b5295..956f6219c 100644
> --- a/lib/igt_psr.c
> +++ b/lib/igt_psr.c
> @@ -195,11 +195,12 @@ bool psr_sink_support(int device, int
> debugfs_fd, enum psr_mode mode)
>  
>  #define PSR2_SU_BLOCK_STR_LOOKUP "PSR2 SU blocks:\n0\t"
>  
> +/* Return the the last or last but one su blocks */
>  static bool
>  psr2_read_last_num_su_blocks_val(int debugfs_fd, uint16_t
> *num_su_blocks)
>  {
>  	char buf[PSR_STATUS_MAX_LEN];
> -	char *str;
> +	char *str, *str2;
>  	int ret;
>  
>  	ret = igt_debugfs_simple_read(debugfs_fd,
> "i915_edp_psr_status", buf,
> @@ -212,6 +213,13 @@ psr2_read_last_num_su_blocks_val(int debugfs_fd,
> uint16_t *num_su_blocks)
>  		return false;
>  
>  	str = &str[strlen(PSR2_SU_BLOCK_STR_LOOKUP)];
> +	*num_su_blocks = (uint16_t)strtol(str, &str2, 10);
> +	if (*num_su_blocks != 0)
> +		return true;
> +
> +	str = str2;
> +	/* Jump '\n''1''\t' */
> +	str += 3;
>  	*num_su_blocks = (uint16_t)strtol(str, NULL, 10);
>  
>  	return true;


More information about the igt-dev mailing list