hdmirx: fix QMS message missing issue [1/1]

PD#SWPL-168043

Problem:
Don't display QMS UI when HDMI signal starts

Solution:
Send QMS-VRR data until signal stable.

Verify:
t3x

Change-Id: I913cf1a7a0a8dc01c464dc2fe152fe14ed65a224
Signed-off-by: Gaowei Zhao <gaowei.zhao@amlogic.com>
This commit is contained in:
Gaowei Zhao
2024-05-06 15:49:40 +08:00
committed by gerrit autosubmit
parent df467a7360
commit eb361ec2df
4 changed files with 8 additions and 3 deletions
+2 -1
View File
@@ -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));
}
@@ -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));
+1 -1
View File
@@ -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 */
+1 -1
View File
@@ -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");