dv: display abnormal after hotplug hdmi [1/1]

PD#SWPL-13367

Problem:
HDMI hotplugged during video pause,
system control first set disable_video 1,
then DV core turn on due to sink changed,
then OMX sets disable video 2. DV core 1
is disabled after video_onoff_state is set to OFF.

Solution:
Monitor video status, parser and toggle once
to enable core1 when video off->on.

Verify:
SM1

Change-Id: Ied6f1f05ed1592f9917c093b5d567904a3bdc61c
Signed-off-by: yao liu <yao.liu@amlogic.com>
This commit is contained in:
yao liu
2019-09-03 05:44:18 -04:00
committed by Tao Zeng
parent d4764b90b5
commit 27c28074f7

View File

@@ -276,6 +276,8 @@ static bool is_osd_off;
static bool force_reset_core2;
static int core1_switch;
static int core3_switch;
static int video_enable;
module_param(vtotal_add, uint, 0664);
MODULE_PARM_DESC(vtotal_add, "\n vtotal_add\n");
module_param(vpotch, uint, 0664);
@@ -2601,6 +2603,21 @@ static int is_graphic_changed(void)
}
return ret;
}
static int is_video_turn_on(void)
{
int ret = 0;
int new_video_enable = get_video_enabled();
if (video_enable != new_video_enable) {
pr_dolby_dbg("video_enable changed %d-%d\n",
video_enable, new_video_enable);
ret = new_video_enable ? 1 : -1;
}
video_enable = new_video_enable;
return ret;
}
static void adjust_vpotch(void)
{
const struct vinfo_s *vinfo = get_current_vinfo();
@@ -6814,6 +6831,10 @@ int dolby_vision_process(struct vframe_s *vf, u32 display_size,
dolby_vision_parse_metadata(vf, 1, false);
dolby_vision_set_toggle_flag(1);
}
if (is_video_turn_on() == 1) {
if (vf && !dolby_vision_parse_metadata(vf, 0, false))
dolby_vision_set_toggle_flag(1);
}
/* only monitor dolby_vision_policy */
/* other policy will be updated for video */