From 208840f7b4733b3782a2d00a6b7188e956b753e0 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Tue, 9 Feb 2021 13:38:58 +0900 Subject: [PATCH] use HAL_TDM_EVENT_SOURCE_MAX for event source Change-Id: I24fa68c3aab313ff6d1238e40dbcced5bad0e508 Signed-off-by: Junkyeong Kim --- src/tdm.c | 11 ++++++++--- src/tdm_private_types.h | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/tdm.c b/src/tdm.c index 3a37cd8..3b6c1b8 100644 --- a/src/tdm.c +++ b/src/tdm.c @@ -983,9 +983,10 @@ _tdm_display_load_hal_backend(tdm_private_display *private_display) event_sources = hal_tdm_backend_get_event_sources(hal_tdm, &num, &hret); if (num != 0 && hret == HAL_TDM_ERROR_NONE) { + private_module->event_source_num = num; for (int i = 0; i < num; i++) { hal_tdm_event_source *event_source = event_sources[i]; - private_module->htdm_event_source = tdm_event_loop_add_fd_handler(private_display, event_source->event_fd, + private_module->htdm_event_source[i] = tdm_event_loop_add_fd_handler(private_display, event_source->event_fd, TDM_EVENT_LOOP_READABLE, (tdm_event_loop_fd_handler)event_source->func, event_source->user_data, &error); break; } @@ -1267,8 +1268,12 @@ _tdm_display_unload_modules(tdm_private_display *private_display) LIST_FOR_EACH_ENTRY_SAFE(private_module, bb, &private_display->module_list, link) { LIST_DEL(&private_module->link); if (private_module->use_hal_tdm) { - if (private_module->htdm_event_source) - tdm_event_loop_source_remove(private_module->htdm_event_source); + if (private_module->event_source_num != 0) { + for (int i = 0; i < private_module->event_source_num; i++) { + tdm_event_loop_source *htdm_event_source = private_module->htdm_event_source[i]; + tdm_event_loop_source_remove(htdm_event_source); + } + } hal_tdm_put_backend(private_module->htdm_backend); free(private_module); continue; diff --git a/src/tdm_private_types.h b/src/tdm_private_types.h index 1bc8d1b..f2074e3 100644 --- a/src/tdm_private_types.h +++ b/src/tdm_private_types.h @@ -166,7 +166,8 @@ struct _tdm_private_module { int use_hal_tdm; hal_tdm_backend *htdm_backend; hal_tdm_display *htdm_dpy; - tdm_event_loop_source *htdm_event_source; + tdm_event_loop_source *htdm_event_source[HAL_TDM_EVENT_SOURCE_MAX]; + int event_source_num; }; struct _tdm_private_display { -- 2.7.4