mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-15 23:25:07 +00:00
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: 27d624527d
("drm/omap: dss: Acquire next dssdev at probe time")
Acked-by: Pavel Machek <pavel@ucw.cz>
Tested-by: Tony Lindgren <tony@atomide.com>
Tested-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181121160916.22017-3-sebastian.reichel@collabora.com
This commit is contained in:
parent
0a7f54ea0e
commit
0a02d49553
1 changed files with 10 additions and 10 deletions
|
@ -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)
|
||||||
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;
|
||||||
|
|
Loading…
Reference in a new issue