forked from enlightenment/efl
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 <cp.michael@samsung.com>
This commit is contained in:
parent
1abed3dcaf
commit
bcf311ae3c
|
@ -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; */
|
||||
|
|
Loading…
Reference in New Issue