free allocated display buffers when deinit 91/170691/1
authorJunkyeong Kim <jk0430.kim@samsung.com>
Wed, 21 Feb 2018 10:52:23 +0000 (19:52 +0900)
committerJunkyeong Kim <jk0430.kim@samsung.com>
Wed, 21 Feb 2018 10:52:28 +0000 (19:52 +0900)
Change-Id: Iec06bd226659fec6e08641e880570b610da9d5c5
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/tdm_vc4.c
src/tdm_vc4.h
src/tdm_vc4_display.c

index 9402d5f..54de28b 100644 (file)
@@ -212,6 +212,7 @@ tdm_vc4_deinit(tdm_backend_data *bdata)
        _tdm_vc4_udev_deinit(vc4_data);
 #endif
 
+       tdm_vc4_display_destroy_buffer_list(vc4_data);
        tdm_vc4_display_destroy_output_list(vc4_data);
 
        if (vc4_data->plane_res)
index 13250a2..a083837 100644 (file)
@@ -142,5 +142,6 @@ void                tdm_vc4_display_update_output_status(tdm_vc4_data *vc4_data);
 tdm_error      tdm_vc4_display_create_output_list(tdm_vc4_data *vc4_data);
 void           tdm_vc4_display_destroy_output_list(tdm_vc4_data *vc4_data);
 tdm_error      tdm_vc4_display_create_layer_list(tdm_vc4_data *vc4_data);
+void           tdm_vc4_display_destroy_buffer_list(tdm_vc4_data *vc4_data);
 
 #endif /* _TDM_VC4_H_ */
index bbb6772..609ea51 100644 (file)
@@ -852,6 +852,17 @@ tdm_vc4_display_destroy_output_list(tdm_vc4_data *vc4_data)
 }
 
 void
+tdm_vc4_display_destroy_buffer_list(tdm_vc4_data *vc4_data)
+{
+       tdm_vc4_display_buffer *b = NULL, *bb = NULL;
+
+       LIST_FOR_EACH_ENTRY_SAFE(b, bb, &vc4_data->buffer_list, link) {
+               tdm_buffer_remove_destroy_handler(b->buffer, _tdm_vc4_display_cb_destroy_buffer, vc4_data);
+               _tdm_vc4_display_cb_destroy_buffer(b->buffer, vc4_data);
+       }
+}
+
+void
 tdm_vc4_display_update_output_status(tdm_vc4_data *vc4_data)
 {
        tdm_vc4_output_data *output_data = NULL;