1From d0b587a185c0324792cf17c54b6d62eb4da4d400 Mon Sep 17 00:00:00 2001 2From: Jeffy Chen <jeffy.chen@rock-chips.com> 3Date: Tue, 5 Jul 2022 13:51:11 +0800 4Subject: [PATCH 10/10] ecore_drm2: Set output's crtc atomic prop as well 5 6Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 7--- 8 src/lib/ecore_drm2/ecore_drm2_fb.c | 7 +++++++ 9 src/lib/ecore_drm2/ecore_drm2_outputs.c | 8 +++++++- 10 2 files changed, 14 insertions(+), 1 deletion(-) 11 12diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c b/src/lib/ecore_drm2/ecore_drm2_fb.c 13index 38c8287..57bc154 100644 14--- a/src/lib/ecore_drm2/ecore_drm2_fb.c 15+++ b/src/lib/ecore_drm2/ecore_drm2_fb.c 16@@ -336,6 +336,7 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output) 17 int ret = 0; 18 Eina_List *l; 19 Ecore_Drm2_Crtc_State *cstate; 20+ Ecore_Drm2_Connector_State *cnstate; 21 Ecore_Drm2_Plane_State *pstate; 22 Ecore_Drm2_Plane *plane; 23 drmModeAtomicReq *req = NULL; 24@@ -350,6 +351,7 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output) 25 sym_drmModeAtomicSetCursor(req, 0); 26 27 cstate = output->crtc_state; 28+ cnstate = output->conn_state; 29 30 ret = 31 sym_drmModeAtomicAddProperty(req, cstate->obj_id, cstate->mode.id, 32@@ -361,6 +363,11 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output) 33 cstate->active.value); 34 if (ret < 0) goto err; 35 36+ ret = 37+ sym_drmModeAtomicAddProperty(req, cnstate->obj_id, cnstate->crtc.id, 38+ cnstate->crtc.value); 39+ if (ret < 0) goto err; 40+ 41 if (cstate->background.id) 42 { 43 ret = 44diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c 45index 2140079..ba6b139 100644 46--- a/src/lib/ecore_drm2/ecore_drm2_outputs.c 47+++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c 48@@ -1265,10 +1265,12 @@ static Eina_Bool 49 _output_mode_atomic_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode) 50 { 51 Ecore_Drm2_Crtc_State *cstate; 52+ Ecore_Drm2_Connector_State *cnstate; 53 drmModeAtomicReq *req = NULL; 54 int ret = 0; 55 56 cstate = output->crtc_state; 57+ cnstate = output->conn_state; 58 59 if (mode) 60 { 61@@ -1294,9 +1296,13 @@ _output_mode_atomic_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode) 62 { 63 cstate->active.value = 1; 64 cstate->mode.value = mode->id; 65+ cnstate->crtc.value = cstate->obj_id; 66 } 67 else 68- cstate->active.value = 0; 69+ { 70+ cstate->active.value = 0; 71+ cnstate->crtc.value = 0; 72+ } 73 74 ret = sym_drmModeAtomicAddProperty(req, cstate->obj_id, cstate->mode.id, 75 cstate->mode.value); 76-- 772.20.1 78 79