imx8qxp_pixel_link_find_next_bridge(struct imx8qxp_pixel_link *pl)
{
struct device_node *np = pl->dev->of_node;
- struct device_node *port, *remote;
+ struct device_node *port;
struct drm_bridge *selected_bridge = NULL;
u32 port_id;
bool found_port = false;
}
for (reg = 0; reg < PL_MAX_NEXT_BRIDGES; reg++) {
- remote = of_graph_get_remote_node(np, port_id, reg);
+ struct device_node *remote __free(device_node) =
+ of_graph_get_remote_node(np, port_id, reg);
if (!remote)
continue;
DRM_DEV_DEBUG(pl->dev,
"port%u endpoint%u remote parent is not available\n",
port_id, reg);
- of_node_put(remote);
continue;
}
struct drm_bridge *next_bridge = of_drm_find_bridge(remote);
- if (!next_bridge) {
- of_node_put(remote);
+ if (!next_bridge)
return ERR_PTR(-EPROBE_DEFER);
- }
/*
* Select the next bridge with companion PXL2DPI if
*/
if (!selected_bridge || of_property_present(remote, "fsl,companion-pxl2dpi"))
selected_bridge = next_bridge;
-
- of_node_put(remote);
}
pl->mst_addr = port_id - 1;