summaryrefslogtreecommitdiff
path: root/src/lib/ecore_drm2/ecore_drm2_outputs.c
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2017-06-02 11:38:01 -0500
committerDerek Foreman <derekf@osg.samsung.com>2017-06-02 15:50:08 -0500
commit0df7299526db2b361fbe37d554f4b590b78b5b91 (patch)
tree8abee0da8457ee527623c45f1a2777aafdc29aa3 /src/lib/ecore_drm2/ecore_drm2_outputs.c
parentdf0595ebc0fb2de8940864748ea128925ae54ea6 (diff)
ecore_drm2: Properly release buffers on output disable
Give back all buffers, and do it through the release mechanism that can fire a callback into the engine. Previously we just leaked one and left the rest.
Diffstat (limited to 'src/lib/ecore_drm2/ecore_drm2_outputs.c')
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_outputs.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c
index 60e4f8e7d8..b288679503 100644
--- a/src/lib/ecore_drm2/ecore_drm2_outputs.c
+++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c
@@ -1247,8 +1247,15 @@ ecore_drm2_output_enabled_set(Ecore_Drm2_Output *output, Eina_Bool enabled)
1247 ecore_drm2_fb_flip(NULL, output); 1247 ecore_drm2_fb_flip(NULL, output);
1248 1248
1249 ecore_drm2_output_dpms_set(output, DRM_MODE_DPMS_OFF); 1249 ecore_drm2_output_dpms_set(output, DRM_MODE_DPMS_OFF);
1250 output->current.fb = NULL; 1250
1251 /* output->next.fb = NULL; */ 1251 if (output->current.fb)
1252 _ecore_drm2_fb_buffer_release(output, &output->current);
1253
1254 if (output->next.fb)
1255 _ecore_drm2_fb_buffer_release(output, &output->next);
1256
1257 if (output->pending.fb)
1258 _ecore_drm2_fb_buffer_release(output, &output->pending);
1252 } 1259 }
1253 1260
1254 _output_event_send(output); 1261 _output_event_send(output);