Commit 755d7a92 authored by Dave Airlie's avatar Dave Airlie

Merge tag 'exynos-drm-fixes-for-v5.6-rc5' of...

Merge tag 'exynos-drm-fixes-for-v5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-fixes

Three fixups
- fix a kernel oops problem in case that driver is loaded as module.
- fix a regulator warning issue when I2C DDC adapter cannot be gathered.
- print out an error message only in error case excepting -EPROBE_DEFER.
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Inki Dae <inki.dae@samsung.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1583126752-30477-1-git-send-email-inki.dae@samsung.com
parents 98d54f81 3b6a9b19
...@@ -1773,8 +1773,9 @@ static int exynos_dsi_probe(struct platform_device *pdev) ...@@ -1773,8 +1773,9 @@ static int exynos_dsi_probe(struct platform_device *pdev)
ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(dsi->supplies), ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(dsi->supplies),
dsi->supplies); dsi->supplies);
if (ret) { if (ret) {
if (ret != -EPROBE_DEFER)
dev_info(dev, "failed to get regulators: %d\n", ret); dev_info(dev, "failed to get regulators: %d\n", ret);
return -EPROBE_DEFER; return ret;
} }
dsi->clks = devm_kcalloc(dev, dsi->clks = devm_kcalloc(dev,
...@@ -1787,8 +1788,9 @@ static int exynos_dsi_probe(struct platform_device *pdev) ...@@ -1787,8 +1788,9 @@ static int exynos_dsi_probe(struct platform_device *pdev)
dsi->clks[i] = devm_clk_get(dev, clk_names[i]); dsi->clks[i] = devm_clk_get(dev, clk_names[i]);
if (IS_ERR(dsi->clks[i])) { if (IS_ERR(dsi->clks[i])) {
if (strcmp(clk_names[i], "sclk_mipi") == 0) { if (strcmp(clk_names[i], "sclk_mipi") == 0) {
strcpy(clk_names[i], OLD_SCLK_MIPI_CLK_NAME); dsi->clks[i] = devm_clk_get(dev,
i--; OLD_SCLK_MIPI_CLK_NAME);
if (!IS_ERR(dsi->clks[i]))
continue; continue;
} }
......
...@@ -1805,18 +1805,10 @@ static int hdmi_resources_init(struct hdmi_context *hdata) ...@@ -1805,18 +1805,10 @@ static int hdmi_resources_init(struct hdmi_context *hdata)
hdata->reg_hdmi_en = devm_regulator_get_optional(dev, "hdmi-en"); hdata->reg_hdmi_en = devm_regulator_get_optional(dev, "hdmi-en");
if (PTR_ERR(hdata->reg_hdmi_en) != -ENODEV) { if (PTR_ERR(hdata->reg_hdmi_en) != -ENODEV)
if (IS_ERR(hdata->reg_hdmi_en)) if (IS_ERR(hdata->reg_hdmi_en))
return PTR_ERR(hdata->reg_hdmi_en); return PTR_ERR(hdata->reg_hdmi_en);
ret = regulator_enable(hdata->reg_hdmi_en);
if (ret) {
DRM_DEV_ERROR(dev,
"failed to enable hdmi-en regulator\n");
return ret;
}
}
return hdmi_bridge_init(hdata); return hdmi_bridge_init(hdata);
} }
...@@ -2023,6 +2015,15 @@ static int hdmi_probe(struct platform_device *pdev) ...@@ -2023,6 +2015,15 @@ static int hdmi_probe(struct platform_device *pdev)
} }
} }
if (!IS_ERR(hdata->reg_hdmi_en)) {
ret = regulator_enable(hdata->reg_hdmi_en);
if (ret) {
DRM_DEV_ERROR(dev,
"failed to enable hdmi-en regulator\n");
goto err_hdmiphy;
}
}
pm_runtime_enable(dev); pm_runtime_enable(dev);
audio_infoframe = &hdata->audio.infoframe; audio_infoframe = &hdata->audio.infoframe;
...@@ -2047,7 +2048,8 @@ static int hdmi_probe(struct platform_device *pdev) ...@@ -2047,7 +2048,8 @@ static int hdmi_probe(struct platform_device *pdev)
err_rpm_disable: err_rpm_disable:
pm_runtime_disable(dev); pm_runtime_disable(dev);
if (!IS_ERR(hdata->reg_hdmi_en))
regulator_disable(hdata->reg_hdmi_en);
err_hdmiphy: err_hdmiphy:
if (hdata->hdmiphy_port) if (hdata->hdmiphy_port)
put_device(&hdata->hdmiphy_port->dev); put_device(&hdata->hdmiphy_port->dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment