From 44ccff798bbba3c5812c1c2957d9cfd85562d4c8 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Wed, 18 Sep 2024 16:27:45 +0800 Subject: [PATCH] drm/bridge: synopsys: dw-hdmi-qp: add mode covert at dual_connector_split At split mode or dual connector split, the mode of horizontal direction must x2. Signed-off-by: Sandy Huang Change-Id: I4583cb575c6714796b63c3dc312eb3c23319b116 --- drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c index 6511cabe9071..466d204a7b11 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c @@ -2771,9 +2771,6 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector) } secondary_data = secondary->plat_data->phy_data; - list_for_each_entry(mode, &connector->probed_modes, head) - hdmi->plat_data->convert_to_split_mode(mode); - secondary->sink_is_hdmi = drm_detect_hdmi_monitor(edid); secondary->sink_has_audio = drm_detect_monitor_audio(edid); if (secondary->cec_notifier) @@ -2809,12 +2806,7 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector) ret++; } } - if (ret > 0 && (hdmi->plat_data->split_mode || hdmi->plat_data->dual_connector_split)) { - struct drm_display_mode *mode; - list_for_each_entry(mode, &connector->probed_modes, head) - hdmi->plat_data->convert_to_split_mode(mode); - } info->edid_hdmi_rgb444_dc_modes = 0; info->edid_hdmi_ycbcr444_dc_modes = 0; info->hdmi.y420_dc_modes = 0; @@ -2822,6 +2814,12 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector) dev_info(hdmi->dev, "failed to get edid\n"); } + if (ret > 0 && (hdmi->plat_data->split_mode || hdmi->plat_data->dual_connector_split)) { + struct drm_display_mode *mode; + + list_for_each_entry(mode, &connector->probed_modes, head) + hdmi->plat_data->convert_to_split_mode(mode); + } return ret; }