[PATCH 4/4] drm/bridge: tc358767: do not open-code devm_drm_of_get_bridge in DSI path
From: Alexander Stein
Date: Wed Jun 24 2026 - 08:18:38 EST
Use devm_drm_of_get_bridge() to simplify probing code path.
Signed-off-by: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx>
---
drivers/gpu/drm/bridge/tc358767.c | 28 +++++++++++-----------------
1 file changed, 11 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
index 8d5a05dd8d32c..7b64521839893 100644
--- a/drivers/gpu/drm/bridge/tc358767.c
+++ b/drivers/gpu/drm/bridge/tc358767.c
@@ -2341,28 +2341,22 @@ static int tc_probe_edp_bridge_endpoint(struct tc_data *tc)
{
struct device *dev = tc->dev;
struct drm_bridge *bridge;
- struct drm_panel *panel;
int ret;
/* port@2 is the output port */
- ret = drm_of_find_panel_or_bridge(dev->of_node, 2, 0, &panel, &bridge);
- if (ret && ret != -ENODEV)
- return dev_err_probe(dev, ret,
- "Could not find DSI panel or bridge\n");
-
- if (panel) {
- struct drm_bridge *panel_bridge;
-
- panel_bridge = devm_drm_panel_bridge_add(dev, panel);
- if (IS_ERR(panel_bridge))
- return PTR_ERR(panel_bridge);
-
- tc->panel_bridge = panel_bridge;
- tc->bridge.type = DRM_MODE_CONNECTOR_eDP;
- } else {
- tc->bridge.type = DRM_MODE_CONNECTOR_DisplayPort;
+ bridge = devm_drm_of_get_bridge(dev, dev->of_node, 2, 0);
+ if (IS_ERR(bridge)) {
+ ret = PTR_ERR(bridge);
+ if (ret != -ENODEV)
+ return dev_err_probe(dev, ret,
+ "Could not find DSI panel or bridge\n");
+ else
+ return ret;
}
+ tc->panel_bridge = bridge;
+ tc->bridge.type = bridge->type;
+
if (tc->hpd_pin >= 0)
tc->bridge.ops |= DRM_BRIDGE_OP_DETECT;
tc->bridge.ops |= DRM_BRIDGE_OP_EDID;
--
2.54.0