[igt-dev] [PATCH i-g-t v3] lib/igt_debugfs: explicitly wait for first crc in igt_pipe_crc_start

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Mon Aug 13 14:14:14 UTC 2018


Op 13-08-18 om 15:53 schreef Mahesh Kumar:
> Now crc framework does not wait for first CRC during open, User need
> to wait for crc if he wants so.
> This patch make changes in igt_pipe_crc_start to make sure we wait
> until first crc available after open to keep the tests behaviour same.
> Without this if driver is skipping few initial crcs there will be
> mismatch in expected and actual number of crcs returned by crc
> framework.
>
> Changes Since V1:
>  - poll instead of read_one_crc (Maarten)
> Changes Since V2:
>  - poll without timeout, we already have igt_timeout (Maarten)
>
> Signed-off-by: Mahesh Kumar <mahesh1.kumar at intel.com>
> ---
>  lib/igt_debugfs.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
> index f3196f43..4de6b247 100644
> --- a/lib/igt_debugfs.c
> +++ b/lib/igt_debugfs.c
> @@ -35,6 +35,7 @@
>  #include <fcntl.h>
>  #include <unistd.h>
>  #include <i915_drm.h>
> +#include <poll.h>
>  
>  #include "drmtest.h"
>  #include "igt_aux.h"
> @@ -748,6 +749,7 @@ static void read_one_crc(igt_pipe_crc_t *pipe_crc, igt_crc_t *out)
>  void igt_pipe_crc_start(igt_pipe_crc_t *pipe_crc)
>  {
>  	const char *src = pipe_crc_source_name(pipe_crc->source);
> +	struct pollfd pfd;
>  	char buf[32];
>  
>  	/* Stop first just to make sure we don't have lingering state left. */
> @@ -757,11 +759,16 @@ void igt_pipe_crc_start(igt_pipe_crc_t *pipe_crc)
>  
>  	sprintf(buf, "crtc-%d/crc/data", pipe_crc->pipe);
>  
> -	igt_set_timeout(10, "Opening crc fd, which waits for first CRC.");
> +	igt_set_timeout(10, "Opening crc fd, and poll for first CRC.");
>  	pipe_crc->crc_fd = openat(pipe_crc->dir, buf, pipe_crc->flags);
> +	igt_assert(pipe_crc->crc_fd != -1);
> +
> +	pfd.fd = pipe_crc->crc_fd;
> +	pfd.events = POLLIN;
> +	poll(&pfd, 1, -1);
> +
>  	igt_reset_timeout();
>  
> -	igt_assert(pipe_crc->crc_fd != -1);
>  	errno = 0;
>  }
>  

Reviewed-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>



More information about the igt-dev mailing list