Commit 0a02d495 authored by Sebastian Reichel's avatar Sebastian Reichel Committed by Tomi Valkeinen

drm/omap: populate DSI platform bus earlier

After the changes from 4.20 the DSI encoder tries to find the
attached panel before populating the DSI bus. If the panel is
not found -EPROBE_DEFER is returned, so the DSI bus is never
populated and the panel never added.

Fix this by populating the DSI bus before searching for the
video sink in dsi_init_output().

Fixes: 27d62452 ("drm/omap: dss: Acquire next dssdev at probe time")
Acked-by: default avatarPavel Machek <pavel@ucw.cz>
Tested-by: default avatarTony Lindgren <tony@atomide.com>
Tested-by: default avatarPavel Machek <pavel@ucw.cz>
Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181121160916.22017-3-sebastian.reichel@collabora.com
parent 0a7f54ea
...@@ -5418,9 +5418,15 @@ static int dsi_probe(struct platform_device *pdev) ...@@ -5418,9 +5418,15 @@ static int dsi_probe(struct platform_device *pdev)
dsi->num_lanes_supported = 3; dsi->num_lanes_supported = 3;
} }
r = of_platform_populate(dev->of_node, NULL, NULL, dev);
if (r) {
DSSERR("Failed to populate DSI child devices: %d\n", r);
goto err_pm_disable;
}
r = dsi_init_output(dsi); r = dsi_init_output(dsi);
if (r) if (r)
goto err_pm_disable; goto err_of_depopulate;
r = dsi_probe_of(dsi); r = dsi_probe_of(dsi);
if (r) { if (r) {
...@@ -5428,22 +5434,16 @@ static int dsi_probe(struct platform_device *pdev) ...@@ -5428,22 +5434,16 @@ static int dsi_probe(struct platform_device *pdev)
goto err_uninit_output; goto err_uninit_output;
} }
r = of_platform_populate(dev->of_node, NULL, NULL, dev);
if (r) {
DSSERR("Failed to populate DSI child devices: %d\n", r);
goto err_uninit_output;
}
r = component_add(&pdev->dev, &dsi_component_ops); r = component_add(&pdev->dev, &dsi_component_ops);
if (r) if (r)
goto err_of_depopulate; goto err_uninit_output;
return 0; return 0;
err_of_depopulate:
of_platform_depopulate(dev);
err_uninit_output: err_uninit_output:
dsi_uninit_output(dsi); dsi_uninit_output(dsi);
err_of_depopulate:
of_platform_depopulate(dev);
err_pm_disable: err_pm_disable:
pm_runtime_disable(dev); pm_runtime_disable(dev);
return r; return r;
......
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