[igt-dev] [PATCH i-g-t 1/3] lib/igt_kms: Set pipe enum name to a pipe from drm pipe

Mohammed Khajapasha
2020-03-07T21:19:26Z

set the pipe enum name to igt pipe from drm pipe,
in case of non-contiguous pipes in display, the igt pipes cann't
be same as enabled pipes in kernel.

Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha@intel.com>
---
lib/igt_kms.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 54de45e5..849aa346 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -1927,10 +1927,16 @@ void igt_display_require(igt_display_t *display, int drm_fd)
int p = 1;
int j, type;
uint8_t last_plane = 0, n_planes = 0;
+ struct drm_i915_get_pipe_from_crtc_id get_pipe;

pipe->crtc_id = resources->crtcs[i];
pipe->display = display;
- pipe->pipe = i;
+ /* Get right pipe enum from kernel for a pipe */
+ get_pipe.pipe = 0;
+ get_pipe.crtc_id = pipe->crtc_id;
+ do_ioctl(display->drm_fd,
+ DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID, &get_pipe);
+ pipe->pipe = get_pipe.pipe;
pipe->plane_cursor = -1;
pipe->plane_primary = -1;
pipe->planes = NULL;
--
2.24.1