free allocated display buffers when deinit 90/170690/1
authorJunkyeong Kim <jk0430.kim@samsung.com>
Wed, 21 Feb 2018 10:47:10 +0000 (19:47 +0900)
committerJunkyeong Kim <jk0430.kim@samsung.com>
Wed, 21 Feb 2018 10:47:22 +0000 (19:47 +0900)
Change-Id: I66c92e6a59d6131e72a292f59dbd68e5e139e5e5
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/tdm_sprd.c [changed mode: 0755->0644]
src/tdm_sprd.h
src/tdm_sprd_display.c

old mode 100755 (executable)
new mode 100644 (file)
index 68d58a6..8a9f752
@@ -99,6 +99,7 @@ tdm_sprd_deinit(tdm_backend_data *bdata)
                return;
 
        TDM_INFO("deinit");
+       tdm_sprd_display_destroy_buffer_list(sprd_data);
        tdm_sprd_display_destroy_output_list(sprd_data);
        tdm_sprd_display_deinit_event_handling(sprd_data);
 
index 30432e035acf72bb6823db9fc01e90f1c68facd0..7bd3b53090786a0b382cada02eba696f33c342f3 100644 (file)
@@ -148,6 +148,7 @@ tbm_format   tdm_sprd_format_to_tbm_format(uint32_t format);
 
 tdm_error    tdm_sprd_display_create_output_list(tdm_sprd_data *sprd_data);
 void         tdm_sprd_display_destroy_output_list(tdm_sprd_data *sprd_data);
+void         tdm_sprd_display_destroy_buffer_list(tdm_sprd_data *sprd_data);
 tdm_error    tdm_sprd_display_create_layer_list(tdm_sprd_data *sprd_data);
 
 tdm_error    tdm_sprd_pp_get_capability(tdm_sprd_data *sprd_data, tdm_caps_pp *caps);
index 3705f6ef0a534d5a542fb29f161aa96b1a21449a..c6f9098cddd10a0bc04be9a21fae6e8ebc537b84 100644 (file)
@@ -918,6 +918,17 @@ tdm_sprd_display_create_output_list(tdm_sprd_data *sprd_data)
        return TDM_ERROR_NONE;
 }
 
+void
+tdm_sprd_display_destroy_buffer_list(tdm_sprd_data *sprd_data)
+{
+       tdm_sprd_display_buffer *b = NULL, *bb = NULL;
+
+       LIST_FOR_EACH_ENTRY_SAFE(b, bb, &sprd_data->buffer_list, link) {
+               tdm_buffer_remove_destroy_handler(b->buffer, _tdm_sprd_display_cb_destroy_buffer, sprd_data);
+               _tdm_sprd_display_cb_destroy_buffer(b->buffer, sprd_data);
+       }
+}
+
 tdm_error
 sprd_display_get_capability(tdm_backend_data *bdata, tdm_caps_display *caps)
 {