diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c index a39ca53713e0..cd0b58de98e4 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -181,6 +181,7 @@ struct rockchip_hdmi { unsigned long enc_out_encoding; int color_changed; int hpd_irq; + int hdmi_num; struct drm_property *color_depth_property; struct drm_property *hdmi_output_property; @@ -2924,7 +2925,8 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master, plat_data->property_ops = &dw_hdmi_rockchip_property_ops; - if (hdmi->chip_data->split_mode) { + /* If don't enable hdmi0 and hdmi1, we don't enable split mode */ + if (hdmi->chip_data->split_mode && (hdmi->hdmi_num == 2)) { struct rockchip_hdmi *secondary = rockchip_hdmi_find_by_id(dev->driver, !hdmi->id); @@ -3219,6 +3221,8 @@ static int dw_hdmi_rockchip_probe(struct platform_device *pdev) id = of_alias_get_id(pdev->dev.of_node, "hdmi"); if (id < 0) id = 0; + else + hdmi->hdmi_num++; hdmi->id = id; hdmi->dev = &pdev->dev;