diff --git a/drivers/media/video_processor/videoqueue/videoqueue.c b/drivers/media/video_processor/videoqueue/videoqueue.c index b99785e47..a126f8907 100644 --- a/drivers/media/video_processor/videoqueue/videoqueue.c +++ b/drivers/media/video_processor/videoqueue/videoqueue.c @@ -515,8 +515,12 @@ static int do_file_thread(struct video_queue_dev *dev) if (vlock_locked && !dev->vlock_locked) { need_resync = true; vq_print(P_OTHER, "vlock locked\n"); + } else if (!vlock_locked && !is_panel_output()) { + need_resync = true; + vq_print(P_OTHER, "Not pannel output.\n"); } else if (resync_open) { need_resync = true; + vq_print(P_OTHER, "Force resync.\n"); } if (dev->game_mode) { diff --git a/drivers/media/video_sink/video_hw.c b/drivers/media/video_sink/video_hw.c index 9cf86d668..eba40bfad 100644 --- a/drivers/media/video_sink/video_hw.c +++ b/drivers/media/video_sink/video_hw.c @@ -6434,6 +6434,12 @@ static inline bool is_tv_panel(void) return false; } +bool is_panel_output(void) +{ + return is_tv_panel(); +} +EXPORT_SYMBOL(is_panel_output); + void rx_mute_vpp(void) { u32 black_val; diff --git a/include/linux/amlogic/media/video_sink/video.h b/include/linux/amlogic/media/video_sink/video.h index 8a6f758f4..5c2a310ec 100644 --- a/include/linux/amlogic/media/video_sink/video.h +++ b/include/linux/amlogic/media/video_sink/video.h @@ -439,6 +439,7 @@ void set_vdx_test_pattern(u32 index, bool on, u32 color); void get_vdx_test_pattern(u32 index, bool *on, u32 *color); void set_postblend_test_pattern(bool on, u32 color); void get_postblend_test_pattern(bool *on, u32 *color); +bool is_panel_output(void); u32 get_first_pic_coming(void); u32 get_toggle_frame_count(void);