1*4882a593SmuzhiyunFrom 38c67d13993fd5454226934a22be558d2a6a8233 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Jeffy Chen <jeffy.chen@rock-chips.com> 3*4882a593SmuzhiyunDate: Mon, 23 May 2022 11:46:38 +0800 4*4882a593SmuzhiyunSubject: [PATCH 1/3] kms: Use Nth primary plane for Nth CRTC 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunSigned-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 7*4882a593Smuzhiyun--- 8*4882a593Smuzhiyun src/ws/atomic_kms_window_system.cpp | 10 ++++++++-- 9*4882a593Smuzhiyun 1 file changed, 8 insertions(+), 2 deletions(-) 10*4882a593Smuzhiyun 11*4882a593Smuzhiyundiff --git a/src/ws/atomic_kms_window_system.cpp b/src/ws/atomic_kms_window_system.cpp 12*4882a593Smuzhiyunindex 1aa7948..b5c2ab5 100644 13*4882a593Smuzhiyun--- a/src/ws/atomic_kms_window_system.cpp 14*4882a593Smuzhiyun+++ b/src/ws/atomic_kms_window_system.cpp 15*4882a593Smuzhiyun@@ -98,6 +98,7 @@ ManagedResource<drmModePlanePtr> get_plane_for_crtc( 16*4882a593Smuzhiyun if (!plane_resources) 17*4882a593Smuzhiyun throw ErrnoError{"Failed to get plane resources"}; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun+ auto num_primaries = 0; 20*4882a593Smuzhiyun for (auto i = 0u; i < plane_resources->count_planes; ++i) 21*4882a593Smuzhiyun { 22*4882a593Smuzhiyun auto plane = ManagedResource<drmModePlanePtr>{ 23*4882a593Smuzhiyun@@ -107,12 +108,17 @@ ManagedResource<drmModePlanePtr> get_plane_for_crtc( 24*4882a593Smuzhiyun if (!plane) 25*4882a593Smuzhiyun throw ErrnoError{"Failed to get plane"}; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun+ if (!is_plane_primary(drm_fd, plane)) 28*4882a593Smuzhiyun+ continue; 29*4882a593Smuzhiyun+ 30*4882a593Smuzhiyun+ /* Nth primary plane for Nth CRTC */ 31*4882a593Smuzhiyun+ if (num_primaries ++ != crtc_index) 32*4882a593Smuzhiyun+ continue; 33*4882a593Smuzhiyun+ 34*4882a593Smuzhiyun if (does_plane_support_crtc_index(plane, crtc_index)) 35*4882a593Smuzhiyun { 36*4882a593Smuzhiyun ret_plane = std::move(plane); 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun- if (is_plane_primary(drm_fd, ret_plane)) 39*4882a593Smuzhiyun- break; 40*4882a593Smuzhiyun } 41*4882a593Smuzhiyun } 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun-- 44*4882a593Smuzhiyun2.20.1 45*4882a593Smuzhiyun 46