From b50e66382f129066b40eb42b6e8e150d0a693f5e Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 21 Feb 2018 19:52:23 +0900 Subject: [PATCH] free allocated display buffers when deinit Change-Id: Iec06bd226659fec6e08641e880570b610da9d5c5 Signed-off-by: Junkyeong Kim --- src/tdm_vc4.c | 1 + src/tdm_vc4.h | 1 + src/tdm_vc4_display.c | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/src/tdm_vc4.c b/src/tdm_vc4.c index 9402d5f..54de28b 100644 --- a/src/tdm_vc4.c +++ b/src/tdm_vc4.c @@ -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) diff --git a/src/tdm_vc4.h b/src/tdm_vc4.h index 13250a2..a083837 100644 --- a/src/tdm_vc4.h +++ b/src/tdm_vc4.h @@ -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_ */ diff --git a/src/tdm_vc4_display.c b/src/tdm_vc4_display.c index bbb6772..609ea51 100644 --- a/src/tdm_vc4_display.c +++ b/src/tdm_vc4_display.c @@ -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; -- 2.7.4