From 05f38c8d3faa3a0a725ddccc83bee1fd1641c388 Mon Sep 17 00:00:00 2001 From: "Oliver F. Brown" <oliver.brown@nxp.com> Date: Thu, 12 May 2022 12:54:07 -0500 Subject: [PATCH] MLK-25881: Move HDMI RX uevent to after HDMI RX signal is acquired The uevent should be sent after the HDMI RX signal is acquired and the receivier is ready to capture images. Signed-off-by: Oliver F. Brown <oliver.brown@nxp.com> Reviewed-by: Sandor Yu <Sandor.yu@nxp.com> (cherry picked from commit 79e9522a1ec65e82b877f8b80b65d08859d2d2e3) --- drivers/staging/media/imx/hdmirx/cdns-hdmirx.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/staging/media/imx/hdmirx/cdns-hdmirx.c b/drivers/staging/media/imx/hdmirx/cdns-hdmirx.c index 5167c225dfade..d7aee5b575741 100644 --- a/drivers/staging/media/imx/hdmirx/cdns-hdmirx.c +++ b/drivers/staging/media/imx/hdmirx/cdns-hdmirx.c @@ -935,6 +935,8 @@ static int tmdsmon_fn(void *data) continue; if (change) { + char event_string[32]; + char *envp[] = { event_string, NULL }; if (hdmirx->initialized) { if (hdmirx->hdcp_fw_loaded && !hdmirx->allow_hdcp) cdns_hdcprx_disable(hdmirx); @@ -983,6 +985,12 @@ static int tmdsmon_fn(void *data) startup_attempts = 0; hdmirx->initialized = true; hdmirx->cable_plugin = true; + + /* Only send the UEVENT after HDMI RX is ready */ + sprintf(event_string, "EVENT=hdmirxin"); + kobject_uevent_env(&hdmirx->pdev->dev.kobj, + KOBJ_CHANGE, envp); + } else { if (hdmirx->initialized) { @@ -1099,10 +1107,6 @@ static void hpd5v_work_func(struct work_struct *work) } hdmirx->initialized = 0; hdmirx->tmds_clk = -1; - - sprintf(event_string, "EVENT=hdmirxin"); - kobject_uevent_env(&hdmirx->pdev->dev.kobj, KOBJ_CHANGE, envp); - hdmirx->cable_plugin = true; #ifdef CONFIG_MHDP_HDMIRX_CEC if (hdmirx->is_cec) { hdmirx_cec_init(hdmirx); -- GitLab