From f15c1e3a24f95400cd0d680bb0f9c29ad8a527cb Mon Sep 17 00:00:00 2001 From: Chen Shunqing Date: Mon, 15 Aug 2022 03:32:56 +0000 Subject: [PATCH] media: rockchip: hdmirx: report hpd event for cec service Signed-off-by: Chen Shunqing Change-Id: Ieae5593dc11578e253a02a63d3802ffa039c6b6d --- drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c b/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c index c03249b30059..417eac289583 100644 --- a/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c +++ b/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c @@ -867,6 +867,8 @@ static void hdmirx_hpd_config(struct rk_hdmirx_dev *hdmirx_dev, bool en) hdmirx_update_bits(hdmirx_dev, SCDC_CONFIG, HPDLOW, en ? 0 : HPDLOW); en = hdmirx_dev->hpd_trigger_level ? en : !en; hdmirx_writel(hdmirx_dev, CORE_CONFIG, en); + if (hdmirx_dev->cec && hdmirx_dev->cec->adap) + cec_queue_pin_hpd_event(hdmirx_dev->cec->adap, en, ktime_get()); } static void hdmirx_hpd_ctrl(struct rk_hdmirx_dev *hdmirx_dev, bool en) @@ -3836,6 +3838,10 @@ static int hdmirx_probe(struct platform_device *pdev) cec_data.irq = irq; cec_data.edid = edid_init_data_340M; hdmirx_dev->cec = rk_hdmirx_cec_register(&cec_data); + if (hdmirx_dev->cec && hdmirx_dev->cec->adap && + tx_5v_power_present(hdmirx_dev)) + cec_queue_pin_hpd_event(hdmirx_dev->cec->adap, true, + ktime_get()); } hdmirx_register_hdcp(dev, hdmirx_dev, hdmirx_dev->hdcp_enable);