summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/bridge
diff options
context:
space:
mode:
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>2024-07-01 21:19:52 +0300
committerRobert Foss <rfoss@kernel.org>2024-08-06 15:21:48 +0200
commit7c5537cee9a8dff956e3b9a3f68c22af06a57558 (patch)
tree3c53b1dcc2e1fc505d3c46bc969b364655da8d16 /drivers/gpu/drm/bridge
parenta99aff2608f422da833cd91fa1eff23daa05c0bd (diff)
drm/bridge: lt9611uxc: properly attach to a next bridge
If there is a next bridge in the OF graph don't let it be ignored. Attach the next bridge to the chain. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Robert Foss <rfoss@kernel.org> Signed-off-by: Robert Foss <rfoss@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20240701-lt9611uxc-next-bridge-v1-1-665bce5fdaaa@linaro.org
Diffstat (limited to 'drivers/gpu/drm/bridge')
-rw-r--r--drivers/gpu/drm/bridge/lontium-lt9611uxc.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
index 4e802b54a1cb..4d379d0d24d9 100644
--- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
+++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
@@ -23,6 +23,7 @@
#include <drm/drm_bridge.h>
#include <drm/drm_edid.h>
#include <drm/drm_mipi_dsi.h>
+#include <drm/drm_of.h>
#include <drm/drm_print.h>
#include <drm/drm_probe_helper.h>
@@ -34,6 +35,7 @@
struct lt9611uxc {
struct device *dev;
struct drm_bridge bridge;
+ struct drm_bridge *next_bridge;
struct drm_connector connector;
struct regmap *regmap;
@@ -358,6 +360,11 @@ static int lt9611uxc_bridge_attach(struct drm_bridge *bridge,
struct lt9611uxc *lt9611uxc = bridge_to_lt9611uxc(bridge);
int ret;
+ ret = drm_bridge_attach(bridge->encoder, lt9611uxc->next_bridge,
+ bridge, flags | DRM_BRIDGE_ATTACH_NO_CONNECTOR);
+ if (ret)
+ return ret;
+
if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) {
ret = lt9611uxc_connector_init(bridge, lt9611uxc);
if (ret < 0)
@@ -525,7 +532,7 @@ static int lt9611uxc_parse_dt(struct device *dev,
lt9611uxc->dsi1_node = of_graph_get_remote_node(dev->of_node, 1, -1);
- return 0;
+ return drm_of_find_panel_or_bridge(dev->of_node, 2, -1, NULL, &lt9611uxc->next_bridge);
}
static int lt9611uxc_gpio_init(struct lt9611uxc *lt9611uxc)