diff --git a/drivers/media/vin/tvin/hdmirx/hdmi_rx_drv.c b/drivers/media/vin/tvin/hdmirx/hdmi_rx_drv.c index 68d503886..f5ca9a3cc 100644 --- a/drivers/media/vin/tvin/hdmirx/hdmi_rx_drv.c +++ b/drivers/media/vin/tvin/hdmirx/hdmi_rx_drv.c @@ -1485,7 +1485,8 @@ void hdmirx_get_emp_dv_info(struct tvin_sig_property_s *prop, u8 port) void hdmirx_get_vtem_info(struct tvin_sig_property_s *prop, u8 port) { - memset(&prop->vtem_data, 0, sizeof(struct tvin_vtem_data_s)); + if (rx[port].vtem_info.qms_en == 1 && rx[port].vtem_info.m_const == 0) + return; memcpy(&prop->vtem_data, &rx[port].vtem_info, sizeof(struct vtem_info_s)); } diff --git a/drivers/media/vin/tvin/hdmirx/hdmi_rx_pktinfo.c b/drivers/media/vin/tvin/hdmirx/hdmi_rx_pktinfo.c index b75bd26a6..2283888ab 100644 --- a/drivers/media/vin/tvin/hdmirx/hdmi_rx_pktinfo.c +++ b/drivers/media/vin/tvin/hdmirx/hdmi_rx_pktinfo.c @@ -740,6 +740,9 @@ void rx_pkt_initial(u8 port) rx[i].vtem_info.vrr_en = false; rx[i].emp_dv_info.flag = false; rx[i].emp_cuva_info.flag = false; + rx[i].sbtm_info.flag = false; + rx[i].emp_dv_info.flag = false; + rx[i].emp_cuva_info.flag = false; rx_pkt_clr_attach_drm(port); if (!emp_info_p) { @@ -747,6 +750,7 @@ void rx_pkt_initial(u8 port) return; } emp_info_p->emp_pkt_cnt = 0; + memset(&rx[i].vtem_info, 0, sizeof(rx[port].vtem_info)); memset(&rxpktsts[i], 0, sizeof(struct rxpkt_st)); while (j < VSI_TYPE_MAX) memset(&rx_pkt[i].multi_vs_info[j++], 0, sizeof(struct pd_infoframe_s)); diff --git a/drivers/media/vin/tvin/vdin/vdin_drv.c b/drivers/media/vin/tvin/vdin/vdin_drv.c index dea9ce04b..06c508f93 100644 --- a/drivers/media/vin/tvin/vdin/vdin_drv.c +++ b/drivers/media/vin/tvin/vdin/vdin_drv.c @@ -2714,7 +2714,7 @@ int vdin_vs_duration_check(struct vdin_dev_s *devp) pr_info("isr:diff_time:%d, cycle:%d\n", diff_time, devp->cycle); if (devp->prop.vtem_data.qms_en) - input_fps = devp->prop.vtem_data.next_tfr; + input_fps = devp->prop.vtem_data.next_tfr / 1000; else input_fps = devp->parm.info.fps; /* In a duration 50M clk theory value */ diff --git a/drivers/media/vin/tvin/vdin/vdin_sm.c b/drivers/media/vin/tvin/vdin/vdin_sm.c index c8ec7d05f..1a33e0127 100644 --- a/drivers/media/vin/tvin/vdin/vdin_sm.c +++ b/drivers/media/vin/tvin/vdin/vdin_sm.c @@ -167,7 +167,7 @@ static unsigned int vdin_vrr_chg_cnt = 1; module_param(vdin_vrr_chg_cnt, uint, 0664); MODULE_PARM_DESC(vdin_vrr_chg_cnt, "vdin_vrr_chg_cnt"); -static unsigned int vdin_qms_chg_cnt = 1; +static unsigned int vdin_qms_chg_cnt = 2; module_param(vdin_qms_chg_cnt, uint, 0664); MODULE_PARM_DESC(vdin_qms_chg_cnt, "vdin_qms_chg_cnt");