diff options
author | Dmitry Baryshkov <dmitry.baryshkov@linaro.org> | 2024-07-01 21:19:52 +0300 |
---|---|---|
committer | Robert Foss <rfoss@kernel.org> | 2024-08-06 15:21:48 +0200 |
commit | 7c5537cee9a8dff956e3b9a3f68c22af06a57558 (patch) | |
tree | 3c53b1dcc2e1fc505d3c46bc969b364655da8d16 /drivers/gpu/drm/bridge | |
parent | a99aff2608f422da833cd91fa1eff23daa05c0bd (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.c | 9 |
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, <9611uxc->next_bridge); } static int lt9611uxc_gpio_init(struct lt9611uxc *lt9611uxc) |