diff options
Diffstat (limited to 'drivers/gpu/drm/bridge/samsung-dsim.c')
-rw-r--r-- | drivers/gpu/drm/bridge/samsung-dsim.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 9ec4846e0586..7251c1f2a9df 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -28,6 +28,7 @@ #include <drm/drm_bridge.h> #include <drm/drm_fb_helper.h> #include <drm/drm_mipi_dsi.h> +#include <drm/drm_of.h> #include <drm/drm_panel.h> #include <drm/drm_print.h> #include <drm/drm_probe_helper.h> @@ -1395,8 +1396,15 @@ static int samsung_dsim_bridge_attach(struct drm_bridge *bridge, { struct samsung_dsim *dsi = bridge->driver_private; struct drm_encoder *encoder = bridge->encoder; + struct device *dev = dsi->dev; + struct device_node *np = dev->of_node; int ret; + ret = drm_of_find_panel_or_bridge(np, 1, 0, + &dsi->panel, &dsi->out_bridge); + if (ret) + return ret; + if (!dsi->out_bridge && !dsi->panel) return -EPROBE_DEFER; @@ -1405,7 +1413,6 @@ static int samsung_dsim_bridge_attach(struct drm_bridge *bridge, bridge, flags); if (ret) return ret; - list_splice_init(&encoder->bridge_chain, &dsi->bridge_chain); } else { ret = samsung_dsim_create_connector(dsi); if (ret) |