mirror of
https://github.com/torvalds/linux
synced 2024-10-09 12:54:52 +00:00
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. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJeXJEIAAoJEFc4NIkMQxK4epQQALcsteZXJrf7ZTC9jvpXiU2e WMH1eAmGYuQaFY3tYSptUT70Lo7z7DLNBVCRfTpy+ryWDWBmlKGoUJ7NMWnbHmWi xyZAcR23ytwI3W+sF302Nd7C0Dza6PFeMrfO0kof2IzvzCcAGLFh2+nR1zwzBzF8 ZfhEUZ/QwCguiSRngY/RNmY+FXUoUGewx2IqBiD3x6oE3IardW6iBgmmf3GiPMTZ KAkWZ10iqA5uS9hS4UXe/rIdBgDXlbxJZ7koMkGP3FFw8z7reKgD9M+VFN8LMHv9 M9VAd46/0xe5SVPVia78R5CL9GCBrATTvUcixm7+a8ctxqsMnkfrwF0EhJnO4If4 TAzezFAgFIsUlOPGmAs1XJyHmYhKa7inEpnHNHH5tR6mpXZdv0SKP7fBCjmSBThm VIIysumBU8hDVBN+FGmYvJxi73/6mQC8KGUw87KDll3JNvodhyd52H6KIcVr755w EuX8SK8FaXK2DRP+ZP9STcOoTDdksYLI99BCz4cHB3XWpK6Eb1BcLDRkqo9JSGiy zFPyp2YBfqHx07PKwxeNuloPHniQePfx60W9cPMoZ6NjuiNzoDivIRvMuAj4LDjb GhGo0cza6I8UX2fol2J4kRRgIo5Sipcz/bIaohMceeT5LWDln2nUHO84eVaDKB9M iCA+M8st97uJkBd1zzYO =7bIK -----END PGP SIGNATURE----- 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: Dave 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
This commit is contained in:
commit
755d7a928a
|
@ -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) {
|
||||||
dev_info(dev, "failed to get regulators: %d\n", ret);
|
if (ret != -EPROBE_DEFER)
|
||||||
return -EPROBE_DEFER;
|
dev_info(dev, "failed to get regulators: %d\n", ret);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
dsi->clks = devm_kcalloc(dev,
|
dsi->clks = devm_kcalloc(dev,
|
||||||
|
@ -1787,9 +1788,10 @@ 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);
|
||||||
continue;
|
if (!IS_ERR(dsi->clks[i]))
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
dev_info(dev, "failed to get the clock: %s\n",
|
dev_info(dev, "failed to get the clock: %s\n",
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
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);
|
||||||
|
|
Loading…
Reference in a new issue