mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-14 17:06:39 +07:00
drm/mediatek: do mtk_hdmi_send_infoframe after HDMI clock enable
The mtk_hdmi_send_infoframe have to be run after PLL and PIXEL clock of HDMI enable. Make sure that HDMI inforframes can be sent successfully. Signed-off-by: Junzhi Zhao <junzhi.zhao@mediatek.com> Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
This commit is contained in:
parent
56e4b1e183
commit
d542b7c473
@ -1133,12 +1133,6 @@ static int mtk_hdmi_output_set_display_mode(struct mtk_hdmi *hdmi,
|
|||||||
phy_power_on(hdmi->phy);
|
phy_power_on(hdmi->phy);
|
||||||
mtk_hdmi_aud_output_config(hdmi, mode);
|
mtk_hdmi_aud_output_config(hdmi, mode);
|
||||||
|
|
||||||
mtk_hdmi_setup_audio_infoframe(hdmi);
|
|
||||||
mtk_hdmi_setup_avi_infoframe(hdmi, mode);
|
|
||||||
mtk_hdmi_setup_spd_infoframe(hdmi, "mediatek", "On-chip HDMI");
|
|
||||||
if (mode->flags & DRM_MODE_FLAG_3D_MASK)
|
|
||||||
mtk_hdmi_setup_vendor_specific_infoframe(hdmi, mode);
|
|
||||||
|
|
||||||
mtk_hdmi_hw_vid_black(hdmi, false);
|
mtk_hdmi_hw_vid_black(hdmi, false);
|
||||||
mtk_hdmi_hw_aud_unmute(hdmi);
|
mtk_hdmi_hw_aud_unmute(hdmi);
|
||||||
mtk_hdmi_hw_send_av_unmute(hdmi);
|
mtk_hdmi_hw_send_av_unmute(hdmi);
|
||||||
@ -1401,6 +1395,16 @@ static void mtk_hdmi_bridge_pre_enable(struct drm_bridge *bridge)
|
|||||||
hdmi->powered = true;
|
hdmi->powered = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void mtk_hdmi_send_infoframe(struct mtk_hdmi *hdmi,
|
||||||
|
struct drm_display_mode *mode)
|
||||||
|
{
|
||||||
|
mtk_hdmi_setup_audio_infoframe(hdmi);
|
||||||
|
mtk_hdmi_setup_avi_infoframe(hdmi, mode);
|
||||||
|
mtk_hdmi_setup_spd_infoframe(hdmi, "mediatek", "On-chip HDMI");
|
||||||
|
if (mode->flags & DRM_MODE_FLAG_3D_MASK)
|
||||||
|
mtk_hdmi_setup_vendor_specific_infoframe(hdmi, mode);
|
||||||
|
}
|
||||||
|
|
||||||
static void mtk_hdmi_bridge_enable(struct drm_bridge *bridge)
|
static void mtk_hdmi_bridge_enable(struct drm_bridge *bridge)
|
||||||
{
|
{
|
||||||
struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge);
|
struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge);
|
||||||
@ -1409,6 +1413,7 @@ static void mtk_hdmi_bridge_enable(struct drm_bridge *bridge)
|
|||||||
clk_prepare_enable(hdmi->clk[MTK_HDMI_CLK_HDMI_PLL]);
|
clk_prepare_enable(hdmi->clk[MTK_HDMI_CLK_HDMI_PLL]);
|
||||||
clk_prepare_enable(hdmi->clk[MTK_HDMI_CLK_HDMI_PIXEL]);
|
clk_prepare_enable(hdmi->clk[MTK_HDMI_CLK_HDMI_PIXEL]);
|
||||||
phy_power_on(hdmi->phy);
|
phy_power_on(hdmi->phy);
|
||||||
|
mtk_hdmi_send_infoframe(hdmi, &hdmi->mode);
|
||||||
|
|
||||||
hdmi->enabled = true;
|
hdmi->enabled = true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user