free allocated display buffers when deinit 92/170692/2
authorJunkyeong Kim <jk0430.kim@samsung.com>
Wed, 21 Feb 2018 10:54:04 +0000 (19:54 +0900)
committerJunkyeong Kim <jk0430.kim@samsung.com>
Wed, 21 Feb 2018 10:56:35 +0000 (19:56 +0900)
Change-Id: I635ac58f89e8b41d2814fdac57b50b6cadb89b54
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/tdm_nexell.c
src/tdm_nexell.h
src/tdm_nexell_display.c

index f905f8291bef45320f0e3cc2f58c4e3d891442db..7d5439581d952252af31f3a9d1ec8e3882b0ee23 100644 (file)
@@ -217,6 +217,7 @@ tdm_nexell_deinit(tdm_backend_data *bdata)
        _tdm_nexell_udev_deinit(nexell_data);
 #endif
 
+       tdm_nexell_display_destroy_buffer_list(nexell_data);
        tdm_nexell_display_destroy_output_list(nexell_data);
 
        if (nexell_data->plane_res)
index 30111b28afab879b7d2d3cde163b554ee932d305..bc214c37643868c1a93ef4cef1ae9d369b2912bc 100644 (file)
@@ -130,5 +130,7 @@ void         tdm_nexell_display_update_output_status(tdm_nexell_data *nexell_dat
 tdm_error    tdm_nexell_display_create_output_list(tdm_nexell_data *nexell_data);
 void         tdm_nexell_display_destroy_output_list(tdm_nexell_data *nexell_data);
 tdm_error    tdm_nexell_display_create_layer_list(tdm_nexell_data *nexell_data);
+void         tdm_nexell_display_destroy_buffer_list(tdm_nexell_data *nexell_data);
+
 
 #endif /* _TDM_NEXELL_H_ */
index 76139024008d391f938446e23445ccdd351d2b5b..8547aeb690d286cde246c9b705c2abacdc7fac7b 100644 (file)
@@ -963,6 +963,17 @@ failed_create:
        return ret;
 }
 
+void
+tdm_nexell_display_destroy_buffer_list(tdm_nexell_data *nexell_data)
+{
+       tdm_nexell_display_buffer *b = NULL, *bb = NULL;
+
+       LIST_FOR_EACH_ENTRY_SAFE(b, bb, &nexell_data->buffer_list, link) {
+               tdm_buffer_remove_destroy_handler(b->buffer, _tdm_nexell_display_cb_destroy_buffer, nexell_data);
+               _tdm_nexell_display_cb_destroy_buffer(b->buffer, nexell_data);
+       }
+}
+
 tdm_error
 nexell_display_get_capability(tdm_backend_data *bdata, tdm_caps_display *caps)
 {