Revert "tdm_output: Disable output vblank timeout" 48/324848/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 27 May 2025 01:22:19 +0000 (10:22 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Tue, 27 May 2025 08:14:30 +0000 (17:14 +0900)
This reverts commit b1915302a71ff65eba0910d85d1d4a81a4f98284.

Change-Id: I66c20430c08bdc3b75c892ed749d92c651479786

src/tdm_output.c
src/tdm_vblank.c

index edcca601047b2ba4c023b44b2956a09b91791477..675f5d188ae2a7f4be64ea7e5f5b3a9e4f2b1a0b 100644 (file)
@@ -57,7 +57,6 @@
        private_output = (tdm_private_output*)output; \
        private_display = private_output->private_display
 
-/* temporary disable (not thread safe)
 static void
 _tdm_output_vblank_timeout_update(tdm_private_output *private_output, int ms_delay);
 
@@ -127,7 +126,6 @@ _tdm_output_vblank_timeout_update(tdm_private_output *private_output, int ms_del
                return;
        }
 }
-*/
 
 INTERN tdm_error
 tdm_output_init(tdm_private_display *private_display)
@@ -987,6 +985,8 @@ _tdm_output_thread_cb_vblank(tdm_private_display *private_display, void *object,
 
        vblank_handler->sent_to_frontend = 0;
 
+       _tdm_output_vblank_timeout_update(private_output, 0);
+
        tdm_thread_cb_remove(private_output, TDM_THREAD_CB_OUTPUT_VBLANK, vblank_handler, _tdm_output_thread_cb_vblank, NULL);
 
        interval = vblank_handler->interval;
@@ -1357,6 +1357,8 @@ _tdm_output_wait_vblank(tdm_private_output *private_output, int interval, int sy
                                                                                                  sync, vblank_handler);
                TDM_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, wait_failed);
 
+               _tdm_output_vblank_timeout_update(private_output, 1000);
+
                if (tdm_debug_module & TDM_DEBUG_COMMIT)
                        TDM_INFO("output(%d) backend wait_vblank", private_output->pipe);
        }
index 1b043540b8c0e1959e5fc3166c9efbbf11203ba5..fda2a06bc2ad48aeef4ca75cd0eac0c1a5d4e3cf 100644 (file)
@@ -1088,6 +1088,7 @@ _tdm_vblank_timeout_timer_cb(void *user_data)
        LIST_FOR_EACH_ENTRY(w, &private_vblank->HW_wait_list, link) {
                VER("wait_info(%p) req_time(%.6f) target_seq(%u) interval(%u) hw_interval(%d)",
                        w, w->req_time, w->target_seq, w->interval, w->hw_interval);
+               tdm_output_vblank_print_wait_information(private_vblank->output, w);
        }
 
        LIST_FOR_EACH_ENTRY(w, &private_vblank->SW_wait_list, link) {