summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/bridge/samsung-dsim.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/bridge/samsung-dsim.c')
-rw-r--r--drivers/gpu/drm/bridge/samsung-dsim.c9
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)