From cbaa0e5eccb395e08a942fdb946d6ab1f299cf6f Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 21 Feb 2018 19:54:04 +0900 Subject: [PATCH] free allocated display buffers when deinit Change-Id: I635ac58f89e8b41d2814fdac57b50b6cadb89b54 Signed-off-by: Junkyeong Kim --- src/tdm_nexell.c | 1 + src/tdm_nexell.h | 2 ++ src/tdm_nexell_display.c | 11 +++++++++++ 3 files changed, 14 insertions(+) diff --git a/src/tdm_nexell.c b/src/tdm_nexell.c index f905f82..7d54395 100644 --- a/src/tdm_nexell.c +++ b/src/tdm_nexell.c @@ -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) diff --git a/src/tdm_nexell.h b/src/tdm_nexell.h index 30111b2..bc214c3 100644 --- a/src/tdm_nexell.h +++ b/src/tdm_nexell.h @@ -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_ */ diff --git a/src/tdm_nexell_display.c b/src/tdm_nexell_display.c index 7613902..8547aeb 100644 --- a/src/tdm_nexell_display.c +++ b/src/tdm_nexell_display.c @@ -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) { -- 2.7.4