From 3df88e4c8bcfb95e939d3f38f08468a1d41eb8ef Mon Sep 17 00:00:00 2001 From: Algea Cao Date: Thu, 5 Aug 2021 09:23:33 +0800 Subject: [PATCH] drm/bridge: synopsys: dw-hdmi: check if hdmi is enabled in uboot Include the following commit: 1.update mc_clkdis in dw_hdmi_bind. 2.update more hdmi status in dw_hdmi_bind. 3.Fix hdmi can't display in android. 4.Update criteria to determine whether uboot logo is on. 5.disable phy in dw_hdmi_bind. Signed-off-by: Algea Cao Change-Id: I4d1269062b0a4c01d0e82923bf9bb6dad3411387 --- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index 99216b84c45c..7fbc3a9a148a 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -3789,6 +3789,17 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev, prod_id1 & HDMI_PRODUCT_ID1_HDCP ? "with" : "without", hdmi->phy.name); + ret = hdmi_readb(hdmi, HDMI_PHY_STAT0); + if ((ret & HDMI_PHY_TX_PHY_LOCK) && (ret & HDMI_PHY_HPD) && + hdmi_readb(hdmi, HDMI_FC_EXCTRLDUR)) { + hdmi->mc_clkdis = hdmi_readb(hdmi, HDMI_MC_CLKDIS); + hdmi->disabled = false; + hdmi->bridge_is_on = true; + hdmi->phy.enabled = true; + } else if (ret & HDMI_PHY_TX_PHY_LOCK) { + hdmi->phy.ops->disable(hdmi, hdmi->phy.data); + } + init_hpd_work(hdmi); dw_hdmi_init_hw(hdmi);