use HAL_TDM_EVENT_SOURCE_MAX for event source 97/253997/1
authorJunkyeong Kim <jk0430.kim@samsung.com>
Tue, 9 Feb 2021 04:38:58 +0000 (13:38 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 22 Feb 2021 04:10:14 +0000 (13:10 +0900)
Change-Id: I24fa68c3aab313ff6d1238e40dbcced5bad0e508
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/tdm.c
src/tdm_private_types.h

index 3a37cd8..3b6c1b8 100644 (file)
--- 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;
index 1bc8d1b..f2074e3 100644 (file)
@@ -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 {