#ifdef HAVE_UDEV
_tdm_drm_udev_deinit(drm_data);
#endif
-
+ tdm_drm_display_destroy_buffer_list(drm_data);
tdm_drm_display_destroy_output_list(drm_data);
if (drm_data->plane_res)
struct list_head buffer_list;
} tdm_drm_data;
-uint32_t tdm_drm_format_to_drm_format(tbm_format format);
-tbm_format tdm_drm_format_to_tbm_format(uint32_t format);
+uint32_t tdm_drm_format_to_drm_format(tbm_format format);
+tbm_format tdm_drm_format_to_tbm_format(uint32_t format);
-void tdm_drm_display_update_output_status(tdm_drm_data *drm_data);
+void tdm_drm_display_update_output_status(tdm_drm_data *drm_data);
tdm_error tdm_drm_display_create_output_list(tdm_drm_data *drm_data);
-void tdm_drm_display_destroy_output_list(tdm_drm_data *drm_data);
+void tdm_drm_display_destroy_output_list(tdm_drm_data *drm_data);
tdm_error tdm_drm_display_create_layer_list(tdm_drm_data *drm_data);
+void tdm_drm_display_destroy_buffer_list(tdm_drm_data *drm_data);
#endif /* _TDM_DRM_H_ */
}
void
+tdm_drm_display_destroy_buffer_list(tdm_drm_data *drm_data)
+{
+ tdm_drm_display_buffer *b = NULL, *bb = NULL;
+
+ LIST_FOR_EACH_ENTRY_SAFE(b, bb, &drm_data->buffer_list, link) {
+ tdm_buffer_remove_destroy_handler(b->buffer, _tdm_drm_display_cb_destroy_buffer, drm_data);
+ _tdm_drm_display_cb_destroy_buffer(b->buffer, drm_data);
+ }
+}
+
+void
tdm_drm_display_update_output_status(tdm_drm_data *drm_data)
{
tdm_drm_output_data *output_data = NULL;