From bcf311ae3c410f8d468d8f13a77b4f44ec3cd7c4 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Fri, 23 Sep 2016 08:53:32 -0400 Subject: [PATCH] ecore-drm2: Use Atomic State to enable/disable an output If Atomic Modesetting is supported, we can use that to enable/disable a given output. Signed-off-by: Chris Michael --- src/lib/ecore_drm2/ecore_drm2_outputs.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c index b667546..8171d11 100644 --- a/src/lib/ecore_drm2/ecore_drm2_outputs.c +++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c @@ -1169,20 +1169,23 @@ ecore_drm2_output_enabled_set(Ecore_Drm2_Output *output, Eina_Bool enabled) if (output->enabled) { - Ecore_Drm2_Fb *fb = NULL; - - if (output->current) fb = output->current; - else if (output->next) fb = output->next; - - if (fb) drmModeSetCrtc(output->fd, output->crtc_id, fb->id, - output->x, output->y, - &output->conn_id, 1, - &output->current_mode->info); - +#ifdef HAVE_ATOMIC_DRM + if (_ecore_drm2_use_atomic) + output->crtc_state->active.value = 1; +#endif + ecore_drm2_fb_flip(NULL, output); ecore_drm2_output_dpms_set(output, DRM_MODE_DPMS_ON); } else { +#ifdef HAVE_ATOMIC_DRM + if (_ecore_drm2_use_atomic) + { + output->crtc_state->active.value = 0; + ecore_drm2_fb_flip(NULL, output); + } +#endif + ecore_drm2_output_dpms_set(output, DRM_MODE_DPMS_OFF); output->current = NULL; /* output->next = NULL; */ -- 2.7.4